AGB  ·  Datenschutz  ·  Impressum  







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

Drag & Drop/Dock zwischen Formularen

Ein Thema von Cicaro · begonnen am 21. Jul 2005 · letzter Beitrag vom 24. Jul 2005
Antwort Antwort
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#1

Drag & Drop/Dock zwischen Formularen

  Alt 21. Jul 2005, 20:03
Hallo ersteinmal!

Ein ganz einfaches Beispiel: Man zieht eine Datei aus dem Windows-Explorer auf den Windows Media Player. Handelt es sich um eine abspielbare Musikdatei, wird die sofort wiedergegeben.

So. Wie kann ich eine gezogene Datei gleichermaßen auf meinen Formularen empfangen ?

P.S.:
Ich hab' schon viel rumprobiert aber nichts ist dabei rausgekommen. Und irgendwann hab' ich angefangen mich im Kreis zu drehen. Es gibt ganz bestimmt eine SEHR einfache Lösung des Problems, komme aber beim besten Willen nicht drauf. Brauche also dringend Rat.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Drag & Drop/Dock zwischen Formularen

  Alt 21. Jul 2005, 20:06
Das sagen, dass du es erlaubst geht mit Hier im Forum suchenDragAcceptFiles, die Verarbeitung ... z.B. so


Und hier ein ausführlichers Beispiel: http://www.delphipraxis.net/internal...=333236#333236

(Ja, ich bin aus Versehen auf den Absenden-Button gekommen )
  Mit Zitat antworten Zitat
Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#3

Re: Drag & Drop/Dock zwischen Formularen

  Alt 21. Jul 2005, 20:20
Auch da gibt es wieder eine prima Komponente vom JediProject. TJvDragDrop müsste sie heißen (grad unter Linux dran).

Nein, ich bekomme kein Geld fürs Verbreiten, ich verweise nur gerne auf die (:
  Mit Zitat antworten Zitat
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#4

Re: Drag & Drop/Dock zwischen Formularen

  Alt 21. Jul 2005, 20:48
am einfachsten geht das hiermit (ist die "Drop Accept")

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,ShellAPI;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    procedure WMDropFiles(var Message: TWMDropFiles); message WM_DROPFILES;
  public
    { Public declarations } 
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm} 
procedure TForm1.FormCreate(Sender: TObject);
begin
   DragAcceptFiles(Self.Handle, True);
end;

procedure TForm1.WMDropFiles(var Message: TWMDropFiles);
var
  Buffer: array[0..MAX_PATH] of Char;
begin
  DragQueryFile(Message.Drop, 0, @Buffer, SizeOf(Buffer));
  Edit1.Text := Buffer; // hier Deine Verarbeitung
end;

end.
Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#5

Re: Drag & Drop/Dock zwischen Formularen

  Alt 24. Jul 2005, 11:29
Ok. Das geht. Danke!

Aber was, wenn ich die Message WM_DROPFILES in der Fensterprozedur abfange ? Ich weiß nicht, wie ich da an die Dateinamen rankomme.
Und kann ich auch irgendwie erfahren wieviele Dateien gedropt wurden ?
  Mit Zitat antworten Zitat
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#6

Re: Drag & Drop/Dock zwischen Formularen

  Alt 24. Jul 2005, 11:37
Zitat von Cicaro:
Ok. Das geht. Danke!

Aber was, wenn ich die Message WM_DROPFILES in der Fensterprozedur abfange ? Ich weiß nicht, wie ich da an die Dateinamen rankomme.
Und kann ich auch irgendwie erfahren wieviele Dateien gedropt wurden ?
Delphi-Quellcode:
procedure TForm1.WMDropFiles(var Message: TWMDropFiles);
var
  Buffer: array[0..MAX_PATH] of Char;
begin
  DragQueryFile(Message.Drop, 0, @Buffer, SizeOf(Buffer));
  Edit1.Text := Buffer; // hier Deine Verarbeitung
end;
Der Dateiname steht in Edit1.text !

Wie das mit mehreren Dateinamen geht, kann ich Dir nicht sagen. Da müsste wahrscheinlich eine Modifikation an dem Code vorgenommen werden. Vielleicht kann ja Luckie mal schauen?

Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

Re: Drag & Drop/Dock zwischen Formularen

  Alt 24. Jul 2005, 11:39
Jetzt schau dir doch mal meinen verlinkten Beitrag von oben an, da ist alles drin.
  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 01:56 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