Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi StringGrid Spalte zu lang... (https://www.delphipraxis.net/88505-stringgrid-spalte-zu-lang.html)

Tim Henford 16. Mär 2007 13:02


StringGrid Spalte zu lang...
 
Hallo,

ich möchte die Daten einer Datenbank aus einem DBGrid in ein StringGrid tansferieren, um diese dann offline bearbeiten, speichern und lesen zu können.
Hab die Daten in einem StringGrid und laden-speichern hab ich wie hier gelöst:

Aber da scheinen zu viele Spalten drin zu sein, um das alles in eine Zeile in einer Datei zu speichern, denn er macht dann immer eine neue und dann kommt das ganze StringGrid beim Laden durcheinander.

Was könnte man da machen?

ibp 16. Mär 2007 13:12

Re: StringGrid Spalte zu lang...
 
das problem ist,dass du in den zellen sicherlich den seperator hast, damit wird die zelle dann geteilt!

schau dir mal in der oh den beitrag zum commatext an!

Tim Henford 16. Mär 2007 23:17

Re: StringGrid Spalte zu lang...
 
Hab jetzt festgestellt, dass der Zeilenumbruch durch das Übernehmen des Inhalts eines Memos kommt.
Also es ist mehrzeilig und das wird so in die Tabelle übernommen und natürlich so in die Datei hinterlegt.

Was kann ich denn da machen? Wie filtere ich das heraus bzw. kann ich das irgendwie ersetzen?

Danke

marabu 17. Mär 2007 07:22

Re: StringGrid Spalte zu lang...
 
Hallo Tim,

Grids sind für die Behandlung von einzeiligen Texten ausgelegt, sowohl was die Anzeige betrifft, als auch das Bearbeiten. Für die Bearbeitung (Edit) wird ein inplace editor verwendet - im Prinzip ein Edit-Control, welches an der gerade benötigten Stelle eingeblendet wird. Entweder du treibst einigen Aufwand um mehrzeilige Daten in einem Grid anzeigen und bearbeiten zu können oder du machst Kompromisse.

Ein häufig zu beobachtender Kompromiss ist: Die Spalte mit mehrzeiligen Texten zeigt nur die erste nicht leere Textzeile und einen Hinweis auf weiteren Inhalt an, ist aber nicht direkt editierbar. Zum Ändern wird der Text der aktuellen Grid-Zeile in ein Memo geladen.

Es sind viele andere Kompromisse denkbar.

Freundliche Grüße

Tim Henford 17. Mär 2007 08:42

Re: StringGrid Spalte zu lang...
 
Danke.
Hm, das ist natürlich schade.
Ist es denn vielleicht möglich dieses #13#10 oder \n "Sonderzeichen" mit pos() oder so zu ermitteln in der Spalte und dann eventuell gegen ein sichtbares in der Datei zu ersetzen, sodass alles in einer Zeile steht und dann dieses Sonderzeichen beim Laden wieder gegen #13#10 umzuwandeln?

EDIT>>
Alles klar, StringReplace & pos haben funktioniert...

ibp 17. Mär 2007 09:26

Re: StringGrid Spalte zu lang...
 
Hallo Tim,

schau doch mal bei sdc nach...
TMemo mit einer StringGrid-Zelle kombinieren


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