![]() |
Delphi-Version: 5
Kommunikation zwischen Forms problem
Hallo,
ich versuche gerade zwei Eingabewerte über eine zweite Form, die per ShowModal von der Main Form aufgerufen wird einzulesen. Leider mangelt es bei mir an Wissen oder Kreativität das ganze sauber umzusetzen. Ich zeige mal auf was ich bereits habe und wo es nicht weitergeht: Main Form:
Delphi-Quellcode:
Hier sieht man einmal meine zweite Form TFormSetup und ein Record TSettingsdata, das die Eingabewerte enthält.
procedure TEinstellungen.CreateSettings;
var SetupDlg : TFormSetup; Setupdata : TSettingsData; begin m_Inifile := TIniFile.Create(SETTINGS); SetupDlg := TFormSetup.Create(FormSetup, Setupdata); SetupDlg.ShowModal; Den TCustomForms Constructor habe ich überladen:
Delphi-Quellcode:
Ich habe später wenn das Hauptproblem gelöst wurde vor, data per Pointer zu übermitteln.
Constructor TFormSetup.CreateWith(AOwner: TComponent; data : TSettingsdata);
begin m_SettingsData := data; inherited Create(AOwner); end; In der TFormSetup gibt es die procedure Setup, die ausgelöst wird, sobald der Nutzer alle Daten eingegeben hat.
Delphi-Quellcode:
procedure TFormSetup.Setup;
begin // Verschiedene Prüfungen, irrelevantes Zeug. MessageBox(0, 'Saved!', 'Success', 64); // WAS HIER ? // RELEASE; ? end; Nun soll die Form sich selbst releasen, so dass der Mainthread weiter macht (also das Hauptprogramm bei Showmodal weiter ausgeführt wird). Ich weiß leider nicht wie ich das am besten mache. Danke im voraus! |
AW: Kommunikation zwischen Forms problem
Delphi-Quellcode:
procedure TEinstellungen.CreateSettings;
var SetupDlg : TFormSetup; Setupdata : TSettingsData; begin m_Inifile := TIniFile.Create(SETTINGS); SetupDlg := TFormSetup.Create(FormSetup, Setupdata); SetupDlg.ShowModal; SetupDlg.Free; |
AW: Kommunikation zwischen Forms problem
Liste der Anhänge anzeigen (Anzahl: 1)
Ich mag das
Delphi-Quellcode:
, dann reduziert sich der Code auf
TPersistent.Assign
Delphi-Quellcode:
Kompletter Source und EXE im Anhang
procedure TMainForm.Button1Click( Sender: TObject );
var lSettingDialog: TForm; begin lSettingDialog := TSetupForm.Create( nil ); try // Daten an die Form übergeben lSettingDialog.Assign( FSettings ); // Form als Dialog aufrufen if lSettingDialog.ShowModal = mrOk then // Daten von der Form lesen FSettings.Assign( lSettingDialog ); finally lSettingDialog.Free; end; end; |
AW: Kommunikation zwischen Forms problem
@Sir Rufo:
Vielen Dank! Das Projekt hat mir sehr gut weitergeholfen und ich hab was neues dazugelernt. Grüße EDIT:// Echt super gelöst - nochmals vielen Dank ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 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