![]() |
DragDrop in eigenen Komponenten
Ich kenne mich mit DragDrop leider noch gar nicht aus. Ich habe ein eigenes TMyGrid geschrieben, das ein Gitter darstellt und bei dem einzelne Zeilen vom Nutzer selektierbar sind und hervorgehoben werden.
Ich würde jetzt gerne ermöglichen, dass der Nutzer die selektierte Zeile per DragDrop ziehen kann und somit die Reihenfolge der Zeilen innerhalb meines eigenen TMyGrid-Objekts ändern kann. Da ich weiß, welche Zeile aktuell selektiert ist und ich auch die neuen Koordinaten beim Drop erhalte, kann ich dies theoretisch leicht umsetzen. PROBLEM: Sobald ich aber in Create "DragMode := dmAutomatic" setze, kommen bei meiner Komponente gar keine MouseUp-Events mehr an. Man kann gar keine Zeile mehr selektieren, weil jeder Click sofort zum Beginn des DragDrop führt. Das DragDrop wird korrekt ausgeführt (ShowMessage) und auch DragOver wird ausgeführt (Accept := False verhindert das DragDrop). FRAGE: Wie kann ich DragDrop so nutzen, dass es einerseits möglich ist, andererseits aber nicht MouseUp- und DblClick-Events verhindert? Geht doch auch in anderen Komponenten? Was habe ich noch nicht verstanden?
Code:
TMyGrid = class(TCustomControl) protected procedure DragDrop(Source: TObject; X, Y: Integer); override; procedure DragOver(Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); override; procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override; public constructor Create(AOwner : TComponent); override; end; procedure TMyGrid.DragDrop(Source: TObject; X, Y: Integer); begin ShowMessage('dropped'); end; procedure TMyGrid.DragOver(Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := True; end; constructor TMyGrid.Create(AOwner: TComponent); begin inherited; DragMode := dmAutomatic; end; |
AW: DragDrop in eigenen Komponenten
Starte Drag von Hand:
Delphi-Quellcode:
BeginDrag(False, 8);
|
AW: DragDrop in eigenen Komponenten
Wow. Affengeil.
Vielen Dank für die schnelle Antwort. Es klappt! |
AW: DragDrop in eigenen Komponenten
Waren nicht sogar ein paar Demos dazu im Delphi gleich mit dabei?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz