AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi TImage flackert beim Verschieben wenn Mauszeiger über Bild
Thema durchsuchen
Ansicht
Themen-Optionen

TImage flackert beim Verschieben wenn Mauszeiger über Bild

Ein Thema von hadschi92 · begonnen am 20. Jun 2009 · letzter Beitrag vom 22. Jun 2009
Antwort Antwort
hadschi92

Registriert seit: 25. Okt 2006
83 Beiträge
 
Delphi XE3 Professional
 
#1

TImage flackert beim Verschieben wenn Mauszeiger über Bild

  Alt 20. Jun 2009, 20:32
Der Titel sagt schon fast alles. Und zwar habe ich eine Funktion implementiert, dass ich ein Bild (TImage) auf meinem Formular hin und herschieben kann. Das klappt auch super, aber nur solange der Mauszeiger nicht über dem Bild ist. Dann fängt das Bild bisschen an zu flackern, heißt es springt immer einen Pixel weg und dann wieder zurück, anstatt dass es sich um einen Pixel verschiebt.

Mein Code sieht bis jetzt so aus:
Delphi-Quellcode:
var XAlt, YAlt: Integer;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  XAlt := X;
  YAlt := Y;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ssMiddle in Shift then begin
    Image1.Left := Image1.Left + (X - XAlt);
    Image1.Top := Image1.Top + (Y - YAlt);
  end;
  XAlt := X;
  YAlt := Y;
end;
FormMouseDown und FormMouseMove ist natürlich auch in die Ereignisbehandlung onMouseMove und onMouseDown des Images rein geschrieben. Form1.DoubleBuffered ist außerdem auf true.
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#2

Re: TImage flackert beim Verschieben wenn Mauszeiger über Bi

  Alt 22. Jun 2009, 08:05
Die Ereignisse sind dem Image zugewiesen. Damit sind auch die Koordinaten, die in X und Y übergeben werden, relativ zur oberen linken Ecke des Image. Da das Image unter dem Mauszeiger verschoben wird, bleibt die Maus immer auf der selben relativen Position im Image. An dieser Stelle darf deshalb XAlt und YAlt nicht geändert werden.
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#3

Re: TImage flackert beim Verschieben wenn Mauszeiger über Bi

  Alt 22. Jun 2009, 08:10
packs image mal auf nen Panel und aktiviere doublebufferd := true;

sollte aber auch ohne panel funktionieren!


--> form1.doublebufferd := true;
  Mit Zitat antworten Zitat
hadschi92

Registriert seit: 25. Okt 2006
83 Beiträge
 
Delphi XE3 Professional
 
#4

Re: TImage flackert beim Verschieben wenn Mauszeiger über Bi

  Alt 22. Jun 2009, 22:44
Vielen Dank, Blub dein Beitrag hat mir geholfen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz