![]() |
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. |
Re: Buttons abfragen
du rufst einfach beim draufdrücken die andere procedure auf? :lol:
|
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:
Jetzt wird die Procedure aufgerufen, die du unter Button2 festgelegt hast.
procedure TForm1.Button1Click(Sender: TObject);
begin button2.Click; end; MFG, Interceptor |
Re: Buttons abfragen
Oder du weist dem 2. Button die procedure des ersten Buttons im OI zu! :wink:
|
DP-Maintenance
Dieses Thema wurde von "sakura" von "Neuen Beitrag zur Code-Library hinzufügen" nach "VCL-Komponenten und Controls" verschoben.
|
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 |
Re: Buttons abfragen
mach das mit einer boolischen variable!
|
Re: Buttons abfragen
Zitat:
|
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:
OK, sinnloses Beispiel, aber zur Verdeutlichung müsste es doch beitragen :lol:
if Farbe=clgelb then booleschevariable:=true
else booleschevariable:=false; |
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; |
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; |
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ß :? |
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: |
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ß |
Re: Buttons abfragen
Dann lernt er aber nichts und das ist nicht der Sinn der Sache! :roll:
|
Re: Buttons abfragen
Programmierwettbewerb: Wer programmiert das beste Simon :lol:
|
Re: Buttons abfragen
Zitat:
Und das sagt jemand in meinem Alter. Ich glaubs nicht! ;) [/Off-Topic] mfg fantotal |
Re: Buttons abfragen
Zitat:
|
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:
und dann in wenn die falsche Farbe geklickt wurde:
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;
Delphi-Quellcode:
€dit: :oops: Tja, man sollte nicht noch ein paar Sachen nebenher machen und/oder vorm posten mal wieder aktualisieren :wall:
boole:=false;
Da bin ich ja etwas zu spät :oops: |
Re: Buttons abfragen
Zitat:
|
Re: Buttons abfragen
Zitat:
|
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 |
Re: Buttons abfragen
Zitat:
|
Re: Buttons abfragen
Ich kenn das Spiel nicht und die Beschreibung
Zitat:
|
Re: Buttons abfragen
Zitat:
|
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 |
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
|
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ß |
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. |
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ß |
Re: Buttons abfragen
Zitat:
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: |
Re: Buttons abfragen
also:
procedure TForm1.Button2Click(Sender: TObject); begin i:=1; end; müsste doch gehn |
Re: Buttons abfragen
Also, in der OnClick der 4 Buttons:
Delphi-Quellcode:
Die Tags der Buttons musst du natürlich unterschiedlich setzen. Außerdem bekommen alle 4 Buttons dieselbe OnClick-Routine
procedure ButtonClick(Sender: ....);
begin SpezButton.Tag := Sender.Tag; end; Dann der Spezialbutton:
Delphi-Quellcode:
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.
procedure SpezButtonClick(Sender: ....);
begin case SpezButton.Tag of 0: //So dann alles machen end; SpezButton.Tag := -1; end; Greetz alcaeus |
Re: Buttons abfragen
Grmbl Grmpf. Hier:
Delphi-Quellcode:
Nun gut, und damit Du etwas lernst, hier noch einige Erklärungen:
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; Du hast also die Procedure
Delphi-Quellcode:
, 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.
InitCol
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? |
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ß |
Re: Buttons abfragen
Zitat:
Edit: Hab grad dein letzes post gesehen. Klar geht's. :mrgreen: Nimm dir 'n array und schreib einfach die Farben hintereinander rein. |
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? |
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