![]() |
Delphi-Version: XE8
Datenmodul dynamisch erstellen
Hi zusammen
Zurzeit arbeite ich an einem kleinen Testprogramm, bestehend aus der Mainform und einem Datenmodul. Dieses wurde bis jetzt automatisch erstellt. Nun brauche ich aber einen integerwert aus diesem Modul und erstelle dieses nun bei Mainform.Create:
Delphi-Quellcode:
Unter Projekt=>Optionen=>Formulare ist das Modul unter "Verfügbar" aufgeführt. Übrigens die selben bedingungen, die auch in meinem Datenbank-Programm vorhanden sind. Trotzdem krieg ich bei DMLSQLite.Create eine Av.
procedure TSQLiteTestMain.FormCreate(Sender: TObject);
begin FDatamodule := DMLSQLite.Create(Self); PathFinderFrame1.OnPathListEvent := DMLSQLite.DoPathListEvent; SPEDI_Seitelaenge.Value := DMLSQLite.Seitenlaenge; end; Wnn ich das Modul unter den Projektoptionen wieder in die Liste der automatisch erzeugten Formulare aufnehme, ist alles wieder OK. Was mache ich falsch? Gruss Delbor |
AW: Datenmodul dynamisch erstellen
Schwer zu sagen, da nicht bekannt ist, was z. B. beim Create von DMLSQLite alles passiert.
Gibt es da irgendwelche Abhängigkeiten, die nur erfüllt sind, wenn DMLSQLite automatisch erstellte wird? Benötigst Du SPEDI_Seitelaenge.Value := DMLSQLite.Seitenlaenge schon im Create? Oder könnte auch ein (etwas) späterer Zeitpunkt ausreichen? Sowas in der Art eventuell?
Delphi-Quellcode:
begin
Application.Initialize; Application.CreateForm(TSQLiteTestMain, SQLiteTestMain); Application.CreateForm(TDMLSQLite, DMLSQLite); SQLiteTestMain.SPEDI_Seitelaenge.Value := DMLSQLite.Seitenlaenge Application.Run; end. |
AW: Datenmodul dynamisch erstellen
Hi Nahpeds
Ich hab jetzt mal versucht, diese Anweisungen alle nach Mainform.OnActivate zu verlegen. Das hat nichts gebracht. Ich hatte das Problem übrigens schonmal. Abhilfe hat mir nur gebracht, das Modul völlig neu zu erstellen. SPEDI_Seitelaenge.Value zeigt auf der Mainform die Grösste Seitenlaenge eines Bildes, das skaliert werden soll, an. Für das Testprogrämmchen wäre dies zwar nicht notwendig Gruss Delbor |
AW: Datenmodul dynamisch erstellen
Zitat:
Grüße |
AW: Datenmodul dynamisch erstellen
@Lemmy
Oh Mann, das hätte ich aber eigentlich auch sehen müssen. Klappt das so?
Delphi-Quellcode:
procedure TSQLiteTestMain.FormCreate(Sender: TObject);
begin FDatamodule := TDMLSQLite.Create(Self); PathFinderFrame1.OnPathListEvent := FDatamodule.DoPathListEvent; SPEDI_Seitelaenge.Value := FDatamodule.Seitenlaenge; end; |
AW: Datenmodul dynamisch erstellen
Hi zusammen
Sorry, wenn ich jetzt ziemlich verspätet antworte - ich bin/war zur Zeit in 2 Foren unterwegs. Und im andern Forum ist die in der Schweiz bevorstehende Abstimmung zur zukünftigen Energiestategie ein heisses Thema... Mir bleibt nichts anderes übrig, als nahpeds zu zitieren: Zitat:
Versucht hab ichs bislang noch nicht, aber ich wäre erstaunt, wenn das nicht tun würde. Gruss Delbor PS: Ja, Lemmy, das klappt bestens. Es haben sich auch schon andere kleine Flüchtigkeitsfehler gezeigt. Aber nun habe ich wirklich die nötige Bettschwere, schliesslich war gerade 2 Uhr... |
AW: Datenmodul dynamisch erstellen
PS: Wenn Formulare/Module nicht automatisch erstellt werden, dann einfach immer erstmal diese böse globale Variable "DMLSQLite" löschen.
Und schon wäre es sofort aufgefallen, voallem da du eine eigene Variable "FDatamodule" hast. Wie du wohl die nächste Variable/Feld nennst, wenn noch ein weiteres DataModul dazu kommt? :stupid: Zitat:
Dir hätte da schließlich auffallen müssen, dass DMLSQLite = nil ist. (globale Variablen werden mit 0 initialisiert) Wäre es eine lokale Variable gewesen, dann hätte der Compiler zurecht wegen der nicht-initialisierten Variable gemeckert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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