![]() |
Re: prozedur in Data Module auf andere Form anwenden
'Morgen Gerald
Zitat:
Doch die textbox enthält nachwievor den Text dass ich nicht entfernt habe, nämlich 'cxTextEdit2'. Magic ?? meinst Du dies mit der Initialisierung?
Delphi-Quellcode:
Ich werde das mit dem debugging versuchen.
program DataPlotter;
uses Forms, aPCmain in 'aPCmain.pas' {PCmain}, aPCdmod in 'aPCdmod.pas' {PCdmod: TDataModule}, aPCchrt in 'aPCchrt.pas' {PCchrt}, aPCVars in 'aPCVars.pas', aPCconn in 'aPCconn.pas' {PCconn}; {$R *.res} begin Application.Initialize; Application.Title := 'DataPlotter'; Application.CreateForm(TPCmain, PCmain); Application.CreateForm(TPCdmod, PCdmod); Application.CreateForm(TPCchrt, PCchrt); Application.CreateForm(TPCconn, PCconn); Application.Run; end. |
Re: prozedur in Data Module auf andere Form anwenden
Zitat:
Du wirst doch wahrscheinlich in einem Event (onCreate oder onShow usw.) einer Form die Funktion im Datamodul aufrufen. Diese Procedure wäre interessant. Und ob danach noch einmal von irgendwo auf das Editfeld zugegriffen wird. Deswegen der Tip mit dem Debugger. |
Re: prozedur in Data Module auf andere Form anwenden
Ich verbinde zu der Datenbank über eine Modalform. Gleichzeitig (In der gleichen prozedur wie das Verbinden der DB), öffne ich die Query.
Beim öffnen der Query wird der Event AfterOpen ausgelöst. Beim debuggign bin ich noch nicht weiter gekommen. |
Re: prozedur in Data Module auf andere Form anwenden
Hab nun das mit dem debugger gemacht, allerdings blicke ich es nicht ganz durch.
hab die komponente 'Edit1' (um standardkomponenten zu nehmen) nun in die Watchlist genommen, aber die Meldungen sagen mir überhaup nichts (wahrscheindlich hab ich's auch falsch gemacht...) Ansonsten ist mir nichts verdächtiges aufgefallen. Aber mal ganz grunsätzlich: es sollte doch *prinzipiell* gehen, oder ? (aus einem event im datamodul an ein objekt in einer anderen Form etwas zu übergeben ? Es ist mir nicht bewusst das dies so abwägig sein könnte. Wie gesagt, dies ist mir schon früher aufgefallen, nur konnte ich immer umschiffen... |
Re: prozedur in Data Module auf andere Form anwenden
Zitat:
Du hast ein anderes Problem in deinem Code! Entweder: in einem anderen Event überschreibst du den Wert wieder. Oder: Der Aufruf der modalen Form ist nicht korrekt und erzeugt die Form zb 2mal. Also zeig mal den Aufruf der modalen Form |
Re: prozedur in Data Module auf andere Form anwenden
Um genau zu sein liegt die Edit (die zu füllen ist) nicht auf der Hauptform, sondern auf einer weiteren Form. Diese wird ins Hauptfenster eingebettet, sodass ich einen einzigen Rahmen und Menübalken habe (und beliebig mit weiteren Fenster erweiterbar ist - aber vielleicht liegt der Hund genau da vergraben...).
Daher wird die modale Form aus dem Menu auferufen mit folgendem Code:
Delphi-Quellcode:
procedure TPCmain.aConnectExecute(Sender: TObject);
begin PCconn.ShowModal; end; |
Re: prozedur in Data Module auf andere Form anwenden
Jetzt wird's aber langsam unübersichtlich :roll:
Zitat:
Was ist mit TPCmain? Wie und welcher Reihenfolge diese gestartet bzw. initialisiert werden verrätst Du nicht. Ebensowenig welches davon auf dem anderen liegt. Gehts auch etwas detailierter als mit isoloierten Codeschnipseln? Sonst fällt mir dazu nix mehr ein. Gruß Gerald |
Re: prozedur in Data Module auf andere Form anwenden
Liste der Anhänge anzeigen (Anzahl: 1)
Guter Einwand,
anbei ein demo mit den minimalsten Standardkomponenten. vielleich hilt das um das Gefüge zu klären. |
Re: prozedur in Data Module auf andere Form anwenden
Kann zwar das Demoprogramm nicht zum laufen kriegen, da ich interbase nicht installiert habe.
Was mir aber so auf den 1. Blick aufgefallen ist: Bei Programmstart erstellst du das Formular ein erstes Mal
Delphi-Quellcode:
und später erzeugst das Formular ein zweites Mal:
Application.CreateForm(TPCchrt, PCchrt);
Delphi-Quellcode:
procedure TPCmain.FormCreate(Sender: TObject);
begin FChart := TPCchrt.Create(Self); with ChartF do begin Parent := Self; align := alClient; Visible := True; end; // ClientWidth := 1300; end; |
Re: prozedur in Data Module auf andere Form anwenden
Danke, danke, danke !!!
Das muss zwar so sein (anders bekomme ich es nicht zum laufen), aber du hast mich drauf gebracht. anstatt:
Delphi-Quellcode:
geht es nun so:
procedure TPCdmod.D1BeforeConnect(Sender: TObject);
begin with PCchrt do begin Opentime('von: TPCchrt.Opentime, aus Event: TPCdmod.D1BeforeConnect - string müsste eigentlich in Edit1 stehen'); end; end;
Delphi-Quellcode:
Herzlichen Dank
procedure TPCdmod.D1BeforeConnect(Sender: TObject);
begin with PCmain.ChartF do <-- springender punkt begin // Opentime('von: TPCchrt.Opentime, aus Event: TPCdmod.D1BeforeConnect - string müsste eigentlich in Edit1 stehen'); // oder eben: Edit1.Text := 'Mistery Solved'; end; end; Daniele |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 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