Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

Berechnungs problem nach Skalieren

  Alt 8. Jan 2019, 12:54
Ich Skaliere ein Bitmap.
Auf dem Bitmap befinden sich ein Zeiger und ein Dot um den Zeiger zu überlagern.

Delphi-Quellcode:
    WM_HSCROLL:
      begin
        if (LoWord(wP) = SB_THUMBPOSITION) then
        begin
          percent := HiWord(wP) / 100;
          if percent > 0.99 then
            percent := 1
          else
          if percent < MIN_SCALE / 100 then
            percent := MIN_SCALE / 100;

          YY := 0;

          FrameH := 216;
          yH := round(FrameH * percent);
          if (yH <> FrameH) then
            YY := round(FrameH - yH) div 2;

          gSprVU.GD_SetObjectScale(ID_VULEFT, percent);
          // Linker Pendel
          gSprVU.GD_SetObjectXY(ID_PENDELLEFT, PendelLeft, PendelTop - YY);
          gSprVU.GD_SetObjectScale(ID_PENDELLEFT, percent);
          // Linker Dot
          gSprVU.GD_SetObjectXY(ID_DOTLEFT, DotLeft, DotTop - YY);
          gSprVU.GD_SetObjectScale(ID_DOTLEFT, percent);

          gSprVU.GD_SetObjectScale(ID_LIGHTLEFT, percent);
          // VURight
          gSprVU.GD_SetObjectScale(ID_VURIGHT, percent);
          // Rechter Pendel
          gSprVU.GD_SetObjectXY(ID_PENDELRIGHT, PendelRight, PendelTop - YY);
          gSprVU.GD_SetObjectScale(ID_PENDELRIGHT, percent);
          // Rechter Dot
          gSprVU.GD_SetObjectXY(ID_DOTRIGHT, DotRight, DotTop - YY);
          gSprVU.GD_SetObjectScale(ID_DOTRIGHT, percent);

          gSprVU.GD_SetObjectScale(ID_LIGHTRIGHT, percent);

          Result := 0;
          Exit;
        end;
      end;
Mein Problem ist das immer ein paar Pixel außerhalb des Hintergrund Bitmap liegen wenn ich Skaliere.
Jemand eine Idee woran das liegen könnte (Ja an meiner Berechnung )
Nur ich weis nicht wie ich es noch genauer hinbekommen soll.

Wenn es unverständlich ist nur Nachfragen.

gruss

Geändert von EWeiss (11. Jul 2019 um 15:55 Uhr)
  Mit Zitat antworten Zitat