Autor Beitrag
Geraldine
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20

WIN XP, WIN 2000, WIN ME
D7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20

WIN XP, WIN 2000, WIN ME
D7
BeitragVerfasst: 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?


ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 179

Win 98, Win XP Home SP2
D3 Prof, D7 Pers, D2005 Pers
BeitragVerfasst: Mi 03.08.05 09:29 
Ist doch ganz simpel, es geht genauso wie bei Gausi:
ausblenden Delphi-Quelltext
1:
2:
if Sender = Form2.Button2 then
...

_________________
Radioactive
"Wer scrollt, verliert!" Matthias Stein, Informatiklehrer am GG
Geraldine Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20

WIN XP, WIN 2000, WIN ME
D7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 179

Win 98, Win XP Home SP2
D3 Prof, D7 Pers, D2005 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 130

WIN XP, WIN 2000, WIN MCE, WIN 98
D5 Pers
BeitragVerfasst: Mi 03.08.05 10:21 
Ich würde dir vorschlagen einen evtl. einfacheren Weg zu gehen:
ausblenden 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..."