Datuve :: Forums :: Arhīvs :: delphi, nenostrādā close()

Datuve

Mana Datuve

Reģistrācija | Noteikumi | Paroles atjaunošana



Forums

Ieskaties


Raksti

Lietotāji online

Lietotāji online: 80

Reģistrētie lietotāji online: 0

Viesi online: 80

Datuve.lv video
Top.LV

delphi, nenostrādā close()

Ievietoja: alfons90 @ 2011.10.23 22:36  

Šis koda atgriezums atrodas FormCreate() procedūras sākumā. Lieta tāda, ka izpildās if's parādās paziņojums, un līdz ar to programmai vajadzētu nonāk pie close() un izslēgties, bet programa turpina strādāt un nonāk līdz Reset.
Kas varētu būt par vainu ? Un pat ja ielieku Close() pirms if'a vienalga close nenostrādā.Kāds zin kāda varētu būt vaina?

if FileExists('first.exe')=True then begin
 timer1.Enabled:=false;
 ShowMessage('Firstly you have to run first.exe');  
 close();
 end;

AssignFile(config,'config.dat');
Reset(config);
ReadLn(config, tmp);
ReadLn(config, pwd);
pwd:=atkode(pwd);

Komentāri:

#1 velko @ 2011.10.24 00:20

Tas, ka tu pasaki Close() vēl nenozīmē, ka tagad programmas darbība apstāsies. Tāpat turpinās izpildīt procedūru līdz galam. Kā minimums Exit-oties no procedūras vajag. Bet ja gribi programmu pavisam aizvērt, tad labāk uzreiz teikt Halt().

#2 karuuzo @ 2011.10.24 09:30

Close nozīmē aizvērt logu, bet logs nav programma (application). Ja paveicas aizvērt galveno logu, tad programma var arī beigt darboties (var arī nebeigt ;) Halt labāk nē, tā ir slepkavība.
Paskaties, tev jābūt kaut kādam application objektam (vairs neatceros precīzi) un viņam jābūt metodei Exit.

m

#3 velko @ 2011.10.24 12:01

karuuzo rakstīja:

Paskaties, tev jābūt kaut kādam application objektam (vairs neatceros precīzi) un viņam jābūt metodei Exit.

Tas būs Application.Terminate(), bet esošā procedūra tāpat tiks izpildīta līdz galam.

Halt labāk nē, tā ir slepkavība.

Ja jau viņš reiz lieto oldskūlīgos AssignFile un Reset, tad kāda vairs starpība...