krapotkin
Пользователи-
Постов
2 182 -
Зарегистрирован
-
Посещение
-
Победитель дней
209
Весь контент krapotkin
-
тут все непросто если нет связи например, или еще какая-то совсем беда, остаемся на первой если не залогинены, загружаю форму логина если залогинены - одну из двух "главных" (по смыслу, не по делфи) форм приложения при этом на каждой из форм есть и фреймы и всякая другая беда
-
главное - главную форму делать из трех компонентов - бэкграунд, лого и кнопка Начать тогда все будет очень хорошо и быстро
-
в TTask будет то же что в TThread только в модном спагетти-стиле ))
-
копать в TThread, вам же надо кроссплатформу
-
можно сделать обычное окно, только прозрачное полностью, а на него положить непрозрачный image и кнопку. а вызывается псевдомодальная форма на Android / ios так: form2.ShowModal(procedure (aresult:TModalResult) begin // этот код получает управление при выходе из "модального" окна end)
-
а чем вам не угодил TThread ? кроме того, если у вас что-то обращается в сеть, прервать это что-то не удастся, только выйти по тайм-ауту. поток просто ждет этого выхода, не блокируя программу.
-
1. все, что происходит с КОМПОНЕНТОМ, придется делать в ГП. Это заполнение св-ва Path 2. НО! все, что нужно предварительно рассчитать, не должно быть в ГП Как вариант procedure TMyThread.Execute; begin while not Terminated do begin ProcessCurrentState(); Synchronize(UpdateUserInterface); sleep(UpdateInterval); end; end; при этом ПО-ЛЮБОМУ будет уходить время на UpdateUserInterface/ Линейно увеличиваясь с кол-вом компонентов
-
нет имеется в виду что Synchronize - это выполнение в главном потоке если весь код вашего потока выполняется в главном потоке, то зачем заводить поток??? у меня аналогичная анимация Path происходит путем расчетов ключевых точек в дополнительном потоке, и только заполнение готового Path.Path происходит в главном т.к. это всяко компонент и тут без ГП никак
-
при установленном cnPack такое иногда у меня бывает. но редко и плюсы гораздо круче минусов и обычно никаких разрушений не несет. перезапустился и вперед. а Ctrl+Shift+S у меня на автомате со времен Turbo Pascal )
-
вы вообще не читаете? этот пример от первого не отличается ничем. у вас неправильный алгоритм. вы нарушаете главный цикл приложения. программа и так находится в большом цикле while not terminated do begin processMessages end; и все события, которые возникают в программе и системе, обрабатываются именно там. вы нажимаете кнопку - вам временно передается управление, чтобы выполнить обработчик кнопки. потом программа опять находится в ожидании событий, и при этом не жрет процессор как не в себя. то, что вы делаете собственный цикл - разрушает нормальную обработку в главном цикле и забирает все свободное время процессора.
-
1. как уже отметили fr - это поле формы 2. вместо fr.free нужно freeAndNil(fr);
-
неправильно. это не должен быть цикл в понимании for, repeat, while это должна быть запись некоего состояния программы, изменение состояния, отражение состояния в пользовательском интерфейсе TForm1=class(TForm) ... ProcessStarted:boolean; PressCount:integer; ... end; procedure TForm1.Button1Click(...) begin StartProcess(); end; procedure TForm1.Button2Click() begin CheckProcessEnd(); end; procedure TForm1.StartProcess(); begin ProcessStarted:=true; PressCount:=0; button1.enabled := false; button2.enabled := true; end; procedure TForm1.CheckProcessEnd; const PRESS_COUNT_PENDING=5; begin inc(PressCount); if (PressCount=PRESS_COUNT_PENDING) then begin ProcessStarted:=false; button1.enabled:=true; button2.enabled:=false; end; end; да. именно конечный автомат это и есть.
-
что-то сильно поменяется в следующей версии??
-
по слухам, у дешевых китайцев он один на всех
-
THTTPClient
- 2 ответа
-
- сертификат сайта
- firewall
-
(и ещё 1 )
C тегом:
-
думаю, можно попробовать TPath
-
Очень трудно найти в сети упоминание о том, что PrototypeBind... это исключительно маркетинговый инстумент для создания "Live" демо. Он просто сам от фонаря генерирует данные нескольких типов, и можно их посмотреть в design-time при работе приложения он никак не должен использоваться
-
и там написал и тут напишу - т.к. вам все равно рисовать руками тотально все кроме сетки, то проще уж все и нарисовать, включая сетку. и не использовать StringGrid. А в приведенном примере после черного Canvas.FillRect нужно еще и белый текст нарисовать поверх. а на белых клетках - черный
-
Всеволод, я совсем не согласен с вашей гипотезой "сами разработчики виноваты" Начиная c XE4 всем говорили - волк, волк вот, программируйте на Андроид. А оно не работает. XE5, XE6, XE7, XE8 и все равно падает на ровных местах и никакой работодатель не хочет слушать, что я не знаю, почему (( Править исходники Delphi квалификация не позволяет, да и слишком темная магия там ... Репутация сложилась, однако. С Сиэтла, наконец, программы перестали просто падать, а репу-то уже трудно поправить. Ну вот я сумел практически шантажом и обманом выкатить один проект на делфи в релиз. Но больше пока никто не соглашается выплатить мне 150000 для покупки апгрейда...