Dlaczego ListBox...SaveToFile() wstrzymuje zamknięcie programu?

0

Witam,

Mając tak rozwiązaną procedurę FormClose

var TNet: TIdTelnet;
    LBPass: TListBox;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  iF TNet.Connected then TNet.Disconnect;
  LBPass.Items.SaveToFile(ExtractFilePath(Application.ExeName)+ 'HASLA.TXT');
end;
 

zamknięcie programu zatrzymuje się i trzeba resetować program (ctrl+F2), aby móc go dalej pisać.

Wyrzucenie linii kodu z LBPass poza FormClose jak poniżej rozwiązuje utrudnienie.

 
procedure save;
begin
  Form1.LBPass.Items.SaveToFile(ExtractFilePath(Application.ExeName)+ 'HASLA.TXT');
end;
{...}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  iF TNet.Connected then TNet.Disconnect;
  save;
end;

O co w tym chodzi? Może mi ktoś to wytłumaczyć?

0
MartinEagle napisał(a):

O co w tym chodzi? Może mi ktoś to wytłumaczyć?

Chodzi o to że podałeś zbyt mało danych abyśmy mogli cokolwiek stwierdzić.
Polecam nauczyć się używać debuggera i podać więcej rzeczy z niego. Bez tego można tylko gdybać.

0

OK. Dzięki za wędkę.

0

Przenieś kod

Form1.LBPass.Items.SaveToFile(ExtractFilePath(Application.ExeName)+ 'HASLA.TXT');

do OnDestroy Formy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1