Показать сообщение отдельно
  #1  
Старый 19.06.2018, 15:11
maxfox123 maxfox123 вне форума
Прохожий
 
Регистрация: 07.07.2013
Сообщения: 17
Версия Delphi: delphi 6
Репутация: 10
По умолчанию Процесс подключения к постгресу

Попытку подключения к постгресу осуществляю, в основной форме программы, следующим образом, как показано ниже.

Код:
FMBZ_MyThread := TFMBZ_ProgressBarThread.Create(False);
FMBZ_MyThread.Priority:= tpNormal;
sleep(50);

try
iFMBZ_ZConnection.Connect;
except
ShowMessage('Please clarify: is the server running on host ' + iFMBZ_ZConnection.HostName + '?');
end;
где iFMBZ_ZConnection это переменная TZConnection;

Но в процессе подключения программа "немножко" зависает и для того что бы показать что идет подключение и нужно подождать, ввел прогресбар который запускаю в потоке создаваемом до подключения к постгресу.

Код:
FMBZ_MyThread := TFMBZ_ProgressBarThread.Create(False);
FMBZ_MyThread.Priority:= tpNormal;
процедуры изменения прогресбара ниже

Код:
procedure TFMBZ_ProgressBarThread.Execute;
while not(FMBZ_MyThread.Terminated) do
begin
sleep(50);
PostMessage(FMBZ_MainAdminForm.Handle,PROGRESS_POS,0,1);
end;
end;
procedure TFMBZ_MainAdminForm.SetProgressPos(var Msg: TMessage);
begin
FMBZ_ProgressBar.Position:=FMBZ_ProgressBar.Position + Msg.LParam;
if (FMBZ_ProgressBar.Position >= FMBZ_ProgressBar.Max) then
FMBZ_ProgressBar.Position := 0;
FMBZ_ProgressBar.Refresh;
end;
НО, шкала прогресбара начинает изменяться только после обработки подключения. (Поток делал и через синхронайз если что, результат одинаковый)

Может ли кто нибудь подсказать как
1) Либо заставить прогресбар изменяться в процессе подключения к постгресу
2) Либо заставить не зависать программу

Спасибо
Ответить с цитированием