Avatar billede rrm Nybegynder
21. april 2003 - 22:24 Der er 6 kommentarer og
1 løsning

Problem med lukning af program.

Davs...

Jeg har lavet et delphi program via Windows apien. Jeg har skrevet Winproc som følgende:

function WindowProc(hWnd: hWnd; uMsg,    wParam,    lParam: Integer): Integer; stdcall;
begin

Result := 0;

case uMsg of
  WM_CLOSE: DestroyWindow(hWnd);
  WM_SYSCOMMAND:
  begin
    if(wParam = SC_CLOSE) then
      DestroyWindow(hWnd);
  end;
  WM_DESTROY:
  begin PostQuitMessage(0); end;
else
  Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
end;

end;

Når jeg så klikker på krydset så skulle programet gerne lukke, men det sker ikke. Det er kun GUI'en der forsvinder. Hvad gør jeg galt.

På forhånd tak...
Avatar billede game_tracker Nybegynder
21. april 2003 - 22:27 #1
hvis du vil lukke programmet hvorfor så ikke bare bruge close; eller

if checkbox1 := checket
then
Close;
Avatar billede rrm Nybegynder
21. april 2003 - 22:47 #2
Nej jeg kan ikke bruge den... Ifølge Delphi help-filen bruge close til a lukke filer med eller andre VCL-ting. Jeg skal lukke et non-VCL program.
Avatar billede doc404 Novice
21. april 2003 - 23:42 #3
Jeg *tror* det går galt fordi du selv håndterer WM_SYSCOMMAND/SC_CLOSE og måske derfor aldrig får din WM_DESTROY Message. Prøv at droppe WM_SYSCOMMAND casen
Avatar billede ziron Nybegynder
22. april 2003 - 00:58 #4
Jeg hopper også med på doc's teori :) så meld lige tilbage, for ellers kigger jeg selv engang... HOPHOP

/ZIRON
Avatar billede rrm Nybegynder
22. april 2003 - 11:35 #5
Efter at havde testet lidt fandt jeg ud af at PostQuitMessage(0) blev sendt og så skete der ikke andet. Så kom jeg i tanke at jeg på winproc.org at GetMessage returnere < 0 hvis der opstår fejl. Så jeg ændrede messageloopen til:

while(Ord(GetMessage(Msg, MainWnd, 0, 0)) > 0) do
  begin
    TranslateMessage(Msg);
    DispatchMessage(Msg);
  end;
end;

Og du afslutter den som den skal...
Avatar billede ziron Nybegynder
22. april 2003 - 11:39 #6
hmm ja okay, eller :)
hvis det virker er alle vel glade, eller.

/ZIRON
Avatar billede rrm Nybegynder
26. april 2003 - 23:14 #7
tak for hjælpen....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester