Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Harry Stahl,
5. Mai 2016
Also, mir ist da kein spezieller Befehl zum Verschieben bekannt (Listview.exchange funktioniert nicht mit ListviewItems).
Du musst es also selber erledigen:
procedure TForm19.ListView1DragDrop(Sender: TObject; const Data: TDragObject;
const Point: TPointF);
var
obj: IControl;
idx, add: Integer;
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Harry Stahl,
5. Mai 2016
Ja, hatte hier schon mal eine Frage beantwortet. Ging zwar um Drag & Drop von Items zwischen zwei Listviews, ist aber alles dabei, was Du brauchst:
http://www.delphipraxis.net/187248-drag-drop-mit-zwei-fmx-listview.html
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Harry Stahl,
5. Mai 2016
Ich habe meine beiden weiter oben gemachten Vorschläge mal umgesetzt und hab somit Deinen Beispielcode etwas geändert und im Painting-Event Source eingefügt, der die Bitmaps quasi "on the fly" erzeugt.
Maximal leben immer nur 60 Bitmaps zur gleichen Zeit, abhängig von der Variable Range, die Du halt bei Bedarf ändern kannst. Der Speicher wird also kaum belastet.
So wird die Liste quasi ohne...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Harry Stahl,
3. Mai 2016
Oder: man erzeugt z.B., erst mal die ersten 20 Bitmaps für die ersten ListViewItems. Dann reagiert man auf das ändern des aktuellen Indexes und erzeugt eine entsprechende Anzahl von Bitmaps für die ListViewItems davor und dahinter (soweit noch nicht vorhanden).
Das ist eine gängige Technik, wie man das z.B. beim Rendern von PDF-Seiten anwendet.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Harry Stahl,
3. Mai 2016
Dann bliebe evtl.noch die Option, die Bitmap nicht für die einzelnen Listview-Items zu erzeugen, sondern nur im Onpaint-Event zu zeichnen. Wenn ich das richtig in Erinnerung habe, gibt es aber kein Paint-Event für die einzelnen List-Items, man müsste also selber berechnen, welche Listview-Items gerade sichtbar wären und wo was beim OnPaint-Event der Listview zu zeichnen wäre.
Leider muss ich...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Harry Stahl,
3. Mai 2016
Also normalerweise erstellt FMX die Objekte erst dann, wenn sie angezeigt werden sollen und verwirft sie wieder, wenn sie außer Sicht sind. So ist das zumindest beim Grid, aber ich gehe davon aus, dass es bei der Listview entsprechend ist. Teste es doch einfach einmal aus.