![]() |
Eigenen Dialog aufrufen
Hy ich mal wieder.
Ich hab mir nen eigenen Dialog (form) gemacht. Meine Frage , wie kann ich diesen aufrufen und abfragen welcher button gedrückt worden ist (JA,Nein); Also so wie man das mit einen Normalen Dialog auch macht. lg Bundy |
Re: Eigenen Dialog aufrufen
Das Ganze könnte in etwa so aussehen:
Delphi-Quellcode:
Aber wenn du nur einen dialog mit ja und nein brauchst guckst du dir am besten mal application.messagebox oder windows.messagedlg an.
function Execute:boolean; // Der Aufruf
begin fdeineform:= Tfdeineform.Create(Application); try fdeineform.ShowModal; result:=fdeineform.execute; finally fdeineform.Free; end; end; type Tfdeineform = class(TForm) Button1: TButton; Button2: TButton; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); public execute:boolean; end; ... procedure Tfdeineform .Button2Click(Sender: TObject); begin execute:=false; close; end; procedure Tfdeineform .Button1Click(Sender: TObject); begin execute:=true; close; end; |
Re: Eigenen Dialog aufrufen
Eigendlich hab ich da eh nur Ja und nein drauf, aber mir gefällter der standart Dialog nicht.
|
Re: Eigenen Dialog aufrufen
du kannst ein Form mit "ShowModal" aufrufen. ShowModal liefert einen Integer zurück. Und den Integer kannst du vom Formular her setzen. Wenn zum Beispiel auf den Ja-Button geklickt wird brauchst du nur folgendes schreiben:
Delphi-Quellcode:
und schon wird das Formular geschlossen und ShowModal hat somit den Wert von mrYes.
ModalResult := mrYes;
|
Re: Eigenen Dialog aufrufen
Gleich mal testen . :-D
|
Re: Eigenen Dialog aufrufen
Wie werte ich dann den Modalresult im Form aus ? :gruebel:
|
Re: Eigenen Dialog aufrufen
ganz einfach. Du hast ein Hauptformular (im folgenden als Form1 bezeichnet) und von da aus willst du deinen Dialog aufrufen (im folgenden als Form2 bezeichnet). Mal angenommen du zeigst den Dialog per ButtonClick an:
Delphi-Quellcode:
und in Form2 schreibst du dann beim Button-Ja folgendes:
procedure TForm1.Button1Click(Sender: TObject);
begin if Form2.ShowModal = mrYes then ShowMessage('ja wurde gedrückt') else ShowMessage('ja wurde NICHT gedrückt'). end;
Delphi-Quellcode:
und im OnClick von Button-Nein:
procedure TForm2.ButtonJaClick(Sender: TObject)
begin ModalResult := mrYes; //mrYes ist eine Konstante, kann auch jeder andere Integer sein end;
Delphi-Quellcode:
procedure TForm2.ButtonJaClick(Sender: TObject)
begin ModalResult := mrNo; end; |
Re: Eigenen Dialog aufrufen
ModalResult setzen: Wie SirThornberry geschrieben hat, oder per BitButton (für die kann man ein ModalResult setzen).
Abfrage:
Delphi-Quellcode:
Habe den Roten Kasten gesehen. Ich wollte aber auf die BitButtons hinweisen ;-)
case EigenesForm.ShowModal of
mrYes: ... mrNo: ... end; Gruß, ManuMF |
Re: Eigenen Dialog aufrufen
der Normale TButton hat auch unter Delphi7 bereits das Property ModalResult.
Allerdings wollte ich nicht darauf hinweisen weil sonst irgendwann die Frage kommt wie man das macht wenn jemand auf ein Image klickt. |
Re: Eigenen Dialog aufrufen
also irgendwas klapt da nich, schaut mal
ich hab im dialog
Delphi-Quellcode:
und im Mainform das
procedure TfmDialogDiensteAuchBuchen.btJaClick(Sender: TObject);
begin ModalResult:=mrYes; close; end; procedure TfmDialogDiensteAuchBuchen.btNeinClick(Sender: TObject); begin ModalResult:=mrNo; close; end;
Delphi-Quellcode:
aber macht keinen Beep wenn ich auf Ja drück :gruebel:
case fmDialogDiensteAuchBuchen.ShowModal of
mrYes: Beep; //nur zum testen mrNo: close; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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 by Thomas Breitkreuz