Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#20

AW: die aufzurufende funktion wurde vom linker entfernt

  Alt 1. Mai 2017, 19:27
Da du da eh noch ein Abs hast, sind die Asserts falsch und überflüssig
Positive Indizies werden nicht unterstützt.

cu Ha-Jö
Ja und das ist mein Problem daher muss ich trotz deiner guten Arbeit die Classe verwerfen.

Zum besseren Verständnis.
Hier werden die Bitmap Ressourcen addiert die für das Window später verwendet werden.
Die Values gehen von -5 > 0

Delphi-Quellcode:
procedure AddChildControls();
begin

  gs := TNegativeArray.Create(6); // -5 to 0

  gS[0].Bitmap := SKAERO_CreateBitmapFromFile(FolderResource + 'UseBack.png', width, height);
  gS[0].w := width;
  gS[0].h := height;
  gS[0].x := 0;
  gS[0].y := MAX(YMIN_SIZE - gS[0].h, 0);
  gS[0].opacity := 255;

  gS[ID_LEFT].x := 0;
  gS[ID_LEFT].y := YMIN_SIZE - 25;
  gS[ID_LEFT].opacity := 128;
  gS[ID_LEFT].Bitmap := SKAERO_CreateBitmapFromFile(FolderResource + 'Left.png', width, height);
  gS[ID_LEFT].w := width;
  gS[ID_LEFT].h := height;

  gS[ID_RIGHT].x := gS[0].w - gS[ID_LEFT].w;
  gS[ID_RIGHT].y := YMIN_SIZE - 25;
  gS[ID_RIGHT].opacity := 128;
  gS[ID_RIGHT].Bitmap := SKAERO_CreateBitmapFromFile(FolderResource + 'Right.png', width, height);
  gS[ID_RIGHT].w := width;
  gS[ID_RIGHT].h := height;

  gS[ID_FLARE].x := 0;
  gS[ID_FLARE].y := 16;
  gS[ID_FLARE].opacity := 200;
  gS[ID_FLARE].Bitmap := SKAERO_CreateBitmapFromFile(FolderResource + 'Flare.png', width, height);
  gS[ID_FLARE].w := width;
  gS[ID_FLARE].h := height;

  gS[ID_BLUEFLARE].Bitmap := SKAERO_CreateBitmapFromFile(FolderResource + 'BlueFlare.png', width, height);
  gS[ID_BLUEFLARE].w := width;
  gS[ID_BLUEFLARE].h := height;
  gS[ID_BLUEFLARE].x := 0;
  gS[ID_BLUEFLARE].y := YMIN_SIZE - (gS[ID_BLUEFLARE].h + 3);
  gS[ID_BLUEFLARE].opacity := 255;

  gS[ID_FOCUS].Bitmap := SKAERO_CreateBitmapFromFile(FolderResource + 'Focus.png', width, height);
  gS[ID_FOCUS].w := width;
  gS[ID_FOCUS].h := height;
  gS[ID_FOCUS].x := 0;
  gS[ID_FOCUS].y := YMIN_SIZE - (gS[ID_FOCUS].h + 4);
  gS[ID_FOCUS].opacity := 128;

end;
Das Problem mit dieser Classe ist das ich NUR Negative Values addieren kann.
Bsp.
Icons werden addiert.

Delphi-Quellcode:
    if CreateBarIcon(sIconSearch, nFound) then
    begin
      inc(nCount);
      //Setlength(gS, nCount); funktioniert nicht mher wegen der neuen Classe

      gS[nCount].y := nHeight;
      gS[nCount].SCALE := SCALE_DEFAULT;
      gS[nCount].opacity := 255;
      sUseThumb := sTempPath + 'OTTB ' + IntToStr(nFound) + '.png';
      gS[nCount].Bitmap := CreateDockIcon(sUseThumb, gS[nCount].w, gS[nCount].h);

      DeleteFile(sUseThumb);

      if DoLnk then
        gS[nCount].ShellTo := Lowercase(sTarget);
Hier wird das Array normalerweise redimensioniert.
Wenn gS positive werte bekommt sind sie am ende doch Negativ bedingt durch die Classe.

Das Array gS muss eine Kombination von Negativen und Positiven werten sein.
Da das aber nicht geht werde ich wohl oder übel wieder alles umbauen müssen.

gruss
  Mit Zitat antworten Zitat