Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Austausch zwischen zwei Formularen über TClientDataSet (https://www.delphipraxis.net/182690-austausch-zwischen-zwei-formularen-ueber-tclientdataset.html)

Consumer 11. Nov 2014 08:40

Austausch zwischen zwei Formularen über TClientDataSet
 
Hallo,

ich habe zwei Formulare: Ein Hauptformular mit TClientDataSet und ein Unterformular,
das dem TClientDataSet des Hauptformulars um einen neuen Datensatz ergänzen soll.

Dabei muss ich alle Datensätze des TClientDataSet aus dem Hauptformulars in das Unterformular übertragen. Außerdem muss der neue Datensatz in den TClientDataSet des Hauptformulars geschrieben werden.

Gibt es eine Möglichkeit, wie man direkt vom Unterformular aus auf den TClientDataSet des Hauptformulars zugreifen kann?

Falls nicht, welches ist der einfachste Weg um das hin und her kopieren zwischen den Formularen so gering wie möglich zu halten?

Vielen Dank
und Gruß Consumer

baumina 11. Nov 2014 08:57

AW: Austausch zwischen zwei Formularen über TClientDataSet
 
Schreibe in die Uses-Liste des Unterformulars im interface-Teil die Unit des Hauptformulars und speichere die Unit des Unterformulars ab. Hast du nun auf dem Unterformular eine TDataSource, kannst du im Objektinspektor das (Client)Dataset des Hauptformulars auswählen.

DeddyH 11. Nov 2014 09:13

AW: Austausch zwischen zwei Formularen über TClientDataSet
 
Schöner fände ich entweder eine Property vom Typ T(Client)Dataset des Unterformulars, der das Hauptformular dann einfach sein eigenes zuweist oder (wenn kein direkter Zugriff gewünscht ist) eine Lösung über selbstdefinierte Events.

Uwe Raabe 11. Nov 2014 10:08

AW: Austausch zwischen zwei Formularen über TClientDataSet
 
Zitat:

Zitat von DeddyH (Beitrag 1279342)
Schöner fände ich entweder eine Property vom Typ T(Client)Dataset des Unterformulars, der das Hauptformular dann einfach sein eigenes zuweist

Wenn auf dem Unterformular bereits ein TDataSource liegt, dann ließe sich dessen DataSet-Property auch dafür verwenden.

DeddyH 11. Nov 2014 10:11

AW: Austausch zwischen zwei Formularen über TClientDataSet
 
Oder so. Ich mag es nur nicht sonderlich, wenn sich Units gegenseitig einbinden oder Klassen gegenseitig kennen müssen.

Uwe Raabe 11. Nov 2014 10:39

AW: Austausch zwischen zwei Formularen über TClientDataSet
 
Zitat:

Zitat von DeddyH (Beitrag 1279349)
Oder so. Ich mag es nur nicht sonderlich, wenn sich Units gegenseitig einbinden oder Klassen gegenseitig kennen müssen.

Da rennst du bei mir offene Türen ein!

Ein weiterer Ansatz wäre auch, das ClientDataSet in ein Datenmodul zu verpacken, dann hätte man die statische Felder auch gleich am Wickel. Der Möglichkeiten gibt es viele.

Consumer 12. Nov 2014 02:49

AW: Austausch zwischen zwei Formularen über TClientDataSet
 
Okay, vielen, vielen Dank für die ganzen Anregungen.
Werde mich gleich mal ans Werk begeben und schauen wie ich’s umsetze.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 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