Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: dynamischer Speicher füllen

  Alt 24. Mai 2005, 22:27
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
  Mit Zitat antworten Zitat