Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Projektplanung und -Management (https://www.delphipraxis.net/85-projektplanung-und-management/)
-   -   untere Klasse Zugriff auf übergeordnete (https://www.delphipraxis.net/158941-untere-klasse-zugriff-auf-uebergeordnete.html)

jokerfacehro 8. Mär 2011 13:17

untere Klasse Zugriff auf übergeordnete
 
Hallo,

ich habe eine Klassenstruktur. Diese sieht folgendermaßen aus.

1.ControlInterface (enthält Daten und soll das ganze steuern)
1.1 Datenbank Interface (stellt die daten zu Verfügung
1.2 GUI (enthält die grafikelemente)
1.2.1 BaumAnsicht (darin ist ein treeview mit methoden zum füllen mittels eines querys)
1.2.2 MyFrame (eine Klasse, die ein Panel enthält mit Methoden um Formulare anzuzeigen)

So jetzt mein Problem.

Bei den Formularen weiß ich nicht genau, ob ich dies in GUI oder MyFrame packen soll.
Die Formulare werden nur im MyFrame angezeigt.
Allerdings enthalten die Formulare Buttons, die Steuermethoden vom ControlInterface aufrufen sollen.

z.B. Formular speichern (in Datenbank schreiben) oder bestimmte Daten aus der DB einlesen.

Wenn das Formular aufgerufen wird, sollen da drin einige Eingaben gemacht werden, die wieder neue Datenbankzugriffe erfordern.

Wodurch sich das Aussehen des Formulars ändern kann und zum Schluss sollen diese Eingaben dann gespeichert werden.


Ich weiß nicht, wie ich da die Steuerung sauber getrennt von den Grafikelementen hinbekomme.

Wahrscheinlich ist die Lösung relativ einfach.
Hat jemand eine Idee bzw. sowas in der Art schon mal umgesetzt?
Ich denke, dass man das viell. mit Ereignissen umsetzen kann.

Grüße

jokerfacehro 9. Mär 2011 10:41

AW: untere Klasse Zugriff auf übergeordnete
 
jemand eine idee ?

stahli 9. Mär 2011 11:27

AW: untere Klasse Zugriff auf übergeordnete
 
Ich kann Deine Frage noch nicht recht nachvollziehen, daher mal allgemein:

Die Formulare sollten Zugriff auf eine Datenkomponente erhalten.
Die Datenkomponente sollte KEINEN Zugriff auf das Formular haben (also TMyForm mit all seinen Eigenschaften nicht kennen).
Soll z.B. ein Memo gefüllt werden, sollte das Memo über einen Methodenaufruf der Datenkomponente übergeben werden.

GUI- und Datenpackage sollten völlig unanbhängig voneinander lauffähig sein. Erst zur Laufzeit sollte eine Verbindung hergestellt werden.

Hilft Dir das?

jokerfacehro 9. Mär 2011 16:52

AW: untere Klasse Zugriff auf übergeordnete
 
so in etwa meine ich das, aber viel einfacher.

Ich habe ein Objekt ControlInterface wo ich mir die Daten aus der DB hole und reinschreibe.
In meinem Objekt GUI habe ich eine Anzeige auf der ich eins der Formulare darstelle, die ich mit Werten füllen möchte.

Wenn ich den Button auf dem Formular drücke, möchte ich die Daten im Formular in die DB speichern.

Die Sache ist die, wie setze ich das ganze am besten um ?
Soll ich dem Formular methoden geben um selber in die DB zu schreiben?

oder soll ich beim button click das ganze dem GUI Objekt übergeben, welches die Aktion wiederum dem ControlInterface übergibt.


Mir fehlt einfach ein Ansatz für die Objektstruktur.
Ich habe bisher keine großen Projekte mit OOP gemacht,
daher bin ich da noch nicht ganz hintergestiegen.

Bummi 9. Mär 2011 21:24

AW: untere Klasse Zugriff auf übergeordnete
 
Dann kannst Du Dir die ganze Trennung sparen ...
wenn überhaupt kennt die GUI das Dateninterface und greift auf dort implementierte Methoden/Properties zu.
Du könntest es auch auf dir Spitze treiben und die Logik in eine eigene Schicht packen die auf Methoden/Properties/Ereignisse des Dateninterfaces und Methoden/Properties/Ereignisse der GUI zugreift.
Beides wäre dann prinzipiell austauschbar...

jokerfacehro 10. Mär 2011 11:35

AW: untere Klasse Zugriff auf übergeordnete
 
du meinst ich solle die logik zwischen das GUI-Objekt und dem formular machen ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:49 Uhr.

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