AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TImage verschieben?

Ein Thema von mlspider · begonnen am 25. Jul 2006 · letzter Beitrag vom 25. Jul 2006
Antwort Antwort
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#1

TImage verschieben?

  Alt 25. Jul 2006, 16:10
Wie könnte man zur Laufzeit die Image-Kompo verschieben?

Dieser Code funkioniert bei Button und Co, nicht bei der Image-Kompo:

Delphi-Quellcode:
procedure TCover.Button2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 TWincontrol(sender).perform(WM_LBUTTONUP, 0, 0);
   TWincontrol(sender).Perform(WM_SysCommand,SC_MOVE+2,2);
end;
Im MouseDown-Event von Image1, habe ich die Procedur vom MouseDown-Event des Buttons zu stehen.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: TImage verschieben?

  Alt 25. Jul 2006, 21:32
Wahrscheinlich hast du es mit deinem Typ-Casten in Richtung TWinControl schon richtig angedeutet: Nötig für diese Methode könnte gut immer mindestens ein TWinControl sein. Eine Image-Kompo ist aber nur ein TGraphicControl. In der OH heißt es diesbezüglich z.B.: "...da Lightweight-Steuerelemente keine Windows-Bildschirmobjekte kapseln,...", ...was wohl also heißt, dass ein TImage kein typisches Bildschirmobjekt ist und demzufolge auch nicht auf eine solche Weise verschoben werden kann.

Ergo wird dir wahrscheinlich nichts anderes übrig bleiben, als im Image1MouseDown die zu diesem Zeitpunkt aktuellen X/Y-Koordinaten der Maus extra festzuhalten, sowie auch die Left/Top-Koordinaten des Image selbst. Anschließend kannst du dann bei jedem folgenden Image1MouseMove-Visit die Differenz zu diesen anfänglichen Maus-Koordinaten in eine dementsprechende Positionsänderung des Image (=Image1.Left/Top-Änderung) umzusetzen.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: TImage verschieben?

  Alt 25. Jul 2006, 23:09
Und genauso habe ich es mittlerweile gelößt. Jeweils einen Butten der beim MouseDown-Event einen Timer anspicht und dessen Timerereignis eine Left/Top - Verschiebung vornimmt.

MouseUp-Event setzt den Timer wieder auf False.(Nur zur Ergänzung)

Gleiches habe ich mit der Größenänderung von Image erreicht. (Hier wiederum: Heigth/Width)

Trotzdem gut recherchiert. Auf das selbe Ergebnis bin ich jetzt auch gekommen.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: TImage verschieben?

  Alt 25. Jul 2006, 23:30
Hallo mlspider,

Die Schweizer kommen ohne Timer aus: klick

Gruß Hawkeye
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: TImage verschieben?

  Alt 25. Jul 2006, 23:31
Natürlich noch besser. Danke!
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  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 12:43 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