Перейти к содержанию
Fire Monkey от А до Я

antarey

Пользователи
  • Постов

    284
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

antarey стал победителем дня 21 января 2015

antarey имел наиболее популярный контент!

Информация о antarey

  • День рождения 27.06.1976

Информация

  • Пол
    Мужчина
  • Город
    Киев

Посетители профиля

9 574 просмотра профиля
  1. правильно frmEditor = this; А можно в двух словах что ето делает?
  2. Добрый день. Помогите побороть access violation Есть главная форма frmMain, на ней лежит панелька rootLayout. По кнопкам создаю фреймы: private: // User declarations TFrame *WorkFrame; TPanel* FrameLayout; // -------------------------------------------------------------------------- void TfrmMain::CreateFrame(String FrameName) { if (FrameLayout != NULL) { delete FrameLayout; } FrameLayout = new TPanel(Application); FrameLayout->StyleLookup = "pushpanel"; FrameLayout->Name = "FrameLayout"; FrameLayout->Parent = rootLayout; FrameLayout->Align = TAlignLayout::Client; if (FrameName == "frmParam") { WorkFrame = new TfrmParam(FrameLayout); } if (FrameName == "frmEditor") { WorkFrame = new TfrmEditor(FrameLayout); WorkFrame->Tag = 1; } if (FrameName == "frmAdmin") { WorkFrame = new TfrmAdmin(FrameLayout); } WorkFrame->Parent = FrameLayout; WorkFrame->Align = TAlignLayout::Client; } // -------------------------------------------------------------------------- На фрейме frmEditor тоже есть панелька ItemsListRootLayout и в етом фрейме я создаю дополнительные фреймы TFrame *EditorWorkFrame; TPanel* EditorFrameLayout; // --------------------------------------------------------------------------- void TfrmEditor::CreateFrame(String FrameName) { if (EditorFrameLayout != NULL) { delete EditorFrameLayout; } EditorFrameLayout = new TPanel(Application); EditorFrameLayout->StyleLookup = "pushpanel"; EditorFrameLayout->Name = "EditorFrameLayout"; EditorFrameLayout->Parent = ItemsListRootLayout; EditorFrameLayout->Align = TAlignLayout::Client; if (FrameName == "frmNewArticleList") { EditorWorkFrame = new TfrmNewArticleList(Application); .................. } ............................... EditorWorkFrame->Parent = EditorFrameLayout; EditorWorkFrame->Align = TAlignLayout::Client; } // -------------------------------------------------------------------------- На фрейме frmNewArticleList лежит ListBox привязан к таблице( пробовал через грид таже ошибка) и есть обработчик //--------------------------------------------------------------------------- void __fastcall TfrmNewArticleList::NewArticleListItemClick(TCustomListBox * const Sender, TListBoxItem * const Item) { frmEditor->Label2->Text = dm->qLocalContent->FieldByName("title")->AsString; } //--------------------------------------------------------------------------- В результате при клике на итеме получаю access violation Подскажите где я накосячил. Заранее благодарен
  3. С размером разобрался - нужно при записи явно указывать качество. А что еще можно оптимизировать?
  4. Есть картинки *.png,*.jpg в основном. На примере темы написал код, для начала только уменьшение качестка if (FileExists("d:\\Work\\Project\\Tmp\\11.JPG")) TFile::Delete("d:\\Work\\Project\\Tmp\\11.JPG"); TStream *Stream = new TMemoryStream(); TBitmapSurface *Surface = new TBitmapSurface(); TBitmapCodecSaveParams *SaveParam = new TBitmapCodecSaveParams(); TBitmap *SrcBitmap = new TBitmap(); TBitmap *DstBitmap = new TBitmap(); SrcBitmap->LoadFromFile("d:\\Work\\Project\\Tmp\\1.JPG"); Surface->Assign(SrcBitmap); SaveParam->Quality = 50; TBitmapCodecManager::SaveToStream(Stream, Surface, ".jpg", SaveParam); Stream->Position = 0; DstBitmap->LoadFromStream(Stream); DstBitmap->SaveToFile("d:\\Work\\Project\\Tmp\\11.JPG"); Исходное изображение 2,5Мб а конечное DstBitmap 3,7 Мб. Ето так надо? Где я ошибся? Кроме изменения размеров изображения и качества - что еще можно оптимизировать? Спасибо
  5. antarey

    TTreeView и база данных

    Подскажите как без программного кода построить дерево из таблицы базы данных? Через Bind Visually не могу найти в свойствах TreeView ->Item.Text & Item->ParentId
  6. antarey

    TDateEdit и CustomFormat

    Добрый день. Есть TDateEdit подключенный к базе через LiveBindings. Поле дати имеет значение по умолчанию "0000-00-00 00:00" DateEdit отображает ето значение как 30.12.1899 . На доквики написано что можно использовать логические операторы, но нет примера как. Подскажите как будет выглядеть строка CustomFormat для условия - if (query1->FieldByName("DateB")->AsString == "0000-00-00 00:00")DateEdit1->Date = ""/NULL или же DateEdit1->Text = "0000-00-00 00:00".
  7. Добрый день. Как програмно прокрутить TListBox на последний итем? TListBoxItem *logItem = new TListBoxItem(Application); logItem->Parent = cbLog; logItem->Name = "item" + IntToStr(itemIndex); logItem->Text = Now().FormatString("dd:mm:yy") + " : " + text; ; logItem->ImageIndex = ImageIndex; logItem->TextSettings->WordWrap = true; cbLog->ItemIndex = cbLog->Items->Count - 1; cbLog->ScrollToItem(logItem); последние две строки, по идее должны прокрутить на последний елемент списка, но последний елемент выделяется а прокрутка в начале списка
  8. Есть библиотека для парсинга . сторики 177,178 property Nodes[const Name: AnsiString]: TALXMLNode read GetNodeByName; default; property Nodes[const Index: integer]: TALXMLNode read GetNodeByIndex; default; Я добавил ALXmlDoc.pas в проект, билдер сам создал ALXmlDoc.hpp и сгенирировал __property TALXMLNode* Nodes[const System::AnsiString Name] = {read=GetNodeByName/*, default*/}; __property TALXMLNode* Nodes[const int Index] = {read=GetNodeByIndex}; и естественно получаю ошибку о дублировании - как исправить сие недоразумение? И второй вопрос. строка 705 property OnParseText: TAlXMLParseTextEvent read FonParseText Write FonParseText; // [added from TXMLDocument] в ALXmlDoc.hpp __property _di_TAlXMLParseTextEvent OnParseText = {read=FonParseText, write=FonParseText}; __interface TAlXMLParseTextEvent : public System::IInterface { virtual void __fastcall Invoke(System::TObject* Sender, const System::AnsiString Path, const System::AnsiString Str) = 0 ; }; private: _di_TAlXMLParseTextEvent FonParseText; protected: void __fastcall DoParseText(const System::AnsiString Path, const System::AnsiString Str); Делал по демке *. hpp void __fastcall OnParseText(System::TObject* Sender,const System::AnsiString Path, const System::AnsiString Str); *.cpp void __fastcall TForm1::OnParseText(System::TObject* Sender, const System::AnsiString Path, const System::AnsiString Str) { } // --------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { TALXMLDocument* aXMLDocument = new TALXMLDocument("root"); aXMLDocument->OnParseText = OnParseText; } и получаю ошибку [bcc32 Error] Unit1.cpp(30): E2235 Member function must be called or its address taken Как правильно объявить событие? Спасибо
  9. Замучил меня FDQuery. Переделал на FDScript и прописал кодировку - все нормально. Спасибо за ответы
  10. Без результатов Пробовал тупо так dm->qProc->SQL->SaveToFile("1.sql",TEncoding::UTF8); dm->qProc->SQL->LoadFromFile("1.sql", TEncoding::UTF8); dm->qProc->ExecSQL(); Файл сохраняется в UTF8, но в я так понимаю что TFDQuery переконвертирует скорее всего в АНСИ. Можно как-то заставить работать TFDQuery на юникоде ?
  11. Помогите разобраться к кодировками Есть проект на C++Builder 10.3 использую VCL но думаю что для FMX будет та же проблема Использую Firedac Есть две базы - SQLite - UTF8 и MYSQL - UTF8. Надо експортировать таблицу из SQLite в MYSQL В базе SQLite все нормально видно, Девекспресовский грид нормально показывает данные Формирую скрипт в TFDQuery - qProc dm->qExpContent->Open(); dm->qProc->SQL->Clear(); UTF8String title,introtext,fulltext; do { title = dm->qExpContent->FieldByName("title")->AsString; introtext = dm->qExpContent->FieldByName("introtext")->AsString; fulltext = dm->qExpContent->FieldByName("fulltext")->AsString; dm->qProc->SQL->Add("insert ignore into " _content(...alias,introtext,'fulltext'... values('" + "','" + title + "','" +introtext + "','" +fulltext..."');"); dm->qExpContent->Next(); } while (!dm->qExpContent->Eof); dm->qProc->ExecSQL(); И в результате в MYSQL вижу крякозябры. Игрался с типом строковых переменных, тупо создавал файл в UTF8 и делал загрузку в qProc результат тот же Как правильно синхронизировать таблицы? и победить кодировки Заранее всем спасибо
  12. antarey

    C++10.3 & Class not found

    На пару лет выпал из темы. Проблема со стандартным гридом TGrid и TTMSFMXLiveGrid. Запускаю по F9 - нормально запускается, но при Build project по Shift F9 получаю ошибку Class TTMSFMXLiveGrid not found ну или Class TGrid not found Подскажите что надо подшаманить. Раньше таких проблем не было.
  13. Етот параметр передается в ворд.Ето переделка кода VBA.
  14. Документ открываю, но сохранять в упор не хочет vVarApp = CreateOleObject("Word.Application"); fStart = true; vVarApp.OlePropertySet("Visible", true); vVarDocs = vVarApp.OlePropertyGet("Documents"); vVarDocs.OleProcedure("Open",WordFileName); vVarDocs=vVarDocs.OleFunction("Item",1); vVarDocs.OleProcedure("Activate"); vVarApp.OlePropertyGet("ActiveDocument").OleProcedure(L"SaveAs2", HtmlFileName, L"FileFormat:=_wdFormatFilteredHTML"); vVarApp.OlePropertyGet("ActiveWindow").OleProcedure(L"Close"); vVarApp.OleProcedure("Quit"); Точнее сохраняет, но не в _wdFormatFilteredHTML формате
×
×
  • Создать...