Entwickler-Ecke
Sonstiges (Delphi) - Roulette: Buttons ueber Bilder (Zahlen) legen
Bockscar - Fr 21.10.05 11:09
Titel: Roulette: Buttons ueber Bilder (Zahlen) legen
Hallo.
Ich bin dabei ein Roulettespiel zu programmieren und moechte folgendes umsetzen:
Man hat den Tisch (Da wo man normalerweise seine Jetons drauf legt). Hier soll man aber z.b auf 36 druecken und 36 wird als wette gespeichert ... (1 euro auf 36)
ich habe den tisch eben nur als ganzes und moechte wissen wie ich einzelne zahlen als "durchsichtige" knoepfe darstellen kann. Also die Grafik soll natuerlich die oberfaleche sein und klickbar sein.
Ich hoffe man versteht das und jemand kann mir helfen.
vielen dank!
Blackheart666 - Fr 21.10.05 11:20
Lege Einfach Label auf dein Image stell Transparent auf True dann kannst Du die Klickmethode vom Label Nutzen.
Gausi - Fr 21.10.05 11:20
Mir fallen auf Anhieb zwei Möglichkeiten ein:
- Auf jedes Feld ein Label mit der entsprechenden Zahl setzen und im OnClick jedes Labels dei gewünschte Funktion setzen
- Anhand der Mauskoordinaten die Zahl bestimmen, auf die geklickt wurde. Dazu das Feld in ein Raster aufteilen und dann eine verschachtelte Case-Anweisung:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| case x of 1..30:begin case y of 1..30: showmessage('1 Euro auf 1 gesetzt'); 31..60: showmessage('1 Euro auf 2 gesetzt'); end; end; 31..60: begin case y of 1..30: showmessage('1 Euro auf 12 gesetzt'); 31..60: showmessage('1 Euro auf 22 gesetzt'); end; end; end; |
Bockscar - Fr 21.10.05 11:29
danke, ich wberde als erstes die methode mit dem layer probieren!! danke danke!
DarkHunter - Fr 21.10.05 11:51
Gausi hat folgendes geschrieben: |
Mir fallen auf Anhieb zwei Möglichkeiten ein:
- Auf jedes Feld ein Label mit der entsprechenden Zahl setzen und im OnClick jedes Labels dei gewünschte Funktion setzen
- Anhand der Mauskoordinaten die Zahl bestimmen, auf die geklickt wurde. Dazu das Feld in ein Raster aufteilen und dann eine verschachtelte Case-Anweisung:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| case x of 1..30:begin case y of 1..30: showmessage('1 Euro auf 1 gesetzt'); 31..60: showmessage('1 Euro auf 2 gesetzt'); end; end; 31..60: begin case y of 1..30: showmessage('1 Euro auf 12 gesetzt'); 31..60: showmessage('1 Euro auf 22 gesetzt'); end; end; end; |
|
Ich würde es auch mit diesem Raster machen, allerdings scheint mir eine verschachtelte Case-Abfrage sehr kompliziert.
Sowas lässt sich auch sehr gut mathematische berechnen, ich hatte das mal irgendwo. Ich such den Code nocheinmal raus.
EDIT:
Hier ist er:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure getposition; var curposx,curposy:intger; koordx,koordy:integer x,y:absolute position im Raster begin curposx := mouse.CursorPos.X - form.left - label.left; curposy := mouse.CursorPos.Y -form.top - label.top; koordx := curposx div breite; x := koordx * breite; koordy := curposy div hoehe; y := koordy * hoehe; end; |
Gausi - Fr 21.10.05 12:09
Stimmt, das kann man auch berechnen. Ich hatte nur meine Bildschirmtastatur im Kopf, und da habe ich das mit Case gemacht, weil die einzelnen Zeilen untereinander verschoben waren (wie auf einer Hardwaretastatur auch), und verschiedene Tasten verschieden groß waren. Da hatte ich dann kein Rechteck-Raster, sondern etwsa anderes, und da erschien mir der Weg mit Case einfacher.
Bei einem richtigen Raster wie hier sollte man den Weg übers Rechnen vorziehen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!