Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Buttons abfragen (https://www.delphipraxis.net/24609-buttons-abfragen.html)

Schnurballo 23. Jun 2004 15:14


Buttons abfragen
 
hallo,
bin noch ein ziemlicher anfänger was delphi angeht muss aber für informatik was programmieren.
ich möchte das wenn der n´benutzer auf einen button drückt in einer procedure in einem anderen knopf erkannt wird das der knopf gedrückt wurde.
hoffe jemand kann mir helfen.

Nicodius 23. Jun 2004 15:16

Re: Buttons abfragen
 
du rufst einfach beim draufdrücken die andere procedure auf? :lol:

Interceptor 23. Jun 2004 15:24

Re: Buttons abfragen
 
Angenommen du hast 2 buttons auf deiner Form.

Wenn du jetzt beim Klick auf Button1 die Funktion von Button2 aufrufen möchtest, tust du das folgendermaßen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  button2.Click;
end;
Jetzt wird die Procedure aufgerufen, die du unter Button2 festgelegt hast.

MFG, Interceptor

S2B 23. Jun 2004 15:27

Re: Buttons abfragen
 
Oder du weist dem 2. Button die procedure des ersten Buttons im OI zu! :wink:

DP-Maintenance 23. Jun 2004 15:29

DP-Maintenance
 
Dieses Thema wurde von "sakura" von "Neuen Beitrag zur Code-Library hinzufügen" nach "VCL-Komponenten und Controls" verschoben.

Schnurballo 23. Jun 2004 15:35

Re: Buttons abfragen
 
danke schonmal
trotzdem noch ne frage ich habe 4 buttons und einen start button wenn ich start drücke leuchtet eine farbe auf(beispiel) und jetzt soll man den knopf drücken der der farbe entspricht, wenn man den richtigen drückt soll die procedure weiterlaufen sonst nicht.
gruß schnurballo

Nicodius 23. Jun 2004 15:41

Re: Buttons abfragen
 
mach das mit einer boolischen variable!

Schnurballo 23. Jun 2004 15:43

Re: Buttons abfragen
 
Zitat:

Zitat von Nicodius
mach das mit einer boolischen variable!

was ist denn das? hab doch gesagt bin voll der anfänger.

Ultimator 23. Jun 2004 15:46

Re: Buttons abfragen
 
Eine boolesche Variable kann nur true oder false (wahr oder falsch :wink: ) sein. Du köntest es also so machen:
Delphi-Quellcode:
 if Farbe=clgelb then booleschevariable:=true
else booleschevariable:=false;
OK, sinnloses Beispiel, aber zur Verdeutlichung müsste es doch beitragen :lol:

Nicodius 23. Jun 2004 15:48

Re: Buttons abfragen
 
aso

das ist ein typ

Delphi-Quellcode:
var wert : boolean;

//ins form doppelklicken

wert := false

// in die einzelnen Onclicks - 
// hier bs für den Gelb button
  If Label1.caption = 'gelb' then
  else
    Wert := false

  If Wert = false then Showmessage('Verloren');
end;

S2B 23. Jun 2004 15:49

Re: Buttons abfragen
 
Aber du weißt, was eine Variable ist, oder?
Also eine Boolische Variable ist eine Variable, der man sozusagen "ja" oder "nein" zuweisen kann!
Delphi-Quellcode:
var b: Bool;
begin
  b:=true; //"ja"
  b:=false; //"nein"
end;

Schnurballo 23. Jun 2004 15:52

Re: Buttons abfragen
 
ok neuer versuch.
ich weise jeder farbe einen wert zu(gelb=0,rot=1,...)
wenn jetzt (zufällig ermittelt) eine farbe ausgewählt wird dann soll der benutzer den entsprechenden knopf drücke und dann soll diese farbe erneut angezeigt werden.
danach soll wieder eine zufällige zahl ermittelt und die soll dann nach der ersten ausgegeben werden.
(erst rot , dann roten knopf, dann rot und neue farbe, dann roten knopf, neue farbe knopf ,...)
will das spiel simon programmieren falls das jemand kennt.
bitte helft mir muss das bis freitag fertig haben
gruß
:?

Nicodius 23. Jun 2004 15:53

Re: Buttons abfragen
 
ne frage soll ich dir das programm schnell programmeiren oder kannst du das selber?

:roll:

nein aber wenn du willst.. ich hab ein bisschen zeit :angle2:

Schnurballo 23. Jun 2004 15:55

Re: Buttons abfragen
 
ja bitte das wär super nett ich krieg das einfach nich hin.
wenn du das echt machen würdest wär echt genial.
tausend dank im voraus.
gruß

S2B 23. Jun 2004 15:56

Re: Buttons abfragen
 
Dann lernt er aber nichts und das ist nicht der Sinn der Sache! :roll:

Ultimator 23. Jun 2004 15:56

Re: Buttons abfragen
 
Programmierwettbewerb: Wer programmiert das beste Simon :lol:

fantotal 23. Jun 2004 16:01

Re: Buttons abfragen
 
Zitat:

Zitat von S2B
Dann lernt er aber nichts und das ist nicht der Sinn der Sache! :roll:

[Off-Topic]
Und das sagt jemand in meinem Alter. Ich glaubs nicht! ;)
[/Off-Topic]

mfg
fantotal

Schnurballo 23. Jun 2004 16:02

Re: Buttons abfragen
 
Zitat:

Zitat von S2B
Dann lernt er aber nichts und das ist nicht der Sinn der Sache! :roll:

es läuft ja alles bis auf das button abfragen, es ist echt dringend außerdem lern ich ja so wie es geht.

Nikolas 23. Jun 2004 16:05

Re: Buttons abfragen
 
Eine bool'sche Variable (boolean) ist eine Art Schalter. Entweder sie ist true oder false, mehr Auswahl gibt's da nicht. Mal angenommen, die procedure die weiter ausgeführt wird ist ne schleife, könntest du sowas schreiben
Delphi-Quellcode:
var
boole: boolean;


while Boole {= True} do // Klammer brauchts eigentlich nicht
begin
neueFarbeAuswählen;
application.processmessages; // sorgt dafür, dass überprüft wird, ob die variable geändert wurde.
end;
und dann in wenn die falsche Farbe geklickt wurde:
Delphi-Quellcode:
boole:=false;
€dit: :oops: Tja, man sollte nicht noch ein paar Sachen nebenher machen und/oder vorm posten mal wieder aktualisieren :wall:
Da bin ich ja etwas zu spät :oops:

S2B 23. Jun 2004 16:07

Re: Buttons abfragen
 
Zitat:

Zitat von fantotal
[Off-Topic]
Und das sagt jemand in meinem Alter. Ich glaubs nicht! ;)
[/Off-Topic]

Was soll das denn heißen? :gruebel:

Schnurballo 23. Jun 2004 16:32

Re: Buttons abfragen
 
Zitat:

Zitat von Nicodius
ne frage soll ich dir das programm schnell programmeiren oder kannst du das selber?

:roll:

nein aber wenn du willst.. ich hab ein bisschen zeit :angle2:

war das dein ernst oder nur ein spaß?

alcaeus 23. Jun 2004 16:36

Re: Buttons abfragen
 
Dazu kann ich nur sagen: in den AGB steht, dass wir keine Hausaufgaben machen.

Also, zu deinem Problem:
Der Benutzer hat z.B. n Buttons. Er klickt einen an, und sobald er auf einen speziellen, zusätzlichen Button klickt, soll herausgefunden werden, welchen Button er zuerst angeklickt hat?

Greetz
alcaeus

Schnurballo 23. Jun 2004 16:38

Re: Buttons abfragen
 
Zitat:

Zitat von alcaeus
Dazu kann ich nur sagen: in den AGB steht, dass wir keine Hausaufgaben machen.

Also, zu deinem Problem:
Der Benutzer hat z.B. n Buttons. Er klickt einen an, und sobald er auf einen speziellen, zusätzlichen Button klickt, soll herausgefunden werden, welchen Button er zuerst angeklickt hat?

Greetz
alcaeus

so ähnlich soll halt so sein wie beim spiel simon

Nikolas 23. Jun 2004 16:43

Re: Buttons abfragen
 
Ich kenn das Spiel nicht und die Beschreibung
Zitat:

so ähnlich soll halt so sein wie beim spiel simon
ist nicht ganz exakt. Probier's doch mal mit den Hilfen, die du hier bekommen hast und frag dann noch mal, wenn du gar nicht mehr weiterweisst. :thuimb:

Schnurballo 23. Jun 2004 16:45

Re: Buttons abfragen
 
Zitat:

Zitat von Toxman
Ich kenn das Spiel nicht und die Beschreibung
Zitat:

so ähnlich soll halt so sein wie beim spiel simon
ist nicht ganz exakt. Probier's doch mal mit den Hilfen, die du hier bekommen hast und frag dann noch mal, wenn du gar nicht mehr weiterweisst. :thuimb:

habs doch davor beschrieben guck daoch mal junge

alcaeus 23. Jun 2004 16:49

Re: Buttons abfragen
 
Ich kenn simon nicht. Müssen es unbedingt Buttons sein? Anderenfalls kann ich dir die Verwendung einer RadioGroup anbieten. Darin kannst du eine beliebige Anzahl von Radiobuttons definieren, und mit der Eigenschaft ItemIndex das gewählte Element abfragen

Greetz
alcaeus

Schnurballo 23. Jun 2004 16:50

Re: Buttons abfragen
 
danke weis zwar nicht was eine radio group ist aber es müssen 4 knöpfe sein die der benutzer anklcken kann

Schnurballo 23. Jun 2004 16:54

Re: Buttons abfragen
 
außerdem will ich ja nicht das ganze programm ich will nur wissen wie man buttons abfragt.
weil mit onclick und onmousedown gings bei mir nicht
gruß

Nikolas 23. Jun 2004 16:58

Re: Buttons abfragen
 
Andere Idee:
- Eine Liste 1-> rot, ...
- dann random eine Zahl/Farbe aussuchen
- und im onclick der 4 Buttons den Tag mit der aktuellen Zahl/Farbe vergleichen.

Das wär recht einfach und ohne großen Aufwand zu bauen.

Schnurballo 23. Jun 2004 17:00

Re: Buttons abfragen
 
mit onclick hab ich schon probiert alo entweder ich machs falsch oder es geht nicht kannst du mir mal schreiben wie du das machen würdest?
gruß

Nikolas 23. Jun 2004 17:04

Re: Buttons abfragen
 
Zitat:

oder es geht nicht
Mit Delphi geht (fast) alles :mrgreen:

Also: Zeig mal dein Onclick. Wie schon gesagt: Hier kriegt man Hilfen, aber keine fertigen Sachen :mrgreen: Wär ja auch langweilig und könnte peinlich werden. Dein Lehrer sieht dein tolles Programm, du darfst es mal der Klasse zeigen und dann fragt er dich wie du das so toll gemacht hast. Und dann stehst du vor der Klasse und wirst rot oder bleich, je nach persönlicher Vorliebe :zwinker:

Schnurballo 23. Jun 2004 17:07

Re: Buttons abfragen
 
also:
procedure TForm1.Button2Click(Sender: TObject);
begin
i:=1;
end;
müsste doch gehn

alcaeus 23. Jun 2004 17:27

Re: Buttons abfragen
 
Also, in der OnClick der 4 Buttons:
Delphi-Quellcode:
procedure ButtonClick(Sender: ....);
begin
  SpezButton.Tag := Sender.Tag;
end;
Die Tags der Buttons musst du natürlich unterschiedlich setzen. Außerdem bekommen alle 4 Buttons dieselbe OnClick-Routine

Dann der Spezialbutton:
Delphi-Quellcode:
procedure SpezButtonClick(Sender: ....);
begin
  case SpezButton.Tag of
    0: //So dann alles machen
  end;
  SpezButton.Tag := -1;
end;
Das Tag des Spezialbuttons wird im Objektinspektor mit -1 initialisiert, so nützt ein Klick auf diesen Button nichts, außer wenn ein anderer Button angeklickt wurde.

Greetz
alcaeus

Zortiander 23. Jun 2004 17:27

Re: Buttons abfragen
 
Grmbl Grmpf. Hier:

Delphi-Quellcode:
implementation
var
  {variable der wir die Farbe übergeben}
  Colour: Byte;

Const
  {Die Werte die die obige Farbe annehmen kann}
  ColRed = 0;
  ColBlue = 1;
  ColYellow = 2;

{Die folgenden Prozeduren sind die OnClick Ereignisse Deiner Buttons. Der Label dient nur zur Farbausgabe}

Procedure InitCol;
Begin
  {Zufällige Farbe zuweisen. Random liefert einen Wert zwischen 0 und der angegebenen Zahl.}
  Colour:= Random(2) + 1;
  Case Colour of
    ColRed: ColLbl.Caption:= 'Rot';
    ...
  End;
End;

Procedure StartBtn.Click;
Begin
  InitCol;
End;

Procedure RedBtn.Click;
Begin
  If Colour = ColRed then
  Begin
    {Richtig geraten. Erstmal eine Box mit nem schönen Text ausgeben.}
    MessageBox(0, 'Sehr gut, Du hast gewonnen.', 'Super!', mb_ok+mb_taskmodal);
    InitCol;
  End Else
  Begin
    {Falsch geraten}
    MessageBox(0, 'Falsch geraten, Du hast verloren.', 'Schlech!', mb_ok+mb_taskmodal);
  End;
End;
Nun gut, und damit Du etwas lernst, hier noch einige Erklärungen:

Du hast also die Procedure
Delphi-Quellcode:
InitCol
, welche eine zufällige Farbe ermittelt und diese dann in text umwandelt der in einem Label ausgegeben wird. Der Benutzer weis also was er drücken muss.

Dann klickt der auf den Knopf auf dem steht "Rot" (z.B.). Im OnClick wird nun die Farbe überprüft (das ist die IF-THEN-Anweisung), und je nach Richtigkeit eine Meldung ausgegeben. Ausserdem wird, wenn es richtig war, eine neue Farbe ausgegeben.

Zur Procedure MessageBox. Habe sie gearde nicht im Kopf, aber die 0 ist glaube ich, weil Du keinen Besitzer angibst, dann kommt ein Text und ein Titel für das Fenster (oder umgekehrt), dann kommen ein paar Anweisungen zur Formatierung:
mb_ok: Es wird nur ein OK-Knopf gezeigt
mb_taskmodal: Das programm steht so lange, bis der Benutzer auf OK gedrückt hat.

So, noch Fragen?

Schnurballo 23. Jun 2004 17:38

Re: Buttons abfragen
 
danke das is schonmal super kann ich das auch irgendwie machen das er die farbe speichert und dann die gespeicherte und eine neue farbe ausgibt und dann jedesmal wenns richtig ist eins dazu(simonprinzip)?
gruß

Nikolas 23. Jun 2004 17:39

Re: Buttons abfragen
 
Zitat:

So, noch Fragen?
Ja, ich: Was bringt's für Schnurballo, dass du ihm jetzt ohne, dass wir ein Stück Code von ihm bekommen haben, eine Lösung zeigst? Es ist doch nicht Sinn und Zweck der Übung hier, dass er nachher ein funktionierendes Programm hat, das er aber nicht neu schreiben könnte, wenn er nur ein leeres Form hat.

Edit: Hab grad dein letzes post gesehen.
Klar geht's. :mrgreen:

Nimm dir 'n array und schreib einfach die Farben hintereinander rein.

Kernel32.DLL 23. Jun 2004 19:28

Re: Buttons abfragen
 
@Schnurballo:

Die Vögel in meinem Vorgarten haben mir grad' zugezwitschert, dass Delphi sogar eine Online-Hilfe hat. Da gibbet sogar ein Anfänger-Tut.
Sry, aber ein gewisses Basiswissen sollte man vielleicht schon haben.

BTW: Wieso verlangt dein Lehrer eigentlich von dir Sachen, von denen du anscheinend noch nie etwas gehört hast?

Zortiander 24. Jun 2004 05:42

Re: Buttons abfragen
 
So Schnurballo.

Aller Anfang ist schwer, mach Dir nix draus. Wenn du die Farbe speichern willst, dann erstelle doch einfach eine Liste, in der Du Zeile um Zeile die Farben eingibst, die Du schon simuliert hast. Das geht ganz einfach und sieht gut aus.

Grüße
Zortiander


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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-2025 by Thomas Breitkreuz