如何在Delphi中精美地生成随机颜色? 我在java中有这个代码,但我没有设法翻译成Delphi。
public Color generateRandomColor(Color mix) {
Random random = new Random();
int red = random.nextInt(256);
int green = random.nextInt(256);
int blue = random.nextInt(256);
// mix the color
if (mix != null) {
red = (red + mix.getRed()) / 2;
green = (green + mix.getGreen()) / 2;
blue = (blue + mix.getBlue()) / 2;
}
Color color = new Color(red, green, blue);
return color;
}
答案 0 :(得分:2)
只需按照您发布的代码作为示例并将其转换为Delphi,这很容易做到
function GenerateRandomColor(const Mix: TColor = clWhite): TColor;
var
Red, Green, Blue: Integer;
begin
Red := Random(256);
Green := Random(256);
Blue := Random(256);
Red := (Red + GetRValue(ColorToRGB(Mix))) div 2;
Green := (Green + GetGValue(ColorToRGB(Mix))) div 2;
Blue := (Blue + GetBValue(ColorToRGB(Mix))) div 2;
Result := RGB(Red, Green, Blue);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Self.Color := GenerateRandomColor;
end;
initialization
Randomize;