Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 

Re: auf komponenten eines zweiten formulars zugreifen

  Alt 28. Feb 2010, 17:10
Es wäre ein grosser Fehler, wenn Form2 selbst "persönlich" auf Form1 etwas zeichnet:
Delphi-Quellcode:
procedure TForm2.bla(...);
begin
  Form1.Image1.Canvas.TextOut(...xyz...);
end;
Jedes Formular hat seinen eigenen Verantwortungsbereich und dazu gehört, dass niemand anderes auf dem Formular herumzumalen hat.
Aber Form2 kann das Zeichnen an Form1 delegieren:
Delphi-Quellcode:
procedure TForm2.bla(...);
begin
  Form1.ZeichneRechteckMitBeschriftung(...xyz...);
end;
Das hat folgende Vorteile:
1.) Form1 kann jederzeit geändert werden (z.B. Umbenennung von Komponenten, Austausch von Image1 durch eine Paintbox oder wasauchimmer)
2.) verringerte Abhängigkeiten
3.) es wird expliziert gemacht, was der Code eigentlich tun soll
4.) verbesserte Testbarkeit. Man kann einfach einen Testbutton auf Form1 legen und die Methode
ZeichneRechteckMitBeschriftung() aufrufen. Dann der Code so lange verbessern, bis alles wie gewünscht funktioniert.
Danach dürfte es keine Probleme mehr geben, wenn diese Methode von einem anderen Formular aufgerufen wird.
  Mit Zitat antworten Zitat