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 XE5: StringGrid zur Entwurfszeit füllen? (https://www.delphipraxis.net/179935-xe5-stringgrid-zur-entwurfszeit-fuellen.html)

Kralle 11. Apr 2014 18:22

XE5: StringGrid zur Entwurfszeit füllen?
 
Moin,

gibt es einen Weg ein StringGrid zur Entwurfszeit schon mit Inhalt zu füllen?
Ich suche eine Weg Parametersätze zur Entwurfszeit "einfach" einzugeben um dann zur Laufzeit darauf zuzugreifen.
Da ich zur Laufzeit durch Checkboxen und Co Parameter setze aktivieren bzw. deaktivieren will, brauche ich auch noch eine Spalte für den Status.
Zur Laufzeit würde ich das Grid dann visible=false setzen.

Alternativ könnte ich bei jeder Checkbox den Paramtersatz in eine Stringlist schreiben bzw. dort suchen und löschen - was ich nicht für praktikabel halte.

Mehrdimentionales Array hatte ich auch schon mal überlegt, bedeutet aber auch sehr viel Tipparbeit.
Ein kleine Datenbank finde ich etwas überdimensioniert.

Hättet Ihr noch eine andere Idee:?:

Gruß Heiko

Union 11. Apr 2014 18:30

AW: XE5: StringGrid zur Entwurfszeit füllen?
 
Warum verwendest Du dafür keine TObjectlist? Wenn Du da den constructor der Items bzw. das Add() geschickt aufbaust, hast Du es sehr übersichtlich.

Perlsau 11. Apr 2014 19:06

AW: XE5: StringGrid zur Entwurfszeit füllen?
 
Anzeige-Komponenten sind nicht dafür gedacht, Daten zu speichern, sondern lediglich dafür, sie darzustellen. Neben der Objektliste könntest du auch ein ClientDataSet verwenden oder einen Record-Typen deklarieren und davon eine Array-Variable anlegen. Das ClientDataSet verfügt bereits über Lade- und Speichermethoden und kommt einem Datenbank-Einsatz am Nächsten.

Alle diese Techniken incl. der Objektliste sind genau so schwer oder leicht zu erlernen und umzusezten wie eine Datenbank-Anwendung. Mit anderen Woren: Ohne Anstrengung geht's nicht.

Kralle 11. Apr 2014 19:54

AW: XE5: StringGrid zur Entwurfszeit füllen?
 
Hallo,

Zitat:

Zitat von Union (Beitrag 1255372)
Warum verwendest Du dafür keine TObjectlist? Wenn Du da den constructor der Items bzw. das Add() geschickt aufbaust, hast Du es sehr übersichtlich.

Aber, auch die TObjectlist wird zur Laufzeitgefüllt oder zur Entwurfszeit mit ".Add()".
Ich suche einen Weg zur Entwicklungszeit wie bei der TListBox wo ich über der den Objektinspektor die Daten eingeben kann.

Gruß Heiko

Kralle 11. Apr 2014 20:01

AW: XE5: StringGrid zur Entwurfszeit füllen?
 
N'abend,

Zitat:

Zitat von Perlsau (Beitrag 1255375)
Anzeige-Komponenten sind nicht dafür gedacht, Daten zu speichern, sondern lediglich dafür, sie darzustellen.

Schon klar, wäre in diesem Fall aber ein so schöner Weg gewesen.
Zitat:

Neben der Objektliste könntest du auch ein ClientDataSet verwenden.
Das ClientDataSet verfügt bereits über Lade- und Speichermethoden und kommt einem Datenbank-Einsatz am Nächsten.
Ich hatte ich auch schon dran gedacht, mit einem "TDBGrid" verbunden könnte ich zur Entwicklungszeit die Daten eingeben.

Zitat:

Alle diese Techniken incl. der Objektliste sind genau so schwer oder leicht zu erlernen und umzusezten wie eine Datenbank-Anwendung. Mit anderen Woren: Ohne Anstrengung geht's nicht.
Das ist schon klar.
Mal sehen was ich am besten umsetzen kann?

Gruß HEiko

Union 11. Apr 2014 21:34

AW: XE5: StringGrid zur Entwurfszeit füllen?
 
Sourcecode entsteht übrigens auch zur Entwicklungszeit. Die einfachste Methode wäre sicherlich die Verwendung eine Client-Datasets (Nachteil: benötigt immer noch midas.dll) oder aber eine der zahlreichen Memory-Datasets, die oft auch einen Daten-Editor mitbringen.
Noch ein Weg wäre die Verwendung einer Objectlist, für die Du Dir dann eine eigene Komponente erstellst, mit der Du die Persistenz im Formular und das Editieren regelst.

Ralf Kaiser 11. Apr 2014 22:01

AW: XE5: StringGrid zur Entwurfszeit füllen?
 
Zitat:

Zitat von Union (Beitrag 1255385)
(Nachteil: benötigt immer noch midas.dll)

Nein. Wenn man "midaslib" in die Usesliste aufnimmt muss die DLL nicht mit verteilt werden!

Kralle 13. Apr 2014 07:45

AW: XE5: StringGrid zur Entwurfszeit füllen?
 
Hallo Ralf,

Zitat:

Zitat von Ralf Kaiser (Beitrag 1255387)
Zitat:

Zitat von Union (Beitrag 1255385)
(Nachteil: benötigt immer noch midas.dll)

Nein. Wenn man "midaslib" in die Usesliste aufnimmt muss die DLL nicht mit verteilt werden!

Diese Info habe ich sofort umgesetzt.
Danke.

Heiko


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