Hallo,
Zitat von
Martin K:
1. Frage:
Wie bekomme ich aus TLogPalette ein array[0..255] of TColor ?
In einer TLogPalette ist ja ein Array of TPaletteEntry drin. Mit einer Schleife kannst Du Dir da ein Array basteln:
Delphi-Quellcode:
var
Farben:
array[0..255]
of TColor;
Palette: TLogPalette;
begin
for C := 0
to 255
do
Farben[C] :=
RGB(Palette.palPalEntry[C].peRed, Palette.palPalEntry[C].peGreen, Palette.palPalEntry[C].peBlue);
Zitat von
Martin K:
2. Frage:
In dieser Zeile wird also die Palette geladen:
Delphi-Quellcode:
lpPal^.palNumEntries :=
GetSystemPaletteEntries(
dc,
0,
256,
lpPal^.palPalEntry);
Es wird allerdings die Systempalette geladen.
Wie kann ich hier die Palette aus einem Stream (Datei) laden?
GetPaletteEntries... und dann?
Du musst mit
CreatePalette eine Palette erstellen, eine TLogPalette mit den Werten füllen, die Du aus dem Stream geladen hast (das Format kennst Du hoffentlich), dann mit
SetPaletteEntries die Palette füllen und schließlich mit
SelectPalette die Palette in einen
DC laden.
Gruß
xaromz