Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Prism Von mehreren Forms auf EIN DataSet zugreifen (https://www.delphipraxis.net/121318-von-mehreren-forms-auf-ein-dataset-zugreifen.html)

mh166 25. Sep 2008 15:55


Von mehreren Forms auf EIN DataSet zugreifen
 
Hallo allerseits,

in meiner Winforms-Anwendung habe ich eine DataSet-Kompo auf dem Form frmMain und will von nem zweiten Form - nennen wir es frmZwei - drauf zugreifen. Hört sich recht trivial an: frmMain.DataSet - wo soll da das Problem sein? Nun es ist folgendes:

Die Anwendung die ich programmiere soll später mal auf Windows Mobile laufen. Drum sind mein Platz auf den Forms und auch die Ressourcen relativ beschränkt. Also wollt ich nur eine DataSet-Kompo haben und hab die halt auf das Mainform gefplanzt. Allerdings frag ich mich nun, wie ich die Komponenten (z.B. Listboxen oder ähnliches) auf dem zweiten Form an das DataSet auf dem ersten binden kann. Unter DataSource kann ich nix auswählen (hätte mich auch gewundert) und z.B. "frmMain.DataSet" reinschreiben funktioniert natürlich auch nicht; ist ja nur eine DropDown-Liste.

Daher jetzt meine Frage: wie kann ichs schaffen, dass ich scho zur Designtime im Objektinspektor die Komponenten von frmZwei an das DataSet auf frmMain binden kann? An sich das zur Laufzeit dann zu ändern mag zwar gehen ... ist aber arg umständlich.

Oder habt ihr noch andere Ideen wie man das Problem elegant und einigermaßen ressourcenschonend lösen könnte?

mfg, mh166

Christian Seehase 25. Sep 2008 17:12

Re: Von mehreren Forms auf EIN DataSet zugreifen
 
Moin mh,

was ist daran umständlich das zur Laufzeit zu machen?
Bevor das Formular mittels Show oder ShowModal angezeigt wird, setzt Du eine Eingenschaft auf den DataSet des Haupformulares, und zeigst es an.
Andere Variante:
Du verwendest ein DataModule und bindest das in alle Formulare ein.

mh166 25. Sep 2008 18:03

Re: Von mehreren Forms auf EIN DataSet zugreifen
 
Hmmm ... ich fürchte mir bleibt wohl keine andere Wahl als die Eigenschaft zur Runtime zu setzen. Was daran umständlich is? Nuuun ... ähm ... bin halt faul. :lol:

Aber was hats denn mit dem DataModule auf sich? Wo findet man das? Hab irgendwie weder in den Kompos der Winforms noch in der Hilfe wat dazu finden können. :gruebel:

so far ...

// Edit: irgendwie scheint das bei den Winforms doch nich so trivial zu sein, mit dem zugreifen. Hab grad mal ne Eigenschaft dsGlobal vom Typ TObject (vorher wars System.Data.DataSet, hat aber auch nich geklappt) als published erstellt. Im OnLoad des Formulars mach ich:
Code:
dsGlobal := dsDatenbank;
Das Ganze über ne Eigenschaft, da der Designer die Kompos der Winforms standardmäßig als private deklariert. Nun wollt ich im anderen Form folgendes tun:
Code:
combSelect.DataSource := frmMain.dsGlobal; // combSelect ist eine Combobox
Dann aber kommt folgender Compilerfehler:
[Pascal Error] uGebiet.pas(162): E2096 Method identifier expected

Einer ne Ahnung wie ich nun vllt. doch noch an mein DataSet rankomme? Wenn ich einfach nur frmMain eintippe und danach die CodeCompletion anzeigen lasse, dann taucht dort auch nirgends n "dsGlobal" auf. :( In der uses unter implementation isses aber ...

mh166 1. Okt 2008 15:08

Re: Von mehreren Forms auf EIN DataSet zugreifen
 
Hat denn keiner ne Idee, wie ich auf das depperte DataSet zugreifen könnte? :(


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