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