Moin an Alle.
Ich benötige 'mal Eure Hilfe.
foldenden Code benutze ich schon seit längerer Zeit.
Delphi-Quellcode:
procedure TfrmMain.WMDropFiles (Var Msg: TMessage);
var
Idx,
Size,
FileCount: Integer;
FileName: PChar;
begin
FileCount := -1;
DragList.Clear;
Inherited;
FileCount := DragQueryFile(Msg.WParam, $FFFFFFFF, Nil, 255); // File Count
for Idx := 0 to FileCount -1 do
begin
Size := DragQueryFile (Msg.WParam, Idx, Nil, 0) + 1;
FileName := StrAlloc(Size);
DragQueryFile (Msg.WParam, Idx, FileName, Size);
//ShowMessage(FileName); //<-------------- Kontrolle
DragList.Add (FileName); // Liste füllen
StrDispose(FileName);
end; // end File Count
DragFinish (Msg.WParam);
//ShowMessage(IntToStr(FileCount)); //<-------------- Kontrolle
//ShowMessage(IntToStr(DragList.Count)); //<-------------- Kontrolle
if DragList.Count > 0 then SetDragging(Self) // Aktion on drop // CopyDrag(Self)
else ShowMessage('keine Dateinamen in der Liste !');
end;
...hat bisher auch immer funktioniert (allerdings - schon ein paar Jahre her - XP-Zeiten).
Nun stellt sich folgendes Problem dar :
lasse ich das erste ShowMessage(PChar(FileName)); weg bzw. als Kommentar ist die DragList (TStringList) leer,
mit dem ShowMessage ist alles in Ordnung.
Dieses Verhalten ist zu jeder Zeit bei mir nachstellbar.
Delphi 7.0
Win 7 Prof. 64 Bit
Das entspr. Programm wird mit Admin-Rechten gestartet, ProzessPriorität habe ich schon auf "ABOVE_NORMAL" gesetzt - bringt auch nichts,
zumal das Programm zur Zeit obiger Prozedur sonst nichts zu tun hat.
Hat jemand eine Idee ? Ich steh' zur Zeit ziemlich auf dem Schlauch . . .
Markus H.