Irgendwie bekomme ich das Laden der Palette nicht hin.
Verwende jetzt diesen Code:
Palette^ ist ein Zeiger auf ein array of TColor
Delphi-Quellcode:
procedure LoadPalette;
var i: Byte; Stream: TStream; lpPal: PLogPalette; hPal: HPalette;
begin
GetMem(lpPal,SizeOf(TLogPalette)+High(Palette^)*SizeOf(TPaletteEntry));
lpPal^.palVersion:=$300;
hPal:=CreatePalette(lpPal^);
Stream:=TFileStream.Create('
C:\test.dat', fmCreate
or fmOpenWrite);
Stream.
Read(lpPal^,Length(Palette^)*SizeOf(TPaletteEntry));
Stream.Free;
for i:=0
to High(Palette^)
do
begin
Palette^[i]:=
RGB(lpPal^.palPalEntry[i].peRed,lpPal^.palPalEntry[i].peGreen,lpPal^.palPalEntry[i].peBlue);
end;
FreeMem(lpPal,SizeOf(TLogPalette)+High(Palette^)*SizeOf(TPaletteEntry));
end;
Nach dem Laden ist die Datei merkwürdigerweise immmer leer (0 Byte groß), obwohl ich sie doch nur lese...
Ich verstehe es nicht...
Wäre für jede Hilfe dankbar!