![]() |
Drag&Drop einer TImage-Komponente
ich habe ein panel mit einer image-kompnente draufliegen. die image-kompo soll per drag und drop auf eine danebenliegende paintbox gelegt werden (ich muss also auch irgendwie den parent ändern??!!!)
in dieses image lade ich ein bitmap:
Code:
meine jetzige DragOver-procdure malt nur das Bitmap aus dem Image auf die PaintBox,
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin // Bitmap aus Datei in das Image laden und die Höhe und Breite des Image anpassen ImageVorschau.Picture.Bitmap.LoadFromFile(ListBox1.Items[ListBox1.ItemIndex]); ImageVorschau.Width := ImageVorschau.Picture.Width; ImageVorschau.Height := ImageVorschau.Picture.Height; // Image1 mittig auf dem Panel1 positionieren // x-Position if ImageVorschau.Width < PanelVorschau.Width then ImageVorschau.Left := Round(PanelVorschau.Width / 2 - ImageVorschau.Width / 2) else ImageVorschau.Left := 1; // y-Position 1. mittig positionieren oder 2. am oberen Rand if ImageVorschau.Height < PanelVorschau.Height then ImageVorschau.Top := Round(PanelVorschau.Height / 2 - ImageVorschau.Height / 2) else ImageVorschau.Top := 1; end; ich möchte aber das komplette Image daraufziehen (habe es wie in den geschweiften klammern mal versucht) .
Code:
wie kann ich das komplette image rüberziehen???
procedure TForm1.PaintBoxMenueflaecheDragDrop(Sender, Source: TObject; X, Y: Integer);
begin if (Source is TImage) and (Sender is TPaintBox) then begin { TImage(Source).Parent.Create(PaintBoxMenueflaeche); TImage(Source).Left := X; TImage(Source).Top := Y; } PaintBoxMenueflaeche.Canvas.Draw(X,Y,TImage(Source).Picture.Bitmap); end; end; |
Re: Drag&Drop einer TImage-Komponente
habe es gefunden: die paintbox kann ich ja nun weglassen, und die imagekomponente auf die drunterliegende scrollbox packen:
Code:
mfg marcus
procedure TForm1.ScrollBox1DragDrop(Sender, Source: TObject; X,
Y: Integer); begin if (Source is TImage) and (Sender is TScrollBox) then begin RemoveControl(TImage(Source)); ScrollBox1.InsertControl(TImage(Source)); //TImage(Source).Parent.Create(ScrollBox1); TImage(Source).Left := X; TImage(Source).Top := Y; //PaintBoxMenueflaeche.Canvas.Draw(X,Y,TImage(Source).Picture.Bitmap); end; end; |
Re: Drag&Drop einer TImage-Komponente
so richtig scheint das doch nicht zu funktionieren....
ich frage die im formualar und im panel enthaltenen komponenten ab und bekomme sowohl vor wie auch nach dem drag&drop die meldung dass das image als parent das panel hat...
Code:
for i:=0 to ComponentCount-1 do
Memo1.Lines.Add(Components[i].Name); for i:=0 to PanelVorschau.ComponentCount-1 do Memo2.Lines.Add(PanelVorschau.Components[i].Name); wie kann ich nach dem drag&rop dem image das neue parent zuweisen? |
Re: Drag&Drop einer TImage-Komponente
Hallöle! Bin gerade beim Suchen hierüber gestolpert...
Wenn ich dich richtig verstanden habe gibt es auf deinem Formular ein Image, eine ScrollBox, (bis jetzt noch??)eine PaintBox und das Panel, auf dem das Image liegt. Wenn du das image vom Panel auf die PaintBox drauflegen willst, musst du das manuell machen:
Delphi-Quellcode:
Hoffe es hilft dir noch! :wink:
{Das DragOver nicht vergessen! Sonst wird's nicht akzeptiert!}
Accept := (Source is TImage); (*********Das DragDrop für die PaintBox*************) if not Source is TImage then Exit; {Das Image vom Panel lösen und auf die übergeordnete Komponente der PaintBox legen} TImage(Source).Parent := TPaintBox(Sender).Parent; {Die manuelle Anpassung der Position} TImage(Source).Left := TPaintBox(Sender).Left; TImage(Source).Top := TPaintBox(Sender).Top; {ggf. soll die größe des Images auf die der PaintBox zugeschnitten werden} TImage(Source).Width := TPaintBox(Sender).Width; TImage(Source).Height := TPaintBox(Sender).Height; (*********Wenn dus auf die ScrollBox ziehen willst*************) if not Source is TImage then Exit; {Das Image vom Panel lösen und auf die ScollBox legen} TImage(Source).Parent := ScrollBox1; {Die manuelle Anpassung der Position} TImage(Source).Left := X; TImage(Source).Top := Y; {...} |
Re: Drag&Drop einer TImage-Komponente
habe es mittlerweile mit ner extra drag und drop unit gemacht,
wo ich das dragDropObjekt beerbe..... aber trotzdem danke mfg marcus |
Re: Drag&Drop einer TImage-Komponente
Ok! :thuimb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 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