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

Dlaczego ListBox...SaveToFile() wstrzymuje zamknięcie programu?
MartinEagle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 56
0

Witam,

Mając tak rozwiązaną procedurę FormClose

Kopiuj
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.

Kopiuj
 
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ć?

  • Rejestracja: dni
  • Ostatnio: dni
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ć.

MartinEagle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 56
0

OK. Dzięki za wędkę.

Opi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1034
0

Przenieś kod

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

do OnDestroy Formy.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.