| Autor |
Beitrag |
Geraldine
      
Beiträge: 20
WIN XP, WIN 2000, WIN ME
D7
|
Verfasst: Mi 03.08.05 08:47
Hallo
Ich möchte in einer IF-Abfrage mehrere Buttons abfragen.
z.B. Wenn Button A und B gedrückt wurden, dann soll etwas gemacht werden
Wenn Button C gedrückt wurde dann wieder was anderes.
Ich habe schon mehrere Sachen ausprobiert, aber funktioniert hat nichts.
Wie frage ich einen Button ab, ob er gedrückt wurde?
Bitte um Hilfe!!!
Jerry
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 03.08.05 08:55
Du weist jedem der Buttons dasselbe OnClick-Event zu, und schreibst in diese OnClick Procedur in etwa das folgende:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button1Click(Sender: TObject); begin if Sender = Button1 then showmessage('Button1') else showmessage('Button2'); end; |
_________________ We are, we were and will not be.
|
|
Geraldine 
      
Beiträge: 20
WIN XP, WIN 2000, WIN ME
D7
|
Verfasst: Mi 03.08.05 09:07
Hallo
erstmal herzlichen Dank für die schnelle Antwort.
Geht das auch mit diesem Problem?
Ich möchte in meinem Programm beim Speichern abfragen, welcher Button gedrückt wurde, ist der Button von einer anderen Form gedrückt worden, dann soll er "Insert machen, wenn nicht, dann "Edit". Ich sollte Insert im Speichern Button unterbringen, weil sonst wenn ich schon bei Click vom Button mache und dann auf Abbrechen gehe, dann legt er mir, bis ich aktualisiere oder was anderes mache, einen leeren Datensatz an. Und das kann ich verhindern in dem ich erst Insert mache wenn ich auf den SpeichernButton klicke. Oder denke ich falsch?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TFBearbeitung.BitBSpeichernClick(Sender: TObject); begin if "Button von andere Form" then begin DBModul.CD_SerienT.Insert; end else begin DBModul.CD_SerienT.Edit; end; ... |
|
|
Radioactive
      
Beiträge: 179
Win 98, Win XP Home SP2
D3 Prof, D7 Pers, D2005 Pers
|
Verfasst: Mi 03.08.05 09:29
Ist doch ganz simpel, es geht genauso wie bei Gausi:
Delphi-Quelltext 1: 2:
| if Sender = Form2.Button2 then ... |
_________________ Radioactive
"Wer scrollt, verliert!" Matthias Stein, Informatiklehrer am GG
|
|
Geraldine 
      
Beiträge: 20
WIN XP, WIN 2000, WIN ME
D7
|
Verfasst: Mi 03.08.05 09:39
Ich habe das auch schon versucht, aber er springt nicht in die IF-Abfrage rein. Macht kein Insert, obwohl ich Form2.Button2 angeklickt habe.
Denn wenn ich Form2.Button2 anglicke geht die Form auf indem der Speichern-Button ist.
|
|
Radioactive
      
Beiträge: 179
Win 98, Win XP Home SP2
D3 Prof, D7 Pers, D2005 Pers
|
Verfasst: Mi 03.08.05 09:44
Du musst im OnClickEvent von Form2.Button2 (das war übrigens ein willkürliches Beispiel) natürlich dann den OnClickEvent von BitBSpeichern aufrufen. Das machst du mit
FBearbeitung.BitBSpeichernClick(Form2.Button2); Im markierten Bereich wird dem Button "BitBSpeichern" übergeben, welcher Button "BitBSpeichern" aufgerufen hat.
| Zitat: | | Denn wenn ich Form2.Button2 anglicke geht die Form auf indem der Speichern-Button ist. |
Wenn bei dir dann eine andere Form aufgeht, dann hast du eine Anweisung in "procedure TForm2.Button2Click(Sender: TObject);" stehen, die diese andere Form aufruft. Wenn du das nicht willst, nimm die Anweisung raus.
_________________ Radioactive
"Wer scrollt, verliert!" Matthias Stein, Informatiklehrer am GG
|
|
chrissivo
      
Beiträge: 130
WIN XP, WIN 2000, WIN MCE, WIN 98
D5 Pers
|
Verfasst: Mi 03.08.05 10:21
Ich würde dir vorschlagen einen evtl. einfacheren Weg zu gehen:
Delphi-Quelltext 1: 2:
| if (Sender as TButton).Name = 'speichern' then speichern; |
Oder wenigstens sinngemäß so. Dabei gibst du einfach der "Name"-Eigenschaft deines Buttons einen Eintrag (etwa für den Speichern-Button den Namen "speichern") und schon müsste es meiner Meinung nach egal sein aus welchem Form der Button kommt, da beim "Sender" ja ein eindeutiger Name übergeben wird.
Viele Grüße
Chrissi
_________________ "... was ich noch zu sagen hätte dauert eine Zigarette, und ein letztes Glas im Steh'n..."
|
|