Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

AW: zur laufzeit erstelltes objekt ansprechen

  Alt 25. Mär 2012, 16:28
Und nun mal ohne with und benannte Instanz:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  shape := TShape.Create(self); //die aktuelle Instanz
  shape.Parent := self; //hier auch
  shape.Left := 0;
  shape.Top := 0;
  shape.Width := 100;
  shape.Height := 50;
  shape.Shape := stRoundRect;
  shape.Name := 'Shape1';
  shape.onClick := OnShapeKlick;
end;
Man sollte hier auch noch dazu sagen, dass with sehr böse werden kann. Man spart sich zwar Schreibarbeit, ist aber imho einfach weniger präziser, als wenn man immer shape.[Property|Methode] verwendet. An diesem Beispiel sieht man auch warum, denn TForm1 hat auch eine OnClick-Methode. Klar, der Compiler wird hier immer erst nach dem with schauen, aber für andere könnte der Code weniger verständlich sein. Ebenso ist der Code mit dem with weniger robust gegenüber Änderungen. Aber es kann sich jeder selbst überlegen, was er bevorzugt. Wollte es nur der vollständigkeithalber erwähnen
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat