Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

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)

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 20:12 Uhr.
Seite 4 von 4   « Erste     234   

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