Forma sürüklenip bırakılan dosya isimlerini alma

Başlıkta anılan işin nasıl yapılacağını gösteren kod.

{
  Bir formda sürükleme bırakma özelliğini kullananabilmek için Form'un DragKind
  özelliği dkDrag, DragMode özelliği ise dmManuel olarak ayarlanır. Daha sonra
  Form'un Create olayına aşağıdaki kodlar yazılır:
}
procedure TForm1.FormCreate(Sender: TObject);
begin
  //Sürükle bırak'ın çalışması için aşağıdaki iki satır gerekli
  DragAcceptFiles(Form1.Handle, true);
  Application.OnMessage := AppMessage;
end;

//Yukarıdaki AppMessage proseduürü de aşağıdadır:
uses ShellApi, ComObj;

procedure TForm1.AppMessage(var Msg: Tmsg; var Handled: Boolean);
const
   BufferLength : DWORD = 511;
var

  DroppedFilename   : string;
  FileIndex         : DWORD;
  NumDroppedFiles   : DWORD;
  pDroppedFilename  : array [0..511] of Char;
  DroppedFileLength : DWORD;
begin
  //sürükle bırak olayında kullanılan prosedür
  if Msg.message = WM_DROPFILES then
  begin
    FileIndex := $FFFFFFFF;
    NumDroppedFiles := DragQueryFile(Msg.WParam, FileIndex,
                                     pDroppedFilename, BufferLength);
    MmoLog.Lines.Clear;
    for FileIndex := 0 to (NumDroppedFiles - 1) do
    begin
      DroppedFileLength := DragQueryFile(Msg.WParam, FileIndex,
                                         pDroppedFilename,
                                         BufferLength);
      DroppedFilename := StrPas(pDroppedFilename);
      MmoLog.Lines.Add(pDroppedFilename); //Bu memo'nun adını kullandığın programa göre değiştir.
    end;
    DragFinish(Msg.WParam);
    Handled := true;
  end;
end;

 

13.11.2008 10:51:42

Yorumlar

Bu yazıya henüz yorum yapılmamış.

Yazı hakkında yorum yapmak için, buraya tıklayın.

Kategoriler :

Arşiv :

Etiketler :

Bağlantılar :