AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi "Austausch" zwischen Programmteilen, wie?
Thema durchsuchen
Ansicht
Themen-Optionen

"Austausch" zwischen Programmteilen, wie?

Ein Thema von guidok · begonnen am 19. Feb 2009 · letzter Beitrag vom 20. Feb 2009
Antwort Antwort
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#1

"Austausch" zwischen Programmteilen, wie?

  Alt 19. Feb 2009, 14:28
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: "Austausch" zwischen Programmteilen, wie?

  Alt 19. Feb 2009, 14:38
Innerhalb einer Exe oder als PlugIn(Dll, Bpl)?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#3

Re: "Austausch" zwischen Programmteilen, wie?

  Alt 19. Feb 2009, 14:40
Hi,

ich hätte die Übersicht im Mainform gehalten - weil das ist, was das Mainform ausmachen sollte: Übersicht

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#4

Re: "Austausch" zwischen Programmteilen, wie?

  Alt 19. Feb 2009, 14:41
Ja, innerhalb einer Exe. Ich verwende nur Formulare, damit ich die Komponenten (in den Untermodulen) einfach grafisch anordnen kann.
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#5

Re: "Austausch" zwischen Programmteilen, wie?

  Alt 19. Feb 2009, 14:44
Zitat von thkerkmann:
Hi,

ich hätte die Übersicht im Mainform gehalten - weil das ist, was das Mainform ausmachen sollte: Übersicht

Gruss
Das werde ich vielleicht noch machen...

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.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: "Austausch" zwischen Programmteilen, wie?

  Alt 19. Feb 2009, 14:49
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
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: "Austausch" zwischen Programmteilen, wie?

  Alt 19. Feb 2009, 14:52
Standardmässig sind Formulare public. Sauber natürlich per Interface-Methoden
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

Re: "Austausch" zwischen Programmteilen, wie?

  Alt 19. Feb 2009, 23:02
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#9

Re: "Austausch" zwischen Programmteilen, wie?

  Alt 20. Feb 2009, 08:29
Zitat von Sir Rufo:
wieso Ereignisse? Ein Ereignis reicht doch, oder auf wieviele Arten möchtest du deine MainForm darüber informieren, dass es ein Update gibt?
Stimmt. So habe ich es jetzt auch gemacht. Es gibt ein Ereignis, welches die MainForm informiert. Im Ereignis werden u.a. die geklickte Object-ID übergeben.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 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