Hallo porter10,
ich nehme an, dass an deinem Code nicht viel geändert werden darf, also habe ich mich darauf beschränkt die Mängel zu beheben, die ich erkennen konnte. Vielleicht schaut ja noch jemand drüber. Getestet habe ich nicht. Wenn dir etwas spanisch vorkommt können wir drüber reden.
Delphi-Quellcode:
procedure TPCX.GetMemory;
var
i, l: integer;
memSize: integer;
p: PRGB_TYPE;
ini: TiniFile;
begin
ini := TIniFile.Create(mainform.configpath + '\Einstellungen.ini');
for i := 0 to PXD_Descriptor.NumPictures - 1 do begin
memSize := SizeOf(TPcx_Data) * PXD_Descriptor.NumData[i];
PXD_Descriptor.DataPtr[i] := AllocMem(MemSize);
if PXD_Descriptor.AnzColors[i] >= 0 then begin
MemSize := SizeOf(TRGB_TYPE) * PXD_Descriptor.AnzColors[i];
p := AllocMem(MemSize);
PXD_Descriptor.Palette[i] := p;
for l := 0 to PXD_Descriptor.AnzColors[i] - 1 do begin
get_palette(ini, p, l);
Inc(p);
end;
end;
end;
Ini.Free;
end;
procedure TPCX.get_palette(ini: TIniFile; p: PRGB_TYPE; l: integer);
var
test: string;
testcolor: TColor;
begin
ReglerRGB := ini.Readstring('ReglerAuswahl', '1', ''); // global var?
ReglerReso := ini.Readstring('ReglerAuswahl', '2', ''); // global var?
test := ini.Readstring(ReglerRGB, inttostr(l), '');
testcolor := stringtoColor(test);
p^.rgbBlue := colortorgb(testcolor);
p^.rgbGreen := colortorgb(testcolor);
p^.rgbRed := colortorgb(testcolor);
end;
Grüße vom marabu