procedure TForm1.Button1Click(Sender: TObject);
var
pal: PLogPalette;
hpal: HPALETTE;
i: Integer;
begin
pal := nil;
Randomize;
try //首先必须分配内存
GetMem(pal, sizeof(TLogPalette) + sizeof(TPaletteEntry) * 24);
pal.palVersion := $300; //颜色版本号
pal.palNumEntries := 24; //颜色数
for i := 0 to 24 do //各个颜色号对应的颜色的RGB值
begin
pal.palPalEntry.peRed := 255;
pal.palPalEntry.peGreen := Random(229);
pal.palPalEntry.peBlue := Random(229);
end;
hpal := CreatePalette(pal^);
if hpal <> 0 then
Image1.Picture.Bitmap.Palette := hpal;
{设置新的颜色到DIB调色板}
finally
FreeMem(pal);
end;
end;