![]() |
Objekt kopieren
Ich habe mehrere Images und eine Paintbox und will das man beim Drag&Drop statt des Mauszeigers das gezogene Image sieht. Deshalb erstelle ich ein neues Image dem ich das Picture des angeklickten Pictures zuweise und will es dann mit der Maus bewegen.
Hier der Code um das neue Image zu erstellen:
Delphi-Quellcode:
Aber das neue Image wird nicht angezeigt. Woran könnte es liegen? Ich habe bisher noch nie Objekte kopiert.
procedure TForm1.ImageXMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); var ImageXCopy:TImage; begin ImageXCopy:=TImage.Create(TImage(Sender)); ImageXCopy.Left:=x; ImageXCopy.Top:=y; ImageXCopy.Picture.Assign(TImage(Sender).Picture); ImageXCopy.BringToFront; end; mfG Tanadirian |
Re: Objekt kopieren
Hi !
So wie ich das sehe ist Parent nicht gesetzt. Füge mal
Code:
ein. Damit sollte es dann klappen (nicht getestet, aus dem Bauch raus).
ImageXCopy.Parent := TImage(Sender).Parent;
|
Re: Objekt kopieren
Jo, jetzt gehts, dankeschön!
mfG Tanadirian |
Re: Objekt kopieren
Wichtig zum Verständnis: Der Owner ist für den Speicher verantwortlich und der Parent für das Zeichnen. ;)
|
Re: Objekt kopieren
Ah :idea: gut zu wissen.
Jetzt hab ich auch gleich das nächste prob, ich will dem neuen Image eine Ereignissprozedur zuweisen
Delphi-Quellcode:
aber bei ssLeft bekomme ich die Fehlermeldung:
ImageXCopy.OnMouseMove:=TForm1.ImageXMouseMove(TImage(Sender), ssLeft ,TImage(Sender).Left,TImage(Sender).Top);
"Inkompatible Typen: 'TShiftState' und 'Enumeration'" wieso das? ssLeft ist doch ein mgl Wert von TShiftState. |
Re: Objekt kopieren
probier
Delphi-Quellcode:
ImageXCopy.OnMouseMove:=TForm1.ImageXMouseMove(TImage(Sender), [ssLeft] ,TImage(Sender).Left,TImage(Sender).Top);
|
Re: Objekt kopieren
Danke, jetzt bekomme ich aber die Meldung " Diese Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt"
|
Re: Objekt kopieren
Warum gibts du bei der Zuweisung Parameter an und noch TForm1.? Normalerweise sollte es doch so aussehen:
Delphi-Quellcode:
ImageXCopy.OnMouseMove := ImageXMouseMove;
|
Re: Objekt kopieren
Mhh, jetzt gehts, ich dachte man müsste wie bei einer Funktion die Parameter mit übergeben und ohne Form1 hat er gemeckert!
Dankeschön mfg Tanadirian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 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 by Thomas Breitkreuz