Entwickler-Ecke

Sonstiges (Delphi) - Fenster als Funktion öffnen


Zaubär - Mo 02.12.02 20:31
Titel: Fenster als Funktion öffnen
Ist es möglich ein zweites Fenster zu öffnen und dieses zu behandeln wie eine Funktion. Das heisst in diesem Fenster werden ein paar Daten eingegeben, welche dann zurückgegeben werden sollten...je nachdem von wo aus das Fenster geöffnet wird.
Eigentlich eine Art DialogBox. Wie realisiere ich sowas??


Delete - Mo 02.12.02 20:37

Bitte in der Hilfe "Form.ShowModal" anschauen, und die Buttons dieser zweiten Form mit entsprechenden "ModalResult" belegen. Soll heißen: der OK-Button bekommt "mrOk", Abbrechen "mrCancel", usw.

Dieser Wert lässt sich dann durch o.g. "ShowModal" auswerten.


Zaubär - Mo 02.12.02 20:48

Habe gar nicht gewusst, dass ShowModal sowas kann.

Aber wenn ich's richtig angeschaut habe wird es schwierig ein paar Strings zu übergeben ?


Delete - Di 03.12.02 09:01

Na ja, das kommt eigentlich darauf an, wohin diese Strings müssen oder sollen. Wenn du z.B. ein Edit-Feld damit füllen willst, kannst du ja über den Form-Namen darauf zugreifen, etwa

Quelltext
1:
DieNeueForm.Edit1.Text := MeinString;                    

Und umgekehrt natürlich

Quelltext
1:
2:
3:
4:
if(DieNeueForm.ShowModal = mrOk) then
  MeinString := DieNeueForm.Edit1.Text
else
  MeinString := '';

Mal so als wirklich simples Beispiel. Klickst du in der zweiten Form den Button an, der als ModalResult "mrOk" besitzt (dürfte ja meist auch OK sein), dann -und nur dann!- wird der String aus dem Edit-Feld ausgelesen. In jedem anderen Fall wird der String "MeinString" quasi gelöscht.

Wenn die Strings nicht in Form von Edit- u.ä. Feldern sichtbar sind, könntest du sie im public-Bereich der Form deklarieren:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
type
  TDieNeueForm =
     { ... }
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
     EinString,
     NocheinString : string;
  end;

dann kannst du ebenfalls über

Quelltext
1:
2:
DieNeueForm.EinString
DieNeueForm.NocheinString

darauf zugreifen.


Zaubär - Di 03.12.02 18:33

Danke!

Jetzt sollte ich weiterkommen.