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 DBGrid mit Listen statt Datenbank? (https://www.delphipraxis.net/131603-dbgrid-mit-listen-statt-datenbank.html)

SteffenSchm 27. Mär 2009 07:42


DBGrid mit Listen statt Datenbank?
 
Hallo alle zusammen,

ich habe bei meinen Projekt die Daten in Listen gespeichert. Zum Editieren der Listen möchte ich eine Grid-Komponente einsetzen. Die Anforderungen an diese sind etwa folgende:

- Datenspezifische Inplace-Editoren für Float, Integer, Text, Boolean, Pickuplisten...
- Navigieren durch das Grid mittels Pfeiltasten und Tabulator
- Die Anzahl der Zeilen sollte der Anzahl der Listeneinträge entsprechen
- Mit Pfeil-nach-Unten-Taste in der letzten Zeile soll eine neue Zeile eingefügt werden
- Erst nach freigegebener Eingabe in dieser Zeile soll eine weiter Zeile anhängbar sein
- Am Anfang ist die Liste leer, es sollte aber eine leere Zeile angezeigt werden, deren Inhalt aber erst nach freigegebener Eingabe in der Liste gespeichert werden soll
- Die aktuell editierte Zeile soll in der ersten Zeile gekennzeichnet werden
- Eine ganze Zeile soll markiert werden können (um sie zu kopieren oder löschen)
- die Daten sollen möglichst nicht doppelt im Speicher stehen (Ich glaube dan ist eine Ableitung von Drawgrid sinnvoller)

Ich habe schon etwas mit dem Grids der JVCL und mit VirtualTreeView rumgespielt, aber eigentlich suche ich etwas, das wie TDBGrid arbeitet nur ohne Datenbank.

Kann man die Datenbankaufrufe im DBGrid durch Listenaufrufe ersetzen?
Gibt es eine in diese Richtung abgewandelte Komponente schon?
Was würdet Ihr empfehlen?

[edit=SirThornberry]Titel korrigiert - Mfg, SirThornberry[/edit]

Bernhard Geyer 27. Mär 2009 07:48

Re: DBGrid mit Listen satt Datenbank?
 
Es gibt sowas schon. Stichwort ist hier Memory Table. Diverse Komponentenhersteller (AFAIK DevArt) bietet sowas zu seinen Zugriffskompos an. Alternativ könnt man auch mit ADO versuchen eine Disconnected Dataset aufzubauen. Da meine letzten Programmierungen mit sowas schon ca. 8 Jahre her sind kann ich dir hier auch keine Codefragmente mehr liefern.

SteffenSchm 27. Mär 2009 08:14

Re: DBGrid mit Listen satt Datenbank?
 
Hallo Bernhard,

wenn ich das richtig verstehe müsste ich extra ein MemoryTable (also eine Datenbankstruktur im Hauptspeicher) anlegen um die DBGrid-Komponente nutzen zu können. Daran hatte ich auch schon gedacht - aber ist es nicht der falsche Ansatz die Datenstruktur zu ändern nur um einen Komponente nutzen zu können?

Bernhard Geyer 27. Mär 2009 08:23

Re: DBGrid mit Listen satt Datenbank?
 
Die TDBGrid-Kompo erwartet nun mal einen TDataset-Kompatible Datenquelle. Du kannst natürlich selbst versuche eine solche zu schreiben um deine Quelldaten direkt verwenden zu können.

alzaimar 27. Mär 2009 08:52

Re: DBGrid mit Listen satt Datenbank?
 
Auf Torry gibt es einige Komponenten, die Dir ein virtuelles TDataset zur Verfügung stellen, über das du z.B. eine Objekt-Liste bzw. die einzelnen Objekte mit Hilfe datensensitiver Elemnte bearbeiten kannst. Du gibst nur die Felder vor und implementierst für jedes Feld die Lese- und Schreibanweisungen.

Ein In-Memory Dataset (Memory Table) geht auch, ist aber imho umständlicher.

SteffenSchm 27. Mär 2009 09:33

Re: DBGrid mit Listen satt Datenbank?
 
Bernhard schrieb:

Zitat:

Du kannst natürlich selbst versuche eine solche zu schreiben um deine Quelldaten direkt verwenden zu können.
Ich hatte gehofft, dass das schon mal jemend probiert hat und es vielleicht schon eine Lösung dafür gibt.

Alzaimar:

Weisst Due vieleicht wie die Kompo auf Torry heisst?

mschaefer 27. Mär 2009 11:13

Re: DBGrid mit Listen satt Datenbank?
 
Moin, moin,

Zitat:

Zitat von alzaimar
Auf Torry gibt es einige Komponenten, die Dir ein virtuelles TDataset zur Verfügung stellen.

Wleche zum Beispiel? Die Suche nach TDataSet brachte da keinen Treffer...

Grüße // Martin


PS: Hat sich erledigt. Zum Beispiel ObjectDataset. Muß ich mir mal genauer anschauen..

mikhal 27. Mär 2009 11:48

Re: DBGrid mit Listen statt Datenbank?
 
Schau dir mal die kostenlosen VirtualTable-Komponenten von DevArt an.

Grüße
Mikhal


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:22 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