![]() |
Zirkularen Bezug von zwei Forms wie vermeiden ?
Hallo zusammen,
ich habe zwei Formulare Form1 und Form2. Wenn ich jetzt bei Form2 das Parent auf Form1 setze, wird mir ja Form2 in Form1 angezeigt. Wenn jetzt Form2 bestimmte Elemente wie z.B. Buttons steueren soll (z.B. Aktivieren und Deaktivieren) muss ich ja einen zirkularen Bezug der beiden Units herstellen. Kann ich das auch nich irgendwie anders realisieren ? Mir schwebt da zum Beispiel vor mit Messages oder bestimmten Events. Nur leider habe ich dazu keinen Denkansatz, was hier am besten ist. Gruß Rolf |
AW: Zirkularen Bezug von zwei Forms wie vermeiden ?
Du kannst die beiden Units kreuzweise im implementation Teil eintragen, dann tun die sich auch nichts :)
Problematisch wird es nur im Interface Teil |
AW: Zirkularen Bezug von zwei Forms wie vermeiden ?
Hallo Sir Rufo,
danke für Deine Antwort. Mir ist gerade aufgefallen, ich habe noch etwas vergessen bei meiner Ausführung. :oops: Die Buttons sollen auch bestimmte Aktionen in der Form2 steuern. Deswegen der zirkulare Bezug. |
AW: Zirkularen Bezug von zwei Forms wie vermeiden ?
Nur wenn du im Implenentations-Teil Deklarationen der anderen Unit benötigst oder in Initialisation/Finalization was von drüben verwendest, muß diese Unit in Implementation importiert werden.
Ansonten kann man sie halt auch erst in Implementation importieren und dort gibt es keine Probleme mit zirkulären Referenzen (für den Compiler). |
AW: Zirkularen Bezug von zwei Forms wie vermeiden ?
Mach eine dritte Unit mit Hilfsfunktionen, die die Komponenten und Werte als Parameter hat.
|
AW: Zirkularen Bezug von zwei Forms wie vermeiden ?
Zitat:
Der Button und der Aufruf aus der anderen Unit/Form rufen dann einfach direkt die gewünschte Funktion auf. :stupid: |
AW: Zirkularen Bezug von zwei Forms wie vermeiden ?
Zitat:
Zitat:
|
AW: Zirkularen Bezug von zwei Forms wie vermeiden ?
Delphi-Quellcode:
So einfach ist das.
procedure tuwas(var AButton: TButton);
begin AButton.Caption := 'helloworld'; end; procedure tuwasanderes(var AButton: TButton; const AText: string); begin AButton.Caption := 'helloworld'; AButton.Hint := AText; end; |
AW: Zirkularen Bezug von zwei Forms wie vermeiden ?
äh, wozu übergibst du die Objekt-Referenz als var Parameter?
Das wäre ja ein Hinweis, dass in der Procedere die Objekt-Referenz verändert werden könnte. |
AW: Zirkularen Bezug von zwei Forms wie vermeiden ?
Eben drum. Das ist ja der Sinn der ganzen Übung.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz