Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 2 Formulare verbinden geht nicht :( (https://www.delphipraxis.net/173851-2-formulare-verbinden-geht-nicht.html)

Perlsau 21. Mär 2013 09:29

AW: 2 Formulare verbinden geht nicht :(
 
Zitat:

Zitat von DeddyH (Beitrag 1208164)
Eigentlich sollte man es aber vermeiden, dass 2 Klassen sich gegenseitig kennen müssen. Dasselbe gilt für Fomulare (sind ja schließlich auch nur Klassen). Wenn ein Formular eine Schnittstelle (etwa in Form einer Property) anbietet, kann ein anderes darüber auf das Formular zugreifen und ggf. vice versa. Dafür ist es dann aber nicht mehr notwendig, dass das Fomular mit der Schnittstelle das andere kennt.

Richtig. Doch im einen Fall benötigte ich gewisse Manipulationen der Properties nicht vom Mainform aus, sondern auch von anderen Forms bzw. Units. Bestes Beispiel, das mir gerade einfällt: Im AfterScroll-Ereignis etlicher Datasets, die im Datenmodul liegen, sollen bestimmte Anzeigen auf dem Mainform aktualisiert werden, so z.B. die aktuelle Record-Nummer oder eine ComboBox. Ich hatte z.B. eine Zeit lang das Problem, daß ich in DBLookUpCombos keine korrekte Darstellung von Strings, die in der Firebird-DB als UFT8 codiert waren, erreichen konnte. Das lag an den veralteten Datenbank-Komponenten. Da mußte ich auf ComboBoxen ausweichen, und deren ItemIndex mußte nach jedem Scroll der Haupttabelle aktualisiert werden. Wie sollte ich das sonst lösen als durch einen Eintrag von UnitMain in das Implementation-Uses von UnitData (Datenmodul)? Schwierigkeiten hat das zumindest gar keine gemacht, um nicht zu sagen, es hat wunderbar funktioniert.

DeddyH 21. Mär 2013 09:40

AW: 2 Formulare verbinden geht nicht :(
 
Das könnte man z.B. über das Observer-Pattern lösen, indem sich die Comboboxen als Observer des Datasets registrieren, dabei kommt dann eine Art "Data-Binding für Arme" heraus. Ist ein wenig aufwändiger, aber letzten Endes sauberer.

mentaltec 21. Mär 2013 09:43

AW: 2 Formulare verbinden geht nicht :(
 
Hi,

meistens schick ich dem MainForm (Notify)-Messages, wenn so was gebraucht wird; die entsprechenden Datenstrukturen sollten eh nicht im MAinform deklariert werden

oder aber man übergibt dem Subform die Adresse einer Callbackfkt - das iss aber auch nur was für Puristen

mfg

DeddyH 21. Mär 2013 09:45

AW: 2 Formulare verbinden geht nicht :(
 
Statt Messages könnte man auch Events verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz