Hallo zusammen,
Ich möchte gerne aus meiner Hauptform(frmMain) ein weiteres Formular(frmDetail) aufrufen, dabei aber Parameter übergeben.
Dazu habe ich folgendes gemacht(in vereinfachter Form):
in der aufrufenden unit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| . . .
procedure TNavigation.LookOutButton22Click(Sender: TObject); var KomponenteEdit:TKomponente_Detail; begin
KomponenteEdit:=TKomponente_Detail.Create(self,'neu','');
KomponenteEdit.Visible:=false; KomponenteEdit.ShowModal;
end; |
in der aufgerufenen unit:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| type TKomponente_Detail = class(TForm) Edit1:TEdit; ButtonSpeichern:TButton procedure ButtonSpeichernClick(Sender: TObject); procedure InsertKomp; public
constructor create(aOwner : tComponent;mode:string;UID:string); virtual; end;
var Komponente_Detail:TKomponente_Detail;
implementation
... constructor myForm.create(AOwner:TComponent,parm:string;UID:string); begin inherited create(AOwner); end;
...
...
procedure TKomponente_Detail.ButtonSpeichernClick(Sender: TObject); begin showmessage(Komponente_Detail.Edit1.Text); end; |
Die Programmierhilfe springt darauf an, der Compiler meckert auch nicht, aber
zur Laufzeit krieg ich eine Access violation, wenn ich auf Buttonspeichern klicke..
Nun der Hintergrund ist, dass ich an einer kleinen Datenbankanwendung (Absolute Database) schreibe und in mein Hauptfenster wie eine Webseite aufgebaut habe.
Also links die Navigation, rechts der Inhalt.
Bei oben angeführtem Konstrukt geht es darum, eine Eingabemaske (modal) für einen Datensatz aufzurufen.
Je nach gedrücktem Button soll entweder eine leere Maske angezeigt werden, oder eine mit bereits gefüllten Werten aus der Datenbank (zum editieren).
Ich habe das mittlerweile mit 2 Globalen Variablen gelöst, finde das aber nicht sehr schön und vermute, dass das Mißlingen auf diesem Weg an meinen mangelnden OOP_Kenntnissen liegt.
Deswegen: Kann mir da wer auf die Sprünge helfen ?
Wäre für Hinweise sehr dankbar.
greetz
Ruachel