Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Konzeptfrage: Interface oder Messages (https://www.delphipraxis.net/190799-konzeptfrage-interface-oder-messages.html)

Ghostwalker 9. Nov 2016 11:33

Konzeptfrage: Interface oder Messages
 
Hi,

bin grad über einer etwas größeren Anwendung. Bisher existiert nur eine Hauptform und einige
Klassen fürs DB-Handling.

Aufbau:

Hauptform mit Hauptmenü und Statusbar, sowie 2 Bereiche für Frames. Einmal "Navigations"-Frames
sowie Content-Frames (über Tabset, es können also mehrere gleichzeitig offen sein). Da das einige
Frames werden, würd ich das ganze über eine Manager-Klasse verwalten. Zusätzlich kann ich das
so auch dynamisch handhaben.


Frage:

Die Frage, die sich nun stellt ist, wie baue ich die Kommunikation zwischen den einzelnen
Teilen auf (also zwischen Mainform, Navigationsframes und Contentframes), da hier ja
auch Daten und Commands ausgetauscht, bzw. angestoßen werden müssen.


Bisherige Ansätze:

a) Hardcore-Windows

Die Daten und Kommandos werden via PostMessage/SendMessage ausgetauscht, bzw. angestossen.

Vorteil:

- relativ einfach und schnell zu realisieren.
- flexibel

Nachteil:

- Unübersichtlich und damit schwer wartbar.

b) Interfaces

Jeder Frame implementiert (je nach Frametyp, also Navi oder Content) ein entsprechendes
Interface, das über einen zentralen Manager angesteuert wird.

Vorteil:

- Klare Struktur
- gute Wartbarkeit


Nachteil:

- Aufwendig zu realisieren
- schwieriger zu erweitern.



Hat jemand hier größere Erfahrung oder gar ganz andere Ansätze ?

stahli 9. Nov 2016 11:49

AW: Konzeptfrage: Interface oder Messages
 
Ich habe jetzt noch nicht verstanden, warum und was die Bereiche miteinander austauschen sollen.

Soll die Navigation so eine Art Ribbons werden, die abhängig vom aktuellen Content ist?

Sonst könnte die Navigation ja einfach stumpf einen eigenständigen Content öffnen.

Beschreib mal noch mehr oder zeige mal eine Skizze.

Headbucket 9. Nov 2016 12:20

AW: Konzeptfrage: Interface oder Messages
 
Ich habe es so verstanden: Es gibt immer 3 Bereiche, welche zusammenspielen müssen:

- Hauptmenü
- Navigationsframe
- Contentframe

Je nach aktuellem Programmzustand gibt es ein neues Set dieser 3 Bereiche. Eventuell teilen sich auch manche Sets das gleiche Navigationsframe usw.
Natürlich haben dann Aktionen auf dem Navigationsframe oder dem Hauptmenü Auswirkungen auf das Contentframe. Denn wenn ich auf dem Naviagtionsframe einen Button drücke, dann soll im Contentframe etwas passieren.

Eine Musterumsetzung würde mich auch mal interessieren.

Grüße
Headbucket

TiGü 9. Nov 2016 12:27

AW: Konzeptfrage: Interface oder Messages
 
Umsetzung geschieht mit den im Profil angegeben Turbo Delphi oder etwas neueren?

Ghostwalker 9. Nov 2016 13:09

AW: Konzeptfrage: Interface oder Messages
 
Jap, Umsetzung is mit TD unter XP (evtl Win 7) :)


Headbucket hat das ganze recht gut auf den Punkt gebracht.

(Mein Erklärbär is leider grad den Bach runter gegangen. Hab zu lange gebraucht ums zu tippen.:( )

Ghostwalker 9. Nov 2016 13:24

AW: Konzeptfrage: Interface oder Messages
 
So..jetzt aber, ein Beispiel: Fuhrparkverwaltung

Hauptmenü: PKW, Transporter, Fahrräder, Flugzeuge, Farben

Bei HM-Auswahl PKW:

Navi mit einer Liste der bestehenden PKW und Buttons für die Bearbeitungen/Ansichten

Bei Auswahl eines Elements und der Aktion edit:

Content:

Maske mit den Eigenschaften des gewählten PKW's


oder

Bei Auswahl eines Elements und der Aktion Belegung:

Content:

Maske mit der Belegung des PKW's und den möglich Aktionen darin


Bei HM-Auswahl Farben:

Content

Liste mit verfügbaren Farben für die entsprechende Eigenschaft
der Fahrzeuge/Flugzeuge incl. direkter Bearbeitung der Liste


Dabei ist z.B. der Navi relativ wurscht, ob nu PKW, Transporter oder Antigrav-Boards.
Sie muss nur wissen, das sie ne ID, ein Icon und einen Text als liste anzeigen soll und
welche Kommandos verfügbar sind.

Umgekehrt ists dem Content wurscht, woher ein Kommando kommt (Ob vom HM oder der Navi oder einer Batchdatei). Er muss nur wissen, das er jetzt das Item mit der ID xyz bearbeiten soll (z.B.).


Hoff mal das das ganze etwas verdeutlicht :)

stahli 9. Nov 2016 14:17

AW: Konzeptfrage: Interface oder Messages
 
Ich finde das schwierig.

Ich würde Dein Hauptmenü als Navigation bezeichnen.
Eventuell könnte man das in Form eines PageControls darstellen.
So kann der User in verschiedene Bereiche wechseln/navigieren.

Die Liste von PKWs würde ich nicht als Navigation bezeichnen, sondern als Master-Datenmenge.
Wenn dort ein Eintrag selektiert wird könnten neben der Liste Details in einem eigenen Bereich dargestellt werden.

Es wird also von außen nach innen immer detaillierter.
Dabei gäbe es aber keine Kommunikation von innen nach außen.
Durch Bewegen innerhalb des PageControls und innerhalb der Master-Listen werden dann einfach andere Detaildaten eingeblendet.

Offenbar willst Du etwas anderes erreichen, aber das habe ich noch nicht verstanden. :duck:

Ghostwalker 9. Nov 2016 15:02

AW: Konzeptfrage: Interface oder Messages
 
@stahli

Mit Master/Detail hast du schon nicht ganz unrecht. Wichtig ist im wesentlich das Master möglichst unabhängig von Detail ist und umgekehrt.

Master-PKW ist der gleiche wie Master-LKW und Master-Hoverboard. Die Details (oder besser das eigentliche Kernobject des Bereichs) sind aber unterschiedlich.

Beispiel:

MASTER hat immer 3 (Daten)-Element: id,status,text zur Darstellung.

Je nach Detail (PKW,LKW,Hoverboard) haben sie z.T. aber ganz andere Bedeutungen.

Beispiel zum Beispiel:

Der Master weiß, das er bei id xyz den Status grün anzeigen soll. Was "grün" bedeutet,
weiß er nicht (ist ihm auch egal).

Je nach Detail heißt "grün" aber bei einem PKW "Reifendruck ok", beim LKW "Druckluftkessel ok" und
beim Hoverboard "Akku voll" (hat weder Reifen noch Bremsen :lol:)

Ich kann also für PKW,LKW,Hoverboard den gleichen Master verwenden, obwohl es unterschiedliche Daten sind.

Dazu muss der Master aber mit Detail kommunizieren.

Master sagt Detail : Bearbeite Element mit ID xyz

Umgekehrt muss Detail aber auch mit Master kommunizieren:

Detail sagt Master : Neues Element mit ID abc Status:blau und Text: Wupti eingefügt.

stahli 9. Nov 2016 15:22

AW: Konzeptfrage: Interface oder Messages
 
Ok, langsam wird es klarer.

Drei grundsätzliche Fragen noch:

1) Die Liste von PKW und die Liste von LKW, liegen die persistent in Objekten vor oder werden die direkt über eine TTable aus einer Datenbank geholt?

2) Gibt es im Projekt immer fix eine PKW-Liste und immer eine LKW-Liste oder soll der User sich nach Bedarf beliebige Listenansichten erzeugen können? Ich hatte eine Eingangsfrage noch so verstanden.

3) Hast Du schon mal mit Interfaces gearbeitet?

Ghostwalker 9. Nov 2016 15:36

AW: Konzeptfrage: Interface oder Messages
 
@stahli

Zu 1)

Sie werden zur Laufzeit über entsprechende Objekte aus der DB zur Verfügung gestellt.


Zu 2)

Dynamisch. Der User bekommt Sortier-/Filterfunktionen. Daher auch entsprechende List-Objekte :)

Zu 3)

Jap. Zwar bisher eher im kleinen Rahmen, aber die grundsätzlichen Sachen hab ich kapiert :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr.
Seite 1 von 3  1 23      

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