Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Datei auf Image ziehen und dann in Listbox einfügen (https://www.delphipraxis.net/54952-datei-auf-image-ziehen-und-dann-listbox-einfuegen.html)

MisterNiceGuy 13. Okt 2005 23:22


Datei auf Image ziehen und dann in Listbox einfügen
 
Hi ich hab da ein meiner Meinung nach etwas kompliziertes Problem.
Ich möchte eine Datei auf ein TImage ziehen. Der Dateiname der gedropten Datei
soll dann in einem Listview ausgegeben werden.

Wie mach ich das, ich hab schon im Forum unter drag an Drop gesucht abe rnichts gefunden :/

sniper_w 13. Okt 2005 23:37

Re: Datei auf Image ziehen und dann in Listbox einfügen
 
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,ShellAPI, StdCtrls;

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.WMDropFiles(var Message: TWMDropFiles);
var
  Count: Integer;
  I: Integer;
  Buffer: array[0..MAX_PATH] of Char;
begin
  DragQueryFile(Message.Drop, 0, @Buffer, SizeOf(Buffer));
  Edit1.Text := Buffer;

  ListBox1.Clear;
  Count := DragQueryFile(Message.Drop, UINT(-1), nil, 0);

  for I := 0 to Count - 1 do
  begin
    DragQueryFile(Message.Drop, I, @Buffer, SizeOf(Buffer));
    ListBox1.Items.Add(Buffer);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Self.Handle, True);
end;

MisterNiceGuy 14. Okt 2005 00:25

Re: Datei auf Image ziehen und dann in Listbox einfügen
 
Hi vielen vielen Dank, nur ein Problem gibt es bei der Methode, wenn ich den Formstyle der Form auf der das Image liegt auf fsstayontop setze, dann kann man keine Dateien mehr darauf ziehen. Weißt du dafür eventuell auch noch ne Lösung? Wäre klasse :)

SirThornberry 14. Okt 2005 06:07

Re: Datei auf Image ziehen und dann in Listbox einfügen
 
wenn der FormStyle auf fsStayOnTop ist wird das Form Recreated (neues Handle angefordert). Du musst also sicherstellen das der FormStyle gesetzt wird bevor du DragAcceptFiles aufrufst. Eine Möglichkeit wäre das du es nicht per OI machst sondern auch im Create und da direkt vor der DragAcceptFiles-Anweisung

MisterNiceGuy 14. Okt 2005 12:05

Re: Datei auf Image ziehen und dann in Listbox einfügen
 
Oh Gott, danke, wusste nicht, dass es ein neues Handle bekommt!!

Flocke 14. Okt 2005 13:08

Re: Datei auf Image ziehen und dann in Listbox einfügen
 
Bisschen Werbung machen :mrgreen:
Oder du nimmst die kleine Kompo hier.

MisterNiceGuy 15. Okt 2005 11:15

Re: Datei auf Image ziehen und dann in Listbox einfügen
 
Na hätte ich das gewusst hätte ich natürlich deine Komponente benutzt :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:53 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