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 [D6E] Logikfrage- 6 Buttons 1 externe Prozedur (https://www.delphipraxis.net/84176-%5Bd6e%5D-logikfrage-6-buttons-1-externe-prozedur.html)

SeriousToni 12. Jan 2007 17:24


[D6E] Logikfrage- 6 Buttons 1 externe Prozedur
 
Hallo - tolles Forum!!

Ich habe eine kleine Logikfrage, da ich noch nicht lange VCL-Anwendungen mache, schaff ich das nicht ganz alleine.
Hier das Problem:

Ich habe 6 Buttons im Fenster.
3 oben

3 unten


Es sind aber immer nur entweder die 3 oberen oder die 3 unteren sichtbar. Welche zuerst sichtbar sind, legt am Start ein Random Zufallsgenerator fest.
Beispiel:
die oberen werden ausgeblendet - man kann nur auf einen der 3 unteren klicken - geschieht dies, verschwinden die unteren und die oberen werden sichtbar - das gleiche Spiel immer so weiter..

Wie kann ich es machen, dass nach jeder zweiten Runde, etwas spezielles passiert (z.B. showmessage oder was weis ich ^^). Mit 2 Runden meine ich entweder (je nach Zufallsstart) oben,unten,oben,unten,SPEZIALAKTION,oben,unten,obe n,unten,.... oder halt das ganze beginnend mit unten (je nach Zufallsstart).

Wie gesagt, das Programm funktioniert soweit, nur möchte ich diese SPEZIALAKTION einbauen, weis aber nicht wie ich diese auslösen kann.
Ich habe mir schon überlegt dass nach jedem Buttonklick eine Variable +1 erhält und immer wenn diese Variable dann 4 ist, kommt die Spezialaktion und die Variable wird wieder 0, dann das gleiche immer wieder. Aber ich weis nicht wie ich damit z.B. eine showmessage aktivieren kann. Wo muss ich dann reinschreiben "if variable = 4 then do...."?



Huch.. etwas sehr ausführlich, naja lasst euch nicht verwirren, ich wollte nur dass es auch keine Missverständnisse gibt - falls ihr etwas nicht nachvollziehen könnt, fragt einfach :)
Ich hoffe jemadn kann mir weiterhelfen. :) Denkt dran, ich bin Anfänger :D

Klaus01 12. Jan 2007 17:30

Re: [D6E] Logikfrage- 6 Buttons 1 externe Prozedur
 
Du kannst ja einen Zähler mitlaufen lassen,
wenn Du die Buttons in ihrer Sichtbarkeit änderst (oben oder unten)
wird der Zähler um eins erhöht.
Ist der Zähler auf 4 angewachsen kannst Du deine
Spezialaktion starten.

Ups, wie peinlich - hätte ich doch etwas genauer lesen sollen.

Grüße
Klaus

mkinzler 12. Jan 2007 17:32

Re: [D6E] Logikfrage- 6 Buttons 1 externe Prozedur
 
Zitat:

Wo muss ich dann reinschreiben "if variable = 4 then do...."?
In der Eventmethode für den Button-Klick.

NormanNG 12. Jan 2007 17:35

Re: [D6E] Logikfrage- 6 Buttons 1 externe Prozedur
 
Hi,

Das Mitzählen und ggf. Reagieren auf den Inhalt von [Valiable] würde ich in eine eigene Prozedur schreiben und diese dann mit jedem Umschalten der Buttons aufrufen.

SeriousToni 12. Jan 2007 17:50

Re: [D6E] Logikfrage- 6 Buttons 1 externe Prozedur
 
Ah - sehr gute Antworten. :thumb: Und das so schnell! Ihr freut euch auch mal, wenn jemand was einfaches hier fragt, stimmts? :)

Also ich werde eine extra Prozedur machen, die den Wert der Variablen bei jedem Knopfdruck prüft. Gute Idee! :spin2: Das sollte funktionieren! Danke ihr drei!! Danke!

SeriousToni 12. Jan 2007 18:21

Re: [D6E] Logikfrage- 6 Buttons 1 externe Prozedur
 
Also ich hab jetzt über dem "end."

Code:
procedure Spezial(spez:integer);
...
geschrieben.

Wenn ich die Prozedur aber bei dem Buttonclick aufrufen möchte (
Code:
Spezial;
) bricht er beim compilieren mit "undefinierter Bezeichner" ab!
In der Delphi-Hilfe habe ich nichts brauchbares finden können.. außer das man Prozeduren mit deren Namen aufrufen kann.

Tja, zu früh gefreut :mrgreen:

Gruber_Hans_12345 12. Jan 2007 18:29

Re: [D6E] Logikfrage- 6 Buttons 1 externe Prozedur
 
entweder die prozedure nach VOR setzen (also vor deinem aufruf)

oder besser die prozedure in die Klasse der Form einbauen also :

Delphi-Quellcode:
procedure TForm1.Spezial(spez:integer);
begin
...
end;
und auch oben in die public oder protected sektion der klassendefinition rein
Delphi-Quellcode:
protected
   procedure Spezial(spez:integer);
   ....
public

SeriousToni 12. Jan 2007 18:43

Re: [D6E] Logikfrage- 6 Buttons 1 externe Prozedur
 
Hm danke für deinen Tipp - aber das haut bei mir nicht so richtig hin - der kommt mit den Variablen nicht so richtig klar (undefinierter Bezeichner).

Gibt es vielleicht ein Tutorial zu Prozeduren und deren Variablen in VCL Anwendungen? Ich blicke da grade selber nicht mehr so richtig durch - tut mir leid! :cry:

Klaus01 13. Jan 2007 10:43

Re: [D6E] Logikfrage- 6 Buttons 1 externe Prozedur
 
Guten Morgen,

recht gute Tutorials findest Du hier -> http://www.dsdt.info/tutorials/

Vielleicht zeigst Du uns einmal den Interface Teil Deiner Unit
und auch wie Du die Prozedur/Methode im Implemantation Teil
der Unit erstellt hast.

Grüße
Klaus


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