Einzelnen Beitrag anzeigen

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, 11: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