-
Постов
317 -
Зарегистрирован
-
Посещение
-
Победитель дней
52
Сообщения, опубликованные dnekrasov
-
-
Лично я столкнулся с двумя проблемами - Отображение иконки в трее (MenuBar) и отображение уведомлений. Может что-то ещё есть, пока не знаю
-
-
как-то так
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
-
Сложно что-то ответить не имея стиля и проекта. Если скинете стиль и какой-либо тестовый проект с одной этой формой - можно будет продолжить беседу...
-
Может проблема в StyledSettings?
-
21 минут назад, Alisson R Oliveira сказал:
функция ClientToScreen не компилируется в TFrame
Да, она только у 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;
-
ClientToScreen(Edit1.LocalToAbsolute(Edit1.BoundsRect)) - может быть так?
-
10 минут назад, zekelive сказал:
Под заменой логики, что имеете в виду? У меня просто в голове других вариантов нет
Ну как я могу ответить на этот вопрос? Я не знаю ни что Ваша программа делает, ни что Вы хотите добить ся этим потоком, что такое Reopen, Add, как вы работаете с базой и т.д...
Кстати, насчет базы. Когда-то я сталкивался с такой ситуацией (правда это было ADO и под винду): если ADOConnection был создан в главном потоке, то UI зависал всегда (даже когда запрос выполнялся в отдельном)
-
В Synchronize надо заключать КАЖДОЕ обращение к визуальной части. Вы же этого не сделали (если я правильно понял код), или сделали частично. К тому же у Вас столько строк надо синхронно делать, что я просто не вижу смысла в таком потоке. Мой Вам совет - меняйте логику.
-
1 час назад, ddr 2 сказал:
1. Разумно ли выбран TImage в качестве предка?
Лучше TPaintBox или TShape
1 час назад, ddr 2 сказал:Canvas.SetSize
вообще лучше не делать - размер холста задаётся автоматом в зависимости от размеров контрола
1 час назад, ddr 2 сказал:3. Как задать размеры элемента по умолчанию?
переопределите функцию GetDefaultSize: TSizeF
1 час назад, ddr 2 сказал:procedure TLEDIndicator.Paint;
begin inherited; {вопрос 2}
Вы контрол рисуете полностью сами, значит inherited тут не надо
А вообще - посмотрите исходники TCircle-TEllipse-TShape - всё станет намного понятнее.
-
-
Может кто подскажет, как в MacOS Catalina добавить пункт в меню "Share", с ссылкой на моё приложение?
-
-
Собственно сабж - есть ли в MacOS аналог avifil32.dll b и её функций? А вообще - нужно записать видео с экрана
-
-
- c:\Program Files (x86)\Embarcadero\Studio\20.0\bin\CodeGear.Deployment.Targets - в нём найдите параметр NotarizeAppAdditionalParams
- В нём пропишите NotarizeAppAdditionalParams="-itc_provider [TeamID]"
- TeamID можно узнать здесь https://developer.apple.com/account/#/welcome
-
http://docwiki.embarcadero.com/RADStudio/Rio/en/MacOS_Notarization
Делал как здесь описано - всё получилось.
-
Посмотрите компонент TPlotGrid. Может поможет чем
-
13 часов назад, Светлана сказал:
А если я ловлю ошибку иногда "Exception class DOMException with message 'Microsoft MSXML is not installed'" - это значит, что то типа потоку не доступна та или иная lib для выполнения?
А это означает, что в этом потоке Вы не вызвали CoInitialize, прежде чем работать с XML
-
12 минут назад, Светлана сказал:
Либо не работает вообще, либо пробую дописать .Start и выбивает ошибку
Да, извините - забыл, конечно надо TThread.CreateAnonymousThread(procedure begin ... end).Start, ведь он создаётся как Suspended
14 минут назад, Светлана сказал:но... меня терзают какие то смутные сомнения, что может ничего не получиться,
Я их довольно часто использовал (пока не перешёл на работу с TTask), всегда всё отрабатывало нормально.
15 минут назад, Светлана сказал:Хотелось бы всё таки более ясный мануал
Пройдитесь по форумам или блогам, почитайте хелп
А Вообще - в Вашем случае Image и таймер никогда не будет отрабатывать, пока GetDeD_List запускается в главном потоке
-
1 час назад, Светлана сказал:
Логика мне стала подсказывать, что следовало его как то отобразить выполнив в параллельном асинхронном потоке
Ну правильно Вам логика подсказала, вот только в отдельном потоке надо запускать ВСЁ. Аля так:
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.
Не проверял, но логика, я думаю, ясна
-
Я бы на Вашем месте копал в сторону секций initialization и finalization. Зачем повторно регистрировать TColumnClasses? Да и с TPresentationProxyFactory.Current.Unregister не всё понятно.
-
Обратите внимание на NeedStyleLookup и ApplyStyleLookup. Может поможет?
-
6 минут назад, Сергей Рыжков сказал:
ну не знаю на лету создать и присвоить значение какой тип ? а если с БД там столько проблем будет, есть классический код выше чем не устраивает ?
ставить ловушки и смотреть где застряло! и по времени сомнительно в цикле память выделять под переменную ? в общем много вопросов чем ответов.
в чем плюс пока не ясно даже если сразу после цикла они убиваются
Каждому - своё. Не хотите изучать новые фишки - пишите по-старинке. Насчет времени и выделения/освобождения памяти тоже много статей видел. Короче - пользоваться этим или нет - выбор разработчика.
macOS Big Sur & Delphi
в OSX
Опубликовано
У меня работает, правда тормозит безбожно