Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Uwe Raabe,
4. Sep 2018
Offenbar lässt sich das Desktop-Verhalten mit einem normalen ListView nicht exakt nachbilden (zumindest ist mir das nicht gelungen).
Knackpunkt ist das Wrapping der Spalten, wenn ein Item in die Spalte verschoben wird. Der Desktop führt das Wrapping korrekt durch, lässt aber alle Items außerhalb der belegten Spalten an ihrem Platz. Beim ListView macht ein Arrange(arSnapToGrid) aber kein...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Uwe Raabe,
4. Sep 2018
Sollen die Items in die Grid-Positionen einrasten, muss man den Code etwas ergänzen:
var
CurrentItem: TListItem;
lvw: TListView;
begin
if Sender = Source then begin
lvw := TListView(Sender);
CurrentItem := lvw.Selected;
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Uwe Raabe,
4. Sep 2018
Warum so kompliziert? Nimm dein Demo-Projekt und ersetze den OnDragDrop-Event mit diesem Code (die LVM_ARRANGE Message im FormCreate kannst du weglassen):
var
CurrentItem: TListItem;
begin
if Sender = Source then begin
CurrentItem := TListView(Sender).Selected;
if CurrentItem <> nil then begin
CurrentItem.SetPosition(Point(X, Y));
end;