![]() |
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 |
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. |
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:
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:
dsGlobal := dsDatenbank;
Code:
Dann aber kommt folgender Compilerfehler:
combSelect.DataSource := frmMain.dsGlobal; // combSelect ist eine Combobox
[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 ... |
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