![]() |
Form und Frame kommunikation
Hi ich habe mal eine Frage bezüglich Frames und Forms.
Also ich habe eine Main Form. Mit dieser erstelle ich eine 2. Form(Second) auf der ein Frame liegt. Das kommunizieren von Form Second und dem Frame ist kein Problem. Wenn ich nun aber Form Second noch ein 2. mal dazu erstelle, kommuniziert der Frame von Form Second 1 auch mit Form Second 2. Wie muss ich vorgehen um dies zuverhindern und jeder Frame sein Owner Form kennt? |
AW: Form und Frame kommunikation
Eigentlich ist das kein Problem.
Zeig mal den Code wo die beiden kommunizieren sollen/wollen |
AW: Form und Frame kommunikation
Hast Du jede Formularinstanz in einer eigenen Variable gespeichert?
Dann müsstest Du beide getrennt ansprechen können. Falls Du jedoch nach Komponentennamen suchen solltest, könnte es evtl. zu Unklarheiten kommen. Wie Sir Rufe meinte: Sage mal etwas mehr, was Du genau machst. |
AW: Form und Frame kommunikation
Über den Parent des Frames sollte doch schon eine entsprechend geeignete Referenz zur Verfügung stehen, vorausgesetzt die Frames liegen direkt auf den Formularen, und nicht z.B. in Panels (oder gar Kaskaden von Panels).
|
AW: Form und Frame kommunikation
Ja es sind die gleichen Namen :/
Form Second 1 (gleiche Name)+ Frame --> nun soll dieser Frame eine Edit von Form Second 1 auslesen, alleridngs ließt es nun von Form 2 Second das Edit aus. Form Second 2 (gleiche Name)+ Frame |
AW: Form und Frame kommunikation
Ich vermute, dass Du die Formularinstanzen nicht korrekt verwaltest.
Müsste in etwa so sein:
Delphi-Quellcode:
Über F1.MyFrame... und F2.MyFrame... solltest Du dann beide ansprechen können.
F1 := TMyForm.Create(Self);
F1.Color := clGreen; F2 := TMyForm.Create(Self); F2.Color := clRed; Über die Farben kann man mal schnell kontrollieren, worauf man eigentlich gerade zugreift. |
AW: Form und Frame kommunikation
Eleganter ist das natürlich zu lösen, wenn die Frames nicht auf die Form zugreifen, sondern wenn die Form dem Frame (über eine Frame-Property) mitteilt worauf zugegriffen werden soll.
Dann ist es dem Frame egal, worin man den einbettet. |
AW: Form und Frame kommunikation
Zitat:
Betrachte das Frame einfach wie ein Edit. - die Form kann mit dem Frame machen was sie will - und wenn das Frame etwas mitteilen will, dann bietet es der Form ein passendes Event (ala OnChange), wo sich die Form dann reinhängen kann |
AW: Form und Frame kommunikation
Naja, also.
Ich habe ein Programm, welches Kundendaten verwaltet. Wenn ich einen Datensatz aufrufe wird das "Second Form" erstellt. Wenn ich einen 2. Datensatz öffne wird wieder ein "Second Form" erstellt. Ich kann also denen keine 2 unterschiedlichen Namen verpassen, da es ein und die selbe procedure ist. Das Frame ist in einer Pagecontrol eingebettet mit wiederum einem Virtualstringview, in dem Daten ausgegeben werden, die auf der "Second Form" stehen (Kundennummer wird sich vom Second Form geholt um Daten in VST einzubetten.) Ich wüsste jetzt also nicht wie ich das Frame als Edit verwenden soll. Gibts da Tipps für? Bei einer Form zu Form, übergebe ich immer einefach eine Variable an die 2. Form, die im Privat Bereich deklariert habe. Aber das geht in einem Frame nicht oder, da ich das Frame ja nicht erst seperat erstelle. |
AW: Form und Frame kommunikation
Delphi-Quellcode:
Greift bei mir wunderbar immer nur auf das "TSecondForm" zu, auf dem das Frame auch wirklich liegt.
procedure fraMyFrame.Button1Click(Sender: TObject);
begin (Parent as TSecondForm).edSomeEdit.Text := 'foo'; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 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