Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Tabelle (Grid) Beratung (https://www.delphipraxis.net/193099-tabelle-grid-beratung.html)

A.Griffin 20. Jun 2017 08:12

Tabelle (Grid) Beratung
 
Ich möchte eine Tabelle anlegen mit 9 Spalten. Die Spalten sollen feste Überschriften haben. Ich möchte den Inhalt der Tabelle in Runtime bearbeiten können, Zeilen löschen und hinzufügen können und den Inhalt in einer Datei abspeichern und laden können. Welche Grid nehme ich da am besten? TStringGrid, TDBGrid oder total was anderes?

SneakyBagels 20. Jun 2017 09:15

AW: Tabelle (Grid) Beratung
 
Ich bin ja total der Fan von ListView-Komponenten.
Wäre das keine Alternative? Die Daten einer ListView kann man wunderbar abspeichern und laden.

A.Griffin 20. Jun 2017 09:21

AW: Tabelle (Grid) Beratung
 
*edit*

Gibt einen empfohlenen Guide dazu?

mkinzler 20. Jun 2017 09:23

AW: Tabelle (Grid) Beratung
 
Mit ViewStyle vsReport ist die Darstellung dann auch in Gridform.

Oder noch besser (allerdings mit etwas Einarbeitungsaufwand) wäre ein VirualTreeView

SneakyBagels 20. Jun 2017 09:26

AW: Tabelle (Grid) Beratung
 
Zitat:

Oder noch besser (allerdings mit etwas Einarbeitungsaufwand) wäre ein VirualTreeView
Da stimme ich auch zu. Ginge nicht auch ein VirtualStringTree? Kenne den Unterschied nicht.

A.Griffin 20. Jun 2017 09:39

AW: Tabelle (Grid) Beratung
 
Wie speichere ich dann die Listview in eine Datei? Hat es schon eine Methode?

SneakyBagels 20. Jun 2017 09:43

AW: Tabelle (Grid) Beratung
 
Man geht Zeile für Zeile und Spalte für Spalte durch und baut sich so seine eigene Datei auf.
Ich speichere alles in einer Ini-Datei ab. Aber bei mir ist das etwas anders. Ich speichere die Daten direkt nach Erstellung und nicht erst am Ende "Zeile für Zeile/Spalte für Spalte".

A.Griffin 20. Jun 2017 09:45

AW: Tabelle (Grid) Beratung
 
Wenn ich jetzt eine Tabelle damit aufbaue (ich füge ja über Items und Subitems Sachen ein) wie kann ich dann bei Laufzeit da einfach den Inhalt bearbeiten? Geht das so einfach?

SneakyBagels 20. Jun 2017 09:50

AW: Tabelle (Grid) Beratung
 
Indem du einfach auf die Caption eines Items oder die SubItems eines Items zugreifst und den Text änderst.
Das ist aber angeblich schlechter Stil. Ich habs trotzdem viele Jahre so gemacht und nie Probleme gehabt.

Delphi-Quellcode:
// z.B.
ListView1.Items[2].Caption := 'Neue Caption für Item 3';
ListView1.Items[2].SubItem[0] := 'Neue Caption für SubItem 1 von Item 3';

A.Griffin 20. Jun 2017 09:57

AW: Tabelle (Grid) Beratung
 
Ich möchte in die Tabelle klicken und die Einträge ändern können.

*edit*

Ich habe es gerade probiert. Man kann die Caption ändern aber nicht die SubItems.

mkinzler 20. Jun 2017 10:13

AW: Tabelle (Grid) Beratung
 
Schau Dir mal den VirtualTreeView (VirtualStringTree) an. Ist egentlich auch ein ListView. Er bietet ausgezeichnete Unterstützung bei der virtuellen Datenhaltung ( Streaming; Speicherung nicht in der Komponente; Laden bei Bedarf) und bei der Möglichkeit induviduelle Bearbeitungsmöglichkeiten auf Zellenebene zu implementieren (Editoren).

http://www.soft-gems.net/index.php/c...rtual-treeview
https://www.jam-software.de/virtual-...ew/index.shtml

https://github.com/Virtual-TreeView/Virtual-TreeView

SneakyBagels 20. Jun 2017 10:18

AW: Tabelle (Grid) Beratung
 
Ich habe noch nie ein echtes Grid ausprobiert, weil die einfach hässlich aussehen. Aber ich glaube diese Funktionalität bietet ein normales Grid.
Ich würde aber auch ein VirtualStringTree nehmen. Ist zwar super kompliziert wie ich finde, die Möglichkeiten damit sind aber deutlich umfangreicher.

rapante 20. Jun 2017 10:24

AW: Tabelle (Grid) Beratung
 
Wenn die Tabelle nicht zu groß wird, würde ich ein schnödes StringGrid nehmen.
Da hast du dann auch direkt .SavetoFile und .LoadFromFile.

A.Griffin 20. Jun 2017 10:38

AW: Tabelle (Grid) Beratung
 
Ich habe jetzt StringGrid genommen. Es gibt auch da kein .SaveToFile und .LoadFromFile aber ich habe das selbst geschrieben. Eine neue Zeile hinzufügen habe ich jetzt auch. Es fehlt nur noch "Zeile löschen", entweder einfach letzte Zeile löschen oder selektierte.

SneakyBagels 20. Jun 2017 10:42

AW: Tabelle (Grid) Beratung
 
Zitat:

aber ich habe das selbst geschrieben.
Ist auch besser so denn dann hat man sein eigenes Format.

rapante 20. Jun 2017 10:45

AW: Tabelle (Grid) Beratung
 
Zitat:

Zitat von A.Griffin (Beitrag 1374957)
Es gibt auch da kein .SaveToFile und .LoadFromFile aber ich habe das selbst geschrieben.

Ah Sorry, das gibt's im AdvStringgrid (von TMS) und in meiner eigenen Ableitung von StringGrid ;).

A.Griffin 20. Jun 2017 10:51

AW: Tabelle (Grid) Beratung
 
Ok Zeile löschen habe ich jetzt auch hinbekommen. Wenn noch Fragen aufkommen melde ich mich hier wieder. Vielen Dank für die vielen Antworten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz