AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi TImage Top stimmt nicht...

TImage Top stimmt nicht...

Ein Thema von TitanNano · begonnen am 15. Nov 2011 · letzter Beitrag vom 16. Nov 2011
 
TitanNano
(Gast)

n/a Beiträge
 
#1

TImage Top stimmt nicht...

  Alt 15. Nov 2011, 16:39
Hallo,

Ich habe diese kleine Funktion:
Delphi-Quellcode:
procedure TChar.walkTimerRun(Sender :TObject);
begin
  if(self.walkPos.X < self.finalPos.X) and not(self.X = 'r')then
  begin
    self.walkPos.X:= self.walkPos.X+4;
    self.layer.Left:= self.walkPos.X;
    TCObjectControler.walk_rigth(self);
    self.X:= 'l';
    end else if(self.walkPos.X > self.finalPos.X) and not(self.X = 'l')then
    begin
      self.walkPos.X:= self.walkPos.X-4;
      self.layer.Left:= self.walkPos.X;
      TCObjectControler.walk_left(self);
      self.X:= 'r';
      end else if(self.walkPos.Y < self.finalPos.Y) and not(self.Y = 'u') then
      begin
        self.walkPos.Y:= self.walkPos.Y+4;
        self.layer.Top:= self.walkPos.Y;
        TCObjectControler.walk_down(self);
        self.Y:= 'd';
        end else if(self.walkPos.Y > self.finalPos.Y) and not(self.Y = 'd') then
        begin
          self.walkPos.Y:= self.walkPos.Y-4;
          self.layer.Top:= self.walkPos.Y;
          TCObjectControler.walk_up(self);
          self.Y:= 'u';
          end else
          begin
            self.walkTimer.Enabled:= false;
            showmessage(IntToStr(self.layer.Top)+' == '+IntToStr(self.finalPos.Y));
            self.walkTimer.Enabled:= false;
            self.layer.Picture.Bitmap.Assign(nil);
            self.stand.GetBitmap(0, self.layer.Picture.Bitmap);
            self.Y:= '';
            self.X:= '';
            end;
  end;
Also, ich bewege das Bild erst nach rechts oder links und dann nach oben oder nach unten bis es die gewünschte Position erreicht. Die X Koordinaten stimmen auch immer, aber es erreicht nie ganz die Y Koordinate. Das heißt, die Message Box am ende gibt z.b. aus:

405 == 400

also sollte das Bild ja sogar ein bisschen drüber hinaus "fahren" aber sie bleibt immer ca. 20 Pixel vorher stehen
Das Bild ist auf einem Pannel:
Delphi-Quellcode:
tom:= TChar.Create(Form1);
tom.layer.Parent:= Form1.haus;
Die Create Funktion:
Delphi-Quellcode:
constructor Tchar.Create(AOwner: TComponent);
Begin
Inherited Create(AOwner);
//layer
layer:= TImage.Create(AOwner);
layer.Height:= 170;
layer.Width:= 100;
layer.Stretch:= true;
layer.Transparent:= false;
//stand
stand:= TImageList.Create(AOwner);
//walkLeft
walkLeft:= TImageList.Create(AOwner);
//walkRight
walkRigth:= TImageList.Create(AOwner);
//walkUP
walkUp:= TImageList.Create(AOwner);
//walkDown
walkDown:= TImageList.Create(AOwner);
//walkTimer
walkTimer:= TTimer.Create(AOwner);
walkTimer.OnTimer:= walkTimerRun;
walkTimer.Enabled:= false;
walkTimer.Interval:= 100;
//standTimer
standTimer:= TTimer.Create(AOwner);
standTimer.Enabled:= false;
end;
Die Koordinaten bekommen ich von der Mausposition:
Delphi-Quellcode:
self.walkTo(tom, Sender.ScreenToClient(Mouse.CursorPos).X, Sender.ScreenToClient(Mouse.CursorPos).X);
  
procedure TObjectControl.walkTo(objekt : TChar; posX, posY : integer);
begin
  objekt.walkPos.X:= objekt.layer.Left;
  objekt.walkPos.Y:= objekt.layer.Top;
  objekt.finalPos.X:= posX;
  objekt.finalPos.Y:= posY;
  objekt.walkTimer.Enabled:= true;
end;
Hat jemand eine Ahnung was ich falsch gemacht habe oder wieso das so ist??

mfg. TitanNano
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz