Hallo,
ich habe einen ListView, der über ein PopupMenu verfügt. Beim Klicken
der Einträge werden im Code die tatsächlichen InvokeCommand-Befehle
vom Windows ausgeführt. Es funktioniert super mit 'copy', 'cut', 'paste'
und 'delete'. Nur 'rename' streikt. Unbekannter Fehler. Gibt es den
Befehl 'rename' etwa nicht in dieser Form?
Hier mal ein bisschen Code:
Delphi-Quellcode:
PConMenu := GetIContextMenu(APIDL, ParentPIDL);
if PConMenu <>
nil then
begin
FillChar(Command, sizeof(Command),#0);
Command.cbSize := sizeof(Command);
Command.lpVerb := '
';
case Com of
MCpaste:
Command.lpVerb := MakeIntResource('
paste');
MCcopy:
Command.lpVerb := MakeIntResource('
copy');
MCcut:
Command.lpVerb := MakeIntResource('
cut');
MCdelete:
Command.lpVerb := MakeIntResource('
delete');
MCrename:
Command.lpVerb := MakeIntResource('
rename');
end;
if Command.lpVerb <>
nil then
begin
Check := PConMenu.InvokeCommand(Command);
if Check = S_OK
then
begin
if (
Com = MCcopy)
or (
Com = MCcut)
then
SetClipboard(True)
else
SetClipboard(False);
end else
OleCheck(Check);
Ziel des Ganzen soll sein, dass bei einem Klick auf 'Umbenennen' wie im Windows Explorer
der Inplace-Editor für Datei- und Ordnernamen gestartet wird. Bei 2-maligen Links-Klick
mit gewisser Zeitspanne zwischen den Klicks funktioniert im ListView übrigens tadellos.
Falls keiner eine IcontextMenu-Lösung kennt, wäre eine andere Möglichkeit auch sehr nett.
Grüße
Sebastian