Hi!
Ich benutze TreeView_CreateDragImage um mir ein Image des Startknotens
einer Drag-Aktion im TreeView erstellen zu lassen. Leider wird das Image mit der Hintergrundfarbe
des TreeViews erstellt, obwohl dieser vor Beginn des Drags markiert ist und damit einen
blauen Hintergund hat. (Der Windows Explorer macht es richtig)
Den DragMode dmAutomatic will ich nicht benutzen, da es Konflikte mit der IDataObject Komponente gibt.
Über Ideen freue ich mich!
Hier noch ein bisschen Code:
Delphi-Quellcode:
//private
FDropFileSource: TDropPhotoFileSource;
//Komponente von Angus Johnson & Anders Melander, [url]http://www.melander.dk[/url]
FIDragImageList: TImageList;
procedure TWOCShellTreeView.DoStartIDrag(StartNode: TTreeNode);
var
ImageHandle: HImageList;
begin
try
if StartNode <>
nil then
begin
ImageHandle := TreeView_CreateDragImage(
Handle, StartNode.ItemId);
if ImageHandle <> 0
then
FIDragImageList.Handle := ImageHandle;
end;
except
end;
try
AssignPhotoFileDataValues(FDropFileSource.PhotoFileDataObject);
FDropFileSource.Files.Add(Path);
FDropFileSource.ImageIndex := 0;
//ist egal, es gibt nur ein Bild in der Liste
FDropFileSource.Execute;
except
FIDragging := False;
end;
end;