Текущий архив: 2004.09.12;
Скачать: CL | DM;
Вниз
Как из отдельного потока послать сообщение главной форме? Найти похожие ветки
← →
Aleksandr. (2004-08-27 18:44) [0]Попытался через обычнй ПостМессаге хэндлу главного окна, и программа на них постоянно вываливается.
← →
TUser © (2004-08-27 18:45) [1]Послать сообщение хэндлу нельзя.
Ответить на такой вопрос без кода - тоже.
← →
Aleksandr. (2004-08-27 18:57) [2]Это на приеме работает:
procedure TMainForm.WndProc(var Message: TMessage);
var
s : string;
P : PChar;
i : integer;
begin
if (Message.Msg=um_UpdatorStart) then begin
P:=(PChar(Message.LParam));
s:=StrPas(P);
StrDispose(P);
i:=Message.WParam;
UpdatorStart(s,i);
end
else
inherited
end;
А это на посылке:
procedure TATIUpdator.DoOnStart(const Msg: string; const Cnt: Integer);
var
P : PChar;
begin
P:=StrNew(PChar(Msg));
if FMsgHandle<>0 then
PostMessage(FMsgHandle,UM_UpdatorStart,Cnt, Integer(P))
end;
← →
clickmaker © (2004-08-27 19:00) [3]
> Aleksandr. (27.08.04 18:44)
что значит "вываливается"? текст ошибки?
← →
Aleksandr. (2004-08-27 19:06) [4]Никакого текста. Никакой обработки. Просто выпадает и все. А если из Делфи - то в окно CPU, и никакой трассировки не позволяет.
Да, код для UpdatorStart:
try
if Visible then begin
if NOT Assigned(FPB) then begin
FPB:=TProgressBar.Create(nil);
FPB.Parent:=StatusBar;
FPB.Left:=StatusBar.Left+StatusBar.Panels[0].Width+1+StatusBar.Panels[1].Width+1+StatusBar.Panels[2].Width;
FPB.Top:=1;
FPB.Height:=StatusBar.Height-2;
FPB.Smooth:=true;
FPB.Cursor:=crSQLWait;
StatusBar.Cursor:=crSQLWait;
FPB.Step:=1;
FPB.Visible:=true;
FPB.DoubleBuffered:=true;
FPB.Width:=StatusBar.Width-FPB.Left-3;
FPB.Anchors:=[akLeft,akRight,akBottom];
FPB.Position:=0;
FPB.Perform($0409, 0, clFuchsia);
FPB.Invalidate
end;
if Screen.Cursor<>crSQLWait then
Screen.Cursor:=crSQLWait;
if Msg<>"" then
StatusBar.Panels[2].Text:=Msg;
if Cnt>0 then
FPB.Max:=Cnt;
FPB.Position:=0;
Application.ProcessMessages
end
except
on E:Exception do
AddLog(E.Message)
end
Страницы: 1 вся ветка
Текущий архив: 2004.09.12;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.064 c