Einzelnen Beitrag anzeigen

Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#10

Re: SFX Tool - Setup Programme mit wenigen klicks erstellen

  Alt 27. Jan 2006, 17:05
Diesen Code verwende ich für Drag & Drop Operationen _ins_ Programmfenster. Vielleicht hilft er dir ja weiter:

Delphi-Quellcode:
type
  TMainForm = class(TForm)
...
private
  // In private einbinden um WM_DropFiles Messages zu erhalten
  procedure WMDropFiles(var Msg: TMessage); message WM_DROPFILES;
  ...
end;

procedure TMainForm.Create(Sender: TObject);
begin
  ...
  // Enable Drag
  DragAcceptFiles(Self.Handle, True);
  ...
end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ...
  // Disable Drag
  DragAcceptFiles(Self.Handle, False);
  ...
end;

procedure TMainForm.WMDROPFILES(var Msg: TMessage);
var
  aFilename: PChar;
  i, iSize, iFileCount: integer;
  SL: TStringList;
begin
  inherited;

  aFilename := '';
  iFileCount := DragQueryFile(Msg.wParam, $FFFFFFFF, aFilename, 255);
  SL := TStringList.Create;

  try
    for I := 0 to iFileCount - 1 do
     begin
      iSize := DragQueryFile(Msg.wParam, i, nil, 0) + 1;
      aFilename := StrAlloc(iSize);
      DragQueryFile(Msg.wParam, i, aFilename, iSize);
      
      // Add file to list
      if FileExists(aFilename) then
       SL.Add(aFilename)
      else
      // if is directory add directly
      if DirectoryExists(aFilename) then
       //AddDirectory(aFilename); // <- Für eigenes Programm ändern.
      StrDispose(aFilename);
     end;

    // add files in list
    if SL.Count > - 1 then
     //AddFiles(SL); // <- Für eigenes Programm ändern.
  finally
    SL.Free;
    DragFinish(Msg.wParam);
  end;

end;
  Mit Zitat antworten Zitat