![]() |
"Austausch" zwischen Programmteilen, wie?
Tut mir leid, aber ein besserer Titel ist mir jetzt erst mal nicht eingefallen, damit trotzdem klar wird, was ich meine, erkläre ich mal ein wenig.
Ich habe ein Mainform, welches zwei Panels enthält, eines für die Übersicht und eines für die Details. Das Formular für die Übersicht enthält einen Treeview und wird mit alClient beim Programmstart im Übersichtspanel auf der Mainform angezeigt. Im Detailpanel können, je nachdem worauf in der Übersicht geklickt wird, unterschiedliche Inhalte (Formulare) angezeigt werden. Die Daten werden in einem zusätzlichen Datenobjekt (separate Unit) gehalten. Wozu der ganze Aufwand? Ganz einfach, um die einzelnen Units übersichtlicher und in sich abgeschlossen zu halten. Das Problem: Ich muss jetzt irgendwie das Mainform davon informieren, dass in der Übersicht ein Inhalt für die Detailansicht ausgewählt wurde, damit das entsprechende Formular angezeigt werden kann. Die anzuzeigenden Daten sind einfach über eine eindeutige ID aus dem Datenobjekt zu ermitteln. Mir fällt jetzt als Lösung nur ein, im Übersichtsformular entsprechende Ereignisse zu definieren, auf die die Mainform reagieren kann. Das wäre wahrscheinlich auch die OOP-Lösung. Hat jemand eine bessere Idee dazu? |
Re: "Austausch" zwischen Programmteilen, wie?
Innerhalb einer Exe oder als PlugIn(Dll, Bpl)?
|
Re: "Austausch" zwischen Programmteilen, wie?
Hi,
ich hätte die Übersicht im Mainform gehalten - weil das ist, was das Mainform ausmachen sollte: Übersicht ;-) Gruss |
Re: "Austausch" zwischen Programmteilen, wie?
Ja, innerhalb einer Exe. Ich verwende nur Formulare, damit ich die Komponenten (in den Untermodulen) einfach grafisch anordnen kann.
|
Re: "Austausch" zwischen Programmteilen, wie?
Zitat:
Aber, so wie es jetzt ist, habe ich 1. Den Code für die Übersicht in einer getrennten Unit 2. Ich kann die Übersicht leicht gegen eine andere Darstellung austauschen, sogar zur Laufzeit. |
Re: "Austausch" zwischen Programmteilen, wie?
Hallo,
du kannst MVC (Model-View-Controller) oder Observer-Pattern benutzen. Das Observer kommt deinen Ereignissen schon etwas nahe. Bsp. gibt es im Netz. Heiko |
Re: "Austausch" zwischen Programmteilen, wie?
Standardmässig sind Formulare public. Sauber natürlich per Interface-Methoden
|
Re: "Austausch" zwischen Programmteilen, wie?
Mahlzeit,
wieso Ereignisse? Ein Ereignis reicht doch, oder auf wieviele Arten möchtest du deine MainForm darüber informieren, dass es ein Update gibt? Das Ereignis kann man auch selbst defnieren (schau doch mal nach der Definition von TNotifyEvent). Dort kann man z.B. auch die ID übertragen oder sogar das Detail-Objekt (was man ja haben sollte, wenn es denn schon OOP sein soll ;) ) cu Oliver BTW: Dieses ist gerade mit OOP sehr elegant und smart zu lösen, wenn man alles komplett in OOP programmiert |
Re: "Austausch" zwischen Programmteilen, wie?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:38 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-2025 by Thomas Breitkreuz