-
Постов
5 -
Зарегистрирован
-
Посещение
Активность репутации
-
Gerson Rogerio Lao отреагировална krapotkin в fgActivityDialog
В любом случае, вам придется вносить изменения в программу, т.к. 10.2 имеет новый подход к потокам в приложении.
Вы можете либо изменить свой код, либо код fgActivityDialog.
В вашем случае можно попробовать так:
fgActivityDialog1.Message: = 'Проверка подключения к Интернету.';
fgActivityDialog1.Show;
TTask.Run(procedure
var result :string;
begin
try
CM.DSRestConnection1.Host: = 'my.server.com'; // Пример
CM.DSRestConnection1.TestConnection ();
Result: = 'S';
except
Result: = 'N';
End;
tthread.synchronize(NIL, procedure begin F_Result := result; fgActivityDialog1.hide; end);
end);
F_Result - это поле формы
-
Gerson Rogerio Lao отреагировална Евгений Корепов в fgActivityDialog
Тогда в вашем случае проще доработать сам компонент fgActivityDialog. Я добавил метод fgActivityDialog.ShowWithAutoClose(3000) :
procedure TForm1.Button1Click(Sender: TObject); begin fgActivityDialog.Message := 'Teste'; fgActivityDialog.ShowWithAutoClose(3000); end; Вот измененный исходный код unit FGX.ProgressDialog :
Добавлен метод procedure ShowWithAutoClose(AAutoCloseTimer : Integer); и TTimer
Прошу прощение у Ярослава, за топорное вмешательство в его код :-)
-
Gerson Rogerio Lao отреагировална Евгений Корепов в fgActivityDialog
Подумал и сделал более изящно - изменил метод Show.
procedure TForm1.Button1Click(Sender: TObject); begin fgActivityDialog.Message := 'Teste'; fgActivityDialog.Show(3000); end; procedure TForm1.Button1Click(Sender: TObject); begin fgActivityDialog.Message := 'Teste'; fgActivityDialog.Cancellable:=True; fgActivityDialog.Show; end; Вот код :
-
Gerson Rogerio Lao отреагировална Евгений Корепов в fgActivityDialog
В своем коде вы останавливаете работу приложения, не давая отрисовать Диалог.
Попробуйте вот так:
procedure TForm1.Button1Click(Sender: TObject); begin fgActivityDialog1.Message := 'Teste'; fgActivityDialog1.Show; Timer.Interval:=3000; Timer.Enabled:=True; end; procedure TForm1.TimerTimer(Sender: TObject); begin Timer.Enabled:=False; fgActivityDialog1.Hide; end;
-
Gerson Rogerio Lao отреагировална Евгений Корепов в fgActivityDialog
В Токио изменена логика работы приложения на Андроид - пользовательский интерфейс выполняется в основном потоке приложения, возможно проблема из за этого. Вот похожая тема