Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Welcher Button wurde gedrückt (selbsterstellter Dialog) (https://www.delphipraxis.net/47002-welcher-button-wurde-gedrueckt-selbsterstellter-dialog.html)

mr47 4. Jun 2005 20:28


Welcher Button wurde gedrückt (selbsterstellter Dialog)
 
Guten Tag.

Ich habe zwei Units (bzw. zwei Forms). Das eine ist die Hauptform und das andere ist ein selbstgebastelter Dialog. Wie kann ich jetzt im Hauptfenster feststellen, welcher button im Dialog gedrückt wurde? Man könnte das ja mit Globalen Variablen machen. Aber die sind ja nicht gut (heißts hier überall)... Wie kann ich also Informationen in die andere Unit transportieren?

Danke für Hilfe... mfg mr47

malo 4. Jun 2005 20:32

Re: Welcher Button wurde gedrückt (selbsterstellter Dialog)
 
Du könntest sie z.B. im Public-Bereich einer Klasse (z.B. deines Forms) unterbringen. Dann mit Form2.Variable1 ansprechen. ;)

100nF 4. Jun 2005 20:57

Re: Welcher Button wurde gedrückt (selbsterstellter Dialog)
 
hi,

das könnte man IMHO mit modalresult machen. kannst du im OI machen.

gruss
urbanbruhin

mr47 4. Jun 2005 21:23

Re: Welcher Button wurde gedrückt (selbsterstellter Dialog)
 
Zitat:

Zitat von urbanbruhin
hi,

das könnte man IMHO mit modalresult machen. kannst du im OI machen.

gruss
urbanbruhin

Hi.

Hört sich gut an. Es gibt auch von allen(?) objekten ein Modalresult. Aber wie übergebe ich dass dann? Also wenn ich in Form2 3 Buttons hab kommt dann

Delphi-Quellcode:
form2.ModalResult:=button3.ModalResult;
??? Oder wie.
Diese Zuweisung ist zwar erlaubt, aber wie prüfe ich dass dann in der Mainform?

mfgUndDanke mr47

malo 4. Jun 2005 21:27

Re: Welcher Button wurde gedrückt (selbsterstellter Dialog)
 
Delphi-Referenz durchsuchenModalResult :zwinker:

100nF 4. Jun 2005 21:33

Re: Welcher Button wurde gedrückt (selbsterstellter Dialog)
 
hi,

ich habe es auch noch nie angewendet, habe aber mal etwas ausprobiert und es funktioniert.

auf form2 (dialog) befinden verschiedene buttons. du musst im OI zu jedem button ein modalresult angeben.

auf form1 (hauptform) kannst du dann die form2 so aufrufen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.ShowModal; // showmodal ist wichtig, sonst kommt die messagebox, bevor du auf einen button geklickt hast
if form2.ModalResult = mrok then // mrok, mrcancel, usw... alle verschiedenen die du den buttons auf form 2 zugewiesen hast
showmessage('ok')
if form2.ModalResult = mrcancel then
showmessage('abbrechen')
end;
auf form2 brauchst du keinen quelltext zu schreiben!
ich hoffe du verstehst es

gruss
urbanbruhin

mr47 4. Jun 2005 21:35

Re: Welcher Button wurde gedrückt (selbsterstellter Dialog)
 
Danke euch allen! Die Hilfe hat mir grad ein wenig geholfen. Wollte es jetzt grad ausprobieren aber urbanbruhins Posting erledigt das!


Vielen Dank

mfg mr47

Mystic 5. Jun 2005 00:51

Re: Welcher Button wurde gedrückt (selbsterstellter Dialog)
 
ModalResult ist bereits der Rückgabewert von ShowModal.

Zitat:

Zitat von Delphi Hilfe
Mit ShowModal können Sie ein Formular modal anzeigen. Da bei einem modalen Formular die Anwendung unterbrochen wird, bis der Benutzer das Fenster wieder schließt, gibt ShowModal die Steuerung erst nach dem Schließen des Formulars zurück. Dabei wird auch der Wert der Eigenschaft ModalResult zurückgegeben.

Um ein modales Formular zu schließen, setzen Sie seine Eigenschaft ModalResult auf einen Wert ungleich 0.


100nF 5. Jun 2005 09:13

Re: Welcher Button wurde gedrückt (selbsterstellter Dialog)
 
aber der rückgabewert von showmodal ist ja eine integer zahl, und nicht msok, mrcancel usw.

dann müsste man es etwa so machen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  case form2.ShowModal of
  1://...
  2://...
  3://...
  //...
  end;
end;
gruee
urbanbruhin

r2c2 5. Jun 2005 09:25

Re: Welcher Button wurde gedrückt (selbsterstellter Dialog)
 
Zitat:

Zitat von urbanbruhin
aber der rückgabewert von showmodal ist ja eine integer zahl, und nicht msok, mrcancel usw.

dann müsste man es etwa so machen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  case form2.ShowModal of
  1://...
  2://...
  3://...
  //...
  end;
end;

:wiejetzt: :gruebel:
Der Rückgabewert is n Integer, klar, aber AFAIK is mrOK auch einer. Also kein Aufzählungstyp(heißt das so?), sondern ne Konstante. Das is glaub ich aus Kompatibilitätsgründen so.
Delphi-Referenz durchsuchenmrOK

mfg

Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz