AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Drag & Drop von Image zu Image (nicht über D&D-Funktion!)
Thema durchsuchen
Ansicht
Themen-Optionen

Drag & Drop von Image zu Image (nicht über D&D-Funktion!)

Ein Thema von Daether · begonnen am 2. Feb 2004 · letzter Beitrag vom 3. Feb 2004
Antwort Antwort
Daether

Registriert seit: 20. Mär 2003
10 Beiträge
 
#1

Drag & Drop von Image zu Image (nicht über D&D-Funkt

  Alt 2. Feb 2004, 18:24
Hi,
ich möchte ein Bild aus einem Image per Drag&Drop in ein anderes ziehen können. Dabei weiß ich das es eine Funktion von Delphi gibt, welche ich aber nicht benutzen will.
Ich möchte gerne:
Das Bild soll wenn möglich immer am Mauszeiger sein ^^.
Soll dann von einem Image in ein anderes gelegt werden.
Wenn das Bild aus Image 1 zu Image 2 gebracht wurde, soll sich das Bild in Image 1 ändern. Hoffe ihr versteht was ich meine, vielleicht kann mir das mal jemand erklären wie das genuaer gehen soll.
Ich habe irgendwie keinen Plan wie ich weitermachen soll, Kann mir niemand weiterhelfen?

Das hier ist mal ein Auszugs des Anfangs:
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
KoX:=Mouse.CursorPos.X;
Label1.Caption:=inttostr(KoX);
KoY:=Mouse.CursorPos.Y;
Label2.Caption:=inttostr(KoY);
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
KoX:=Mouse.CursorPos.X;
KoY:=Mouse.CursorPos.Y;
image1.Left:=KoY;
end;
  Mit Zitat antworten Zitat
LuckySpacy

Registriert seit: 2. Apr 2003
Ort: Fränkisch-Crumbach
50 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Drag & Drop von Image zu Image (nicht über D&D-F

  Alt 3. Feb 2004, 10:28
Also, wie das Bild am Mauszeiger kleiben bleibt, das weiß ich leider nicht.
Ich verstehe auch nicht, warum du die Drag & Drop Funktion nicht nutzen willst.
Dafür ist sie doch da.

Ich habe da zwei Beispiele. Eins mit Drag & Drop und eins ohne.
Das Image2 ist auf das Image1 zu ziehen.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Image2.DragMode := dmAutomatic;
end;


procedure TForm1.Image1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  if Source is TImage then
    Accept := true;
end;

procedure TForm1.Image1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  if Source is TImage then
  begin
    TImage(Sender).Picture.Icon.Assign(TImage(Source).Picture.Icon);
  end;
end;
Zweites Beispiel:

Delphi-Quellcode:
  .....
  private
    FDragImage: TImage;
  public
  end;

procedure TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  FDragImage := TImage(Sender); // Image merken
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FDragImage <> nil then
  begin
    TImage(Sender).Picture.Icon.Assign(FDragImage.Picture.Icon); // gemerktes Image ablegen
    FDragImage := nil;
  end;
end;
Hier gibt es noch eine Schwierigkeit.
Sollte das gemerkte Image nicht gedroppt werden, dann muss es wieder mit nil besetzt werden.

Mein Beispiel ist also so einfach nicht anzuwenden.
Ich hoffe aber, es gibt dir vielleicht neue Ideen.
Thomas Bachmann
  Mit Zitat antworten Zitat
Chef16

Registriert seit: 26. Jan 2004
Ort: Lemgo
26 Beiträge
 
#3

Re: Drag & Drop von Image zu Image (nicht über D&D-F

  Alt 3. Feb 2004, 11:16
Hi,

Du kannst Z.b. auf ein Klick auf einer Image Komponente das Bitmap einer Variable übergeben:

Var Bitmap: TBitmap Dann einfach bei OnMouseMove von der Image Komponente per TCanvas.Draw() aufs Formular Zeichen dabei immer vorher Refresh; aufrufen. Dann bei Image "OnMouseUp" prüfen ob du über die anderer Image Komponente bist. Wenn ja, dann das Bitmap an der Image Komponente übergeben. Und ebenfals nochmal Refresh; aufrufen.

MFG
Sven!
irc.euirc.net -> #delphi-hilfe
  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:17 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