var
pal: PLogPalette;
hpal: HPALETTE; i: Integer;
begin
pal := nil;
try
GetMem(pal, sizeof(TLogPalette) + sizeof(TPaletteEntry) * 255);//?
pal.palVersion := $300; //?
pal.palNumEntries := 256; //?
for i := 0 to 255 do
begin
pal.palPalEntry[i].peRed := Random(255); //?
pal.palPalEntry[i].peGreen := Random(255);
pal.palPalEntry[i].peBlue := Random(255);
end;
hpal := CreatePalette(pal^); //?
if hpal <> 0 then Bitmap.Palette := hpal;
finally
FreeMem(pal);
end;
end;//代码结束
这代码我试了下好像是搞乱窗体界面色彩的我是个新手想知道注明//?的部分是怎么理解的。
特别是(pal^) 这里面的 ^ 这个符号是什么意思在DELPHI中
pal: PLogPalette;
hpal: HPALETTE; i: Integer;
begin
pal := nil;
try
GetMem(pal, sizeof(TLogPalette) + sizeof(TPaletteEntry) * 255);//?
pal.palVersion := $300; //?
pal.palNumEntries := 256; //?
for i := 0 to 255 do
begin
pal.palPalEntry[i].peRed := Random(255); //?
pal.palPalEntry[i].peGreen := Random(255);
pal.palPalEntry[i].peBlue := Random(255);
end;
hpal := CreatePalette(pal^); //?
if hpal <> 0 then Bitmap.Palette := hpal;
finally
FreeMem(pal);
end;
end;//代码结束
这代码我试了下好像是搞乱窗体界面色彩的我是个新手想知道注明//?的部分是怎么理解的。
特别是(pal^) 这里面的 ^ 这个符号是什么意思在DELPHI中
pal.palVersion := $300; //调色板的版本,一般都是这个数(16进值)
pal.palNumEntries := 256; //调色板是256色
pal.palPalEntry[i].peRed := Random(255); //随机数颜色
hpal := CreatePalette(pal^); //创建调色板
符号 ^ 有两种用途,当它出现在类型标识符之前,如 ^typeName 表示一个类型,该类型表示指向typeName类型变量的指针。
当它出现在指针变量之后,如pointer^ 该符号对指针解除参照,
也就是说,返回存储在内存地址(该地址保存在指针中)的值。