![]() |
Problem mit Weiterleitung auf 2-Funktionen-Unit
Hallo Leuts,
wer sich noch an Gestern erinnert, weiß, dass ich an einem Adressbuch schreibe. Das ausglieder der Eingabe von neuen Adressen ist mit Mittlerweile gelungen. Jetzt möchte ich, auch eine Funktion einbauen, bereits bestehende Adressen zu ändern. Dafür will ich aber keine neue Unit kreaieren, sondern das Fenster benutzen, welches schon fürs hinzufügen benutzt wird. Dafür habe ich 2 unterschiedliche Funktionen in die Unit geschrieben. 1. Funktion (Hinzufügen von Adressen)
Delphi-Quellcode:
2. Funktion (Ändern von Adressen)
procedure TForm2.BtnHinzuClick(Sender: TObject);
begin if MessageDlg('Soll die Adresskarte gespeichert werden?', mtConfirmation,[mbYes,mbNo], 0 ) = mrYes then begin vorname := EdVorname.Text; Nachname := EdNachname.Text; Job := EdJob.Text; Strasse := EdStrasse.Text; Ort := EdOrt.Text; Telefon := EdTelefon.Text; self.ModalResult := mrOK; end else self.ModalResult := mrCancel; end;
Delphi-Quellcode:
Mein hauptsächliches Problem ist, dass ich nicht wieß, wie ich mit meinem Änder-Button aus Form1 gezielt auf die 2. Funktion zugreife und wie ich die Variablen (AVorname, ANachname, usw.) auf die Unit übertragen kann.
constructor TForm2.Create(AOwner: TComponent; AVorname, ANachname, AJob,
AStrasse, AOrt, ATelefon: string); begin inherited Create (AOwner); EdVorname.Text := AVorname; EdNachname.Text := ANachname; EdJob.Text := AJob; EdStrasse.Text := AStrasse; EdOrt.Text := AOrt; EdTelefon.Text := ATelefon; BtnHinzu.Caption := 'Ändern'; if MessageDlg('Soll die Adresskarte geändert werden?',mtConfirmation, [mbYes,mbNo], 0 ) = mrYes then begin vorname := EdVorname.Text; Nachname := EdNachname.Text; Job := EdJob.Text; Strasse := EdStrasse.Text; Ort := EdOrt.Text; Telefon := EdTelefon.Text; self.ModalResult := mrOK; end else self.ModalResult := mrCancel; end; Bisheriger Quellcode des Ändern-Buttons:
Delphi-Quellcode:
Ich hoffe ihr könnt mir helfen
procedure TForm1.BtnAendernClick(Sender: TObject);
var aForm: TForm2; i : integer; AVorname, ANachname, AJob, AStrasse, AOrt, ATelefon : string; begin if (LBAdressen.ItemIndex <> -1) then try aForm := TForm2.Create(self); i := LBAdressen.ItemIndex; AVorname := Adressen[i].Vorname; ANachname := Adressen[i].Nachname; AJob := Adressen[i].Job; AStrasse := Adressen[i].Strasse; AOrt := Adressen[i].Ort; ATelefon := Adressen[i].Telefon; if aForm.showmodal=mrOK then begin Adressen[i].Vorname := aForm.Vorname; Adressen[i].Nachname := aForm.Nachname; Adressen[i].Job := aForm.Job; Adressen[i].Strasse := aForm.Strasse; Adressen[i].Ort := aForm.Ort; Adressen[i].Telefon := aForm.Telefon; end; finally aForm.Free; end; end; gruß DutchmanTom |
Re: Problem mit Weiterleitung auf 2-Funktionen-Unit
Wie wäre es, wenn du die Daten dem Form2 als Propertys verpasst:
Delphi-Quellcode:
Im Form2 kannst du dann unterscheiden, ob die Eigenschaften geändert wurde und entsprechend reagieren.
type
TForm2 = class(TForm) private FVorname: String; //... usw. public property Vorname: String read FVorname write FVorname; end; //Im Hauptformular aForm := TForm2.Create(self); aForm.Vorname := "Irgendeinname"; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 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