kada u program ubacim WMSysCommand koji treba nesto da odradi kada se klikne na close on tada onemoguci move i minimize.
imali neko drugo resenje da se nesto odradi kada se klikne na Close ili
sa WMSysCommand treba nesto omoguciti da bi radilo minimize i move ??
ne kazem nista na OnClose() ili OnCloseQuery() ali me jako interesuje zasto blokira MOVE i MINIMIZE kada u program ubacim WMSysCommand,u dva programa je imam i u oba blokira pomenuto.Sve funkcionise OK ali ne mogu program pomerati niti minimizovati.
u type stoji
procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
if (Message.CmdType and $FFF0 = SC_CLOSE) then
begin
showmessage('Gasi se program');
end;
end;
Koliko se ja razumem u medicinu, fali ti na kraju bloka koda nešto što se zove default message handler.
U C++ Builderu se to obično radi sa:
TForm::WndProc( Message );
odnosno nekad:
TForm::Dispatch(&Message);
Sad sam malo Google-ovao (kako bi to trebalo u Delphiju) i čini mi se da kod tebe treba nešto kao:
procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
if (Message.CmdType and $FFF0 = SC_CLOSE) then
begin
showmessage('Gasi se program');
end else inherited; { a ponekad čak i bez else, ako hoćeš da zadržiš i default ponašanje }
end;
... ma šta to inherited značilo u Delphiju. Pokušaj sam nešto u tom pravcu (pogledaj pre svega gotove primere na tu temu) ili čekaj da se javi neko ko poznaje Delphi.