antarey
Пользователи-
Постов
284 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Весь контент antarey
-
правильно frmEditor = this; А можно в двух словах что ето делает?
-
Добрый день. Помогите побороть 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 Подскажите где я накосячил. Заранее благодарен
-
С размером разобрался - нужно при записи явно указывать качество. А что еще можно оптимизировать?
-
Есть картинки *.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 Мб. Ето так надо? Где я ошибся? Кроме изменения размеров изображения и качества - что еще можно оптимизировать? Спасибо
-
Подскажите как без программного кода построить дерево из таблицы базы данных? Через Bind Visually не могу найти в свойствах TreeView ->Item.Text & Item->ParentId
-
Добрый день. Есть 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".
-
Добрый день. Как програмно прокрутить 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); последние две строки, по идее должны прокрутить на последний елемент списка, но последний елемент выделяется а прокрутка в начале списка
-
Есть библиотека для парсинга . сторики 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 Как правильно объявить событие? Спасибо
-
Без результатов Пробовал тупо так dm->qProc->SQL->SaveToFile("1.sql",TEncoding::UTF8); dm->qProc->SQL->LoadFromFile("1.sql", TEncoding::UTF8); dm->qProc->ExecSQL(); Файл сохраняется в UTF8, но в я так понимаю что TFDQuery переконвертирует скорее всего в АНСИ. Можно как-то заставить работать TFDQuery на юникоде ?
-
C++Builder експорт с SQLite в MYSql проблемы с кодировками
antarey опубликовал вопрос в Прочие вопросы
Помогите разобраться к кодировками Есть проект на 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 результат тот же Как правильно синхронизировать таблицы? и победить кодировки Заранее всем спасибо -
На пару лет выпал из темы. Проблема со стандартным гридом TGrid и TTMSFMXLiveGrid. Запускаю по F9 - нормально запускается, но при Build project по Shift F9 получаю ошибку Class TTMSFMXLiveGrid not found ну или Class TGrid not found Подскажите что надо подшаманить. Раньше таких проблем не было.
-
Етот параметр передается в ворд.Ето переделка кода VBA.
-
Документ открываю, но сохранять в упор не хочет 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 формате
-
Добрый день. Помогите побороть OLE сервер ворда. Есть простая задача - открыть документ ворд и сохранить его в html, но что-то лыжи не едут Вот код unit1.h public: // User declarations Variant vVarApp,vVarDocs; bool fStart; unit1.cpp #include <ComObj.hpp> #include <utilcls.h> if (!fStart) { try { vVarApp = CreateOleObject("Word.Application"); fStart = true; vVarDocs = vVarApp.OlePropertyGet("Documents"); vVarDocs.OleProcedure("ChangeFileOpenDirectory", "\"D:\\\""); vVarDocs.OleProcedure("Open", "f1.docx"); vVarApp.OlePropertySet("Visible", true); } catch (...) { ShowMessage("Ошибка при открытии сервера Word"); return; } } И получаю ошибку - Unknown name
-
Может и то , но с региона , как в примере Равиля, проще реализовать круглую кнопку
-
Равиль Зарипов , спасибо.
-
Как создать Floating Action Button - аналог кнопок в сервисах гугла, к примеру в Inbox большая кнопка Плюс? Нужна уневерсальная реализация и для Вин и Андроид платформ
-
Вот как раз об unique_ptr тоже вопрос, как умные указатели ведут себя на мобильных платформах? Для винды написано что объекты уничтожаются когда их никто не использует, или же когда объект выходит за пределы видимости - если я правильно понял - если объект локальный и внутри какого-то обработчика, то объект будет уничтожен по завершению обработчика. Но как сие на практике и для винды и мобильных платформ - вопрос к Ярославу и Ембарсадеро
-
Подскажите, как в FMX реализовать типа нативное приложение под Вынь 10 - когда заходиш в настройки, потом в какой-то подпункт и в левом верхнем углу в капшине появляется стрелка назад. Убрать капшин , кинуть панель плюс три стандартные кнопки можно, но тогда форма ведет себя не совсем по нативному, когда пристыковываеш ее к краям экрана, она автоматически не ресайзится
-
Есть ли возможность в FireDac делать локальное обновление без отсылки на сервер? Как ето реализовано в IBDAC
-
Ясно, спасибо за свой вариант, такой код немного проще
-
Немного глупый вопрос - а как с базами работаешь? через переменные?