Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Zufallsfarbe aus gewissen Farbbereichen


Waldkauz - So 28.06.09 14:22
Titel: Zufallsfarbe aus gewissen Farbbereichen
Hallo

Ich möchte einem Shape eine Zufallsfarbe geben, allerdings nur aus den Farben rot, gelb, blau, grün, weiß, schwarz

wenn ich jetzt nehme rgb(random(256),random(256),random(256);, dann nimmt er ja auch Farben wie hellrot, dunkelgelb, hellblau etc., ich möchte aber nur die reinen Farben


Tropby - So 28.06.09 14:27

Wenn du nur diese Farben hast dann könntest du das ja so machen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
case Random(6) + 1 of
1: farbe := clred;
2: farbe := clyellow;
3: farbe := clblue;
4: farbe := clgreen;
5: farbe := clwhite;
6: farbe := clblack;
end;


Waldkauz - So 28.06.09 14:30

Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Genau das ist mir gerade eingefallen ^^ - danke


jaenicke - So 28.06.09 14:43

Einfacher:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
const
  MyColors: array[0..4of TColor = (clRed, clGreen, clBlue, clYellow, clWhite);
begin
  CurrentColor := MyColors[Random(Length(MyColors))];
  ...
end;


R4id - So 28.06.09 18:36


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function RandomColor(const Colors: array of TColor): TColor;
var 
  I: Integer;
begin
  Result := clBlack;

  if Length(Colors) <> 0 then
    Result := Colors[Random(High(Colors))];
end;


Wäre es nicht so besser?


Boldar - So 28.06.09 20:55

Nein, denn du solltest nicht einfach clblack zurückgeben. Dafür Sind Schließlich exceptions da.
Aber ansonsten wohl ganz ok.