Thema: Delphi Abstrakter Fehler

Einzelnen Beitrag anzeigen

Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#17

Re: Abstrakter Fehler

  Alt 26. Feb 2005, 18:35
Zitat:
aber warum führt "self.free" zwangsweise zu einem abstrakten Fehler ?!?
Weil es ein Logik Fehler von dir war. Man sollte nie die Methode Free in einem Objekt aufrufen , damit es sich selbst "befreit". Eine Klasse wird immer von eine Andere "befreit" (oder von einem Thread), aber nicht in sich selbst.

So geht das:
Delphi-Quellcode:
var
  [b] Form1: TForm1; [/b]
  [b] Form2: TForm1; [/b]

procedure [b]TForm1[/b].Button1Click(Sender: TObject);
begin
 [b]Form2[/b].Free;
end;
Oder umgegehert.
Zwar wird es keine Exep. geben im Fall dass du so was schreibst:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 self.Free; // Oder nur Free
end;
Aber MainThread bleibt immer noch da, wird nicht beendet, weil das ganze die Logik von VCL nicht folgt.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat