Entwickler-Ecke
Sonstiges (Delphi) - Zufällige Farbwahl
Massa - Mi 16.01.08 20:08
Titel: Zufällige Farbwahl
Hallo zusammen.
Wieder einmal habe ich ein kleines Problem.
Ich habe mir eine kleine Landschaft gezeichnet und möchte nun ein Paar Ballons "steigen lasse". Dies geschieht durch Klick auf ein Button. Meine Ballons haben jetzt aber nur eine Farbe. Was ich aber möchte ist, dass die Farbe zufällig ausgewählt wird. Einzige Bedingung ist das es nur drei Farben sein sollen (rot, gelb und blau). Ich schätze mal, dass man es mit random machen muss nur ich weiß nicht genau wie.
Hier mal der Anfang:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.zeichneBallon (xpos,ypos: integer); begin with ImBild.Canvas do begin brush.color:=clRed; ellipse(xpos,ypos,xpos+10,ypos+15);
end; end; |
Gruß Massa
Gausi - Mi 16.01.08 20:13
Delphi-Quelltext
1: 2: 3: 4: 5:
| case random(3) of 0: brush.color := clRed; 1: brush.color := clBlue; else brush.color := clGreen; end; |
Yogu - Mi 16.01.08 20:14
Hallo,
zuerst solltest du deine Farben definieren. Das machst du mit Konstanten, und zwar so:
Delphi-Quelltext
1: 2: 3:
| const Colors = array[0..2] of TColor (clRed, clBlue, clYellow); ColorCount = 3; |
In deiner Zeichnen-Methode greifst du jetzt, wie du richtig erkannt hast, mit
Random auf eine Farbe zu. Vorher musst du aber noch den Zufalls-Generator initialisieren:
Delphi-Quelltext
1: 2:
| Randomize; Brush.Color := Colors[Random(ColorCount)]; |
Wenn du jetzt weitere Farben hinzufügen willst, kannst du einfach die Konstantenwerte ändern. Das ist der Vorteil gegenüber dem Code von
Gausi.
Grüße,
Yogu
Massa - Mi 16.01.08 20:17
Hey vielen dank.
Ich hätte ja nicht so schnell mit einer Antwort gerechnet, aber DANKE.
Es funktioniert auch!
Und auch danke an Yogu.
Gruß Massa
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!