Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Drag&Drop (https://www.delphipraxis.net/1731-drag-drop.html)

Christian Seehase 22. Feb 2003 01:30

Moin Nailor,

[EDIT]
ich hatte die zweite Seite des Threads übersehen :oops:
[/EDIT]

nailor 23. Feb 2003 20:06

Klappt!!! :firejump: :firejump:

KAnn man jetzt noch irgendwie die AVs verhindern, wenn man einen Ordner droppt?

eddy 24. Feb 2003 09:03

Hallo Nailor,

entweder Du prüfst, ob die Datei existiert oder mit try - except

Ich habe das 2. verwendet:

Code:
procedure TFTest.WMDROPFILE(var msg: TMessage);
var
  hDrop : Cardinal ;
  fName : array[0..MAX_PATH] of Char ;
  fnnew, fnold : string;
  i : integer;
begin
   hDrop := Msg.WParam ;
   fName := '' ;

   i := 0;
   fnold := '';
   DragQueryFile(hDrop, i, fName, MAX_PATH);
   fnnew := string(fName);
   while fnnew <> fnold do begin
     fnold := fnnew;
     try
       Memo2.Lines.LoadFromFile(String(fName));
       Memo2.SelectAll;
       Memo2.CopyToClipboard;
       Memo1.SelStart := Memo1.GetTextLen;
       Memo1.Lines.Add('');
       Memo1.Lines.Add('');
       Memo1.Lines.Add('');
       Memo1.Lines.Add(fnnew);
       Memo1.Lines.Add('');
       Memo1.PasteFromClipboard;
     except
       MessageDlg(fnnew + ' konnte nicht geöffnet werden', mtError, [mbOK], 0);
     end;
//     RichEdit1.Lines.LoadFromFile(String(fName));
     inc(i);
     DragQueryFile(hDrop, i, fName, MAX_PATH);
     fnnew := string(fName);
   end;
   DragFinish (hDrop);
end;
mfg
eddy

PS: was heißt "AVs" auf Deutsch?

nailor 24. Feb 2003 10:49

Zugriffsverletzung glaub ich, falls sich das so schreibt

nailor 25. Feb 2003 21:00

Sorry, dass ich deinen Code so verstümmelt habe, aber warum geht das nicht?

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ShellApi;

procedure WMDROPFILE(var msg: TMessage);

procedure TForm1.WMDROPFILE(var msg: TMessage);
var
  hDrop: cardinal;
  fName: array[0..MAX_PATH] of char;
begin
hDrop := Msg.WParam;
fName := '' ;
DragQueryFile(hDrop, 0, fName, MAX_PATH);
ShowMessage('*' + string(fName) + '*');
//LabeledEdit1.Text := string(fName);
DragFinish (hDrop);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle,True);
end;
Es kommt noch nichtmal eine MessageBox mit zwei Sternchen, aber der Drag&Drop-Zeiger kommt :?

eddy 26. Feb 2003 00:57

Hallo Nailor,

es gibt da einen kleinen Unterschied zwischen Deinem Code und dem von Luckie übernommenen Code:

Delphi-Quellcode:
private
  { Private-Deklarationen } 
   procedure WMDROPFILE (var msg: TMessage ); Message WM_DropFiles ;
// procedure WMDROPFILE(var msg: TMessage);
Der kleine Unterschied macht's!

mfg
eddy


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:07 Uhr.
Seite 3 von 3     123   

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