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

dnekrasov

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

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

  • Посещение

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

    52

Весь контент dnekrasov

  1. dnekrasov

    macOS Big Sur & Delphi

    У меня работает, правда тормозит безбожно
  2. dnekrasov

    macOS Big Sur & Delphi

    Лично я столкнулся с двумя проблемами - Отображение иконки в трее (MenuBar) и отображение уведомлений. Может что-то ещё есть, пока не знаю
  3. Пробовал я и TMS Web Core и UniGUI, но как по мне - лучше чем Thinfinity VirtualUI нет. И да, реально на всех получаются неплохие веб-приложения на Delphi без знания всех этих новомодных фреймворков.
  4. как-то так uses System.RegularExpressions; ... const AHREF = '<a href="([^"]*)"[^>]*>([^<]*)</a>'; var Match: TMatch; s: String; begin Match := TRegEx.Match(ваша HTML строка, AHREF); while Match.Success do begin // здесь что-то делаем //<a href"...>...</a> в Match.Value //Match.Groups[1] - адрес ссылки //Match.Groups[2] - отображаемый текст ссылки Match := Match.NextMatch; end; end
  5. Сложно что-то ответить не имея стиля и проекта. Если скинете стиль и какой-либо тестовый проект с одной этой формой - можно будет продолжить беседу...
  6. Да, она только у TCommonCustomForm. До неё можно добраться так: function GetOwnerForm: TCommonCustomForm; var ctrl: TComponent; begin Result := nil; ctrl := Self.Owner; while Assigned(ctrl) and not (ctrl is TCommonCustomForm) do ctrl := ctrl.Owner; if Assigned(ctrl) and (ctrl is TCommonCustomForm) then Result := ctrl as TCommonCustomForm; end;
  7. Ну как я могу ответить на этот вопрос? Я не знаю ни что Ваша программа делает, ни что Вы хотите добить ся этим потоком, что такое Reopen, Add, как вы работаете с базой и т.д... Кстати, насчет базы. Когда-то я сталкивался с такой ситуацией (правда это было ADO и под винду): если ADOConnection был создан в главном потоке, то UI зависал всегда (даже когда запрос выполнялся в отдельном)
  8. В Synchronize надо заключать КАЖДОЕ обращение к визуальной части. Вы же этого не сделали (если я правильно понял код), или сделали частично. К тому же у Вас столько строк надо синхронно делать, что я просто не вижу смысла в таком потоке. Мой Вам совет - меняйте логику.
  9. Лучше TPaintBox или TShape вообще лучше не делать - размер холста задаётся автоматом в зависимости от размеров контрола переопределите функцию GetDefaultSize: TSizeF Вы контрол рисуете полностью сами, значит inherited тут не надо А вообще - посмотрите исходники TCircle-TEllipse-TShape - всё станет намного понятнее.
  10. dnekrasov

    [MacOS] Меню "Share"

    Может кто подскажет, как в MacOS Catalina добавить пункт в меню "Share", с ссылкой на моё приложение?
  11. dnekrasov

    TSpinBox

    От себя добавлю - для сравнения есть чудесная функция System.Math.CompareValue Ещё гляньте System.Math.Vectors.TEpsilon - там есть полезные константы
  12. dnekrasov

    Запись видео с экрана

    Собственно сабж - есть ли в MacOS аналог avifil32.dll b и её функций? А вообще - нужно записать видео с экрана
  13. c:\Program Files (x86)\Embarcadero\Studio\20.0\bin\CodeGear.Deployment.Targets - в нём найдите параметр NotarizeAppAdditionalParams В нём пропишите NotarizeAppAdditionalParams="-itc_provider [TeamID]" TeamID можно узнать здесь https://developer.apple.com/account/#/welcome
  14. dnekrasov

    Unable to create process

    http://docwiki.embarcadero.com/RADStudio/Rio/en/MacOS_Notarization Делал как здесь описано - всё получилось.
  15. Посмотрите компонент TPlotGrid. Может поможет чем
  16. А это означает, что в этом потоке Вы не вызвали CoInitialize, прежде чем работать с XML
  17. Да, извините - забыл, конечно надо TThread.CreateAnonymousThread(procedure begin ... end).Start, ведь он создаётся как Suspended Я их довольно часто использовал (пока не перешёл на работу с TTask), всегда всё отрабатывало нормально. Пройдитесь по форумам или блогам, почитайте хелп А Вообще - в Вашем случае Image и таймер никогда не будет отрабатывать, пока GetDeD_List запускается в главном потоке
  18. Ну правильно Вам логика подсказала, вот только в отдельном потоке надо запускать ВСЁ. Аля так: TThread.CreateAnonymousThread(procedure begin TThread.ForceQueue(TThread.Current, procedure begin P_showLoad.Visible := true; Timer_load_rotate.Enabled := true; end); GetDeD_List(DE_set.Date); TThread.ForceQueue(TThread.Current, procedure begin P_showLoad.Visible := False; Timer_load_rotate.Enabled := False; end); end); P.S. Не проверял, но логика, я думаю, ясна
  19. Я бы на Вашем месте копал в сторону секций initialization и finalization. Зачем повторно регистрировать TColumnClasses? Да и с TPresentationProxyFactory.Current.Unregister не всё понятно.
  20. Обратите внимание на NeedStyleLookup и ApplyStyleLookup. Может поможет?
  21. Каждому - своё. Не хотите изучать новые фишки - пишите по-старинке. Насчет времени и выделения/освобождения памяти тоже много статей видел. Короче - пользоваться этим или нет - выбор разработчика.
×
×
  • Создать...