Einzelnen Beitrag anzeigen

Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#2

AW: TDragImage während DragOver verändern

  Alt 28. Aug 2018, 17:27
Hab mir dann doch selbst helfen können. Und damit alle anderen auch was davon haben ... :

Die Lösung steht hier.

Kurz gesagt: Die verwendete TDragImageList kann nach dem erstellen nicht verändert werden. Letztlich muss mittels GetDragCursor EndDrag und eine neues BeginDrag ausgelöst werden, damit die TDragImageList neu erstellt werden kann (Dann mit einem veränderten Image).

z.B. so:
Delphi-Quellcode:
function TTreeDragControlObject.GetDragCursor(Accepted: Boolean; X,
  Y: Integer): TCursor;
begin
  if (FPrevAccepted<>Accepted) or (FText<>FPrevText) then
    with FDragImages do
    begin
      EndDrag;
      SetDragImage(0, 0, 0);
      BeginDrag(GetDesktopWindow, x, y);
    end;
  FPrevAccepted:=Accepted;
  REsult:=inherited GetDragCursor(Accepted, x, y);
end;
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat