Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#1

Unterschied Drag/Drop XP-Vista

  Alt 8. Sep 2008, 20:30
Hallo alle miteinander...

kann mir bitte jemand den Unterschied beim Drag/Drop zwischen XP und Vista erklären.

folgender Code funktioniert unter XP aber unter Vista wird "HabeFertig" nicht ausgeführt.
Delphi-Quellcode:
const
  WM_FERTIG = WM_USER + 100;

  type
  TJvFileListBox = class(JvDriveCtrls.TJvFileListBox)
  private
    ListeDateien: TStringList;
    procedure DropFiles(var Msg: TMessage); Message WM_DROPFILES;
    procedure HabeFertig(var Msg: TMessage); Message WM_FERTIG;
  end;
.
.
.
procedure TJvFileListBox.DropFiles(var Msg: TMessage);
var
  i, Anzahl, Size: Integer;
  SourcePfad: PChar;
begin
  ListeDateien:= TStringList.Create;
  Anzahl := DragQueryFile(Msg.WParam, $FFFFFFFF, SourcePfad, 255);
  for i := 0 to (Anzahl - 1) do
    begin
      Size := DragQueryFile(Msg.WParam, i , nil, 0) + 1;
      SourcePfad:= StrAlloc(Size);
      DragQueryFile(Msg.WParam,i , SourcePfad, Size);
      Pfad:= ExtractFilePath(StrPas(SourcePfad));
      Dateiname:= Copy(StrPas(SourcePfad),Length(Pfad)+1,Length(StrPas(SourcePfad))- Length(Pfad));
      ListeDateien.Add(Dateiname);
      StrDispose(SourcePfad);
    end;
  DragFinish(Msg.WParam);
  PostMessage(Handle, WM_FERTIG, 0, 0);
end;

procedure TJvFileListBox.HabeFertig(var Msg: TMessage);
var
  i: Integer;
begin
  SetForegroundWindow(FAnlagenkomponenten.Handle);
  if BestatigungK then
    begin
      if MessageDlg('Kopieren von ' + IntToStr(ListeDateien.Count) + ' Dateien nach ' +
                     FAnlagenkomponenten.DocVerzeichnis.Text + ' ?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then
        begin
          exit;
        end;
    end;
  for i := 0 to ListeDateien.Count -1 do
    begin
      Dateiname:= ListeDateien.Strings[i];
      CopyFile(PChar(Pfad + Dateiname),PChar(FAnlagenkomponenten.DocVerzeichnis.Text + '\'+ Dateiname),false);
    end;
  FAnlagenkomponenten.JvFileListBox1.Update;
  ListeDateien.Free;
end;
Danke für Tipps...
  Mit Zitat antworten Zitat