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/)
-   -   Prism TStringGrideinträge in Ini-Datei speichern (https://www.delphipraxis.net/84098-tstringgrideintraege-ini-datei-speichern.html)

LOMBI 11. Jan 2007 10:40


TStringGrideinträge in Ini-Datei speichern
 
Hallo,

mit folgender Procedure schreibe ich die Daten in eine Ini-Datei. Das StringGrid erhält die
Einträge aus einer DB, die über eine Query mit einer Form DetailAdr und TEdits verbunden ist.

Delphi-Quellcode:
procedure TFormAdrListe.FormClose(Sender: TObject; var Action: TCloseAction);
var
  Ini: TIniFile;
begin
  with GridAdr, QueryAdr, FormDetailAdr do
  begin
  Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+ 'GridAdrListe.Ini');
  try
  Ini.WriteString('GridAdrListe', 'NName', FieldByName('NName').AsString);
  Ini.WriteString('GridAdrListe', 'VName', FieldByName('VName').AsString);
  ...
  finally
  Ini.Free;
  end;
Problem:

In der Ini-Datei wird nur eine Zeile aus dem StringGrid gespeichert und im onCreate
ausgelesen. Wie bitte lassen sich alle Zeilen des StringGrid in einer Ini erfassen?

Vielen Dank für Hilfe!

Gruß
Lombi

Tormentor32 11. Jan 2007 10:44

Re: TStringGrideinträge in Ini-Datei speichern
 
siehe dieser thread

klick

marabu 11. Jan 2007 11:04

Re: TStringGrideinträge in Ini-Datei speichern
 
Hallo Lombi,

wenn nur ein Satz gespeichert wird, dann sicher weil du keine Schleife verwendest. Kannst du kurz erklären, warum du deine Daten über eine Query aus einer Datenbank in dein StringGrid holst, um sie dann beim Programmende in einer INI-Datei zu speichern?

Freundliche Grüße

LOMBI 11. Jan 2007 12:01

Re: TStringGrideinträge in Ini-Datei speichern
 
In die DB speichere ich mit den TEdits auf der Form DetailAdr. Weil ich für meine Listenanzeige ein
TStringGrid verwende, müssen dort nach Programmende die Adressen erhalten bleiben. Oder sollte ich
für meine Datenbankanwendung doch besser auf das TStringGrid verzichten und für Listen ein DBGrid verwenden? Nachteile?

In der Zwischenzeit habe ich es übrigens geschafft, mehrzeiligen Text in die Ini zu schreiben.
Nach onCreate und einem neuen Datensatz wird allerdings die erste Zeile im Grid einfach
überschrieben. Wie setze ich bitte den Focus auf die letzte Zeile im Grid?

Gruß
Lombi

Hansa 11. Jan 2007 12:06

Re: TStringGrideinträge in Ini-Datei speichern
 
Bleib schön beim Stringgrid. Allerdings stellt sich für mich die gleiche Frage wie für Marabu. Wieso DB und parallel noch eine INI ? :shock:

LOMBI 11. Jan 2007 14:25

Re: TStringGrideinträge in Ini-Datei speichern
 
Die Daten aus meiner Adressen.DB können doch nicht ohne weiteres in ein TStringGrid geladen werden?
Dafür eben die Eingabeform DetailAdr für das Speichern in der DB. Anschließend werden die Einträge in das TStringGrid per onDrawCell vorgenommen.

SaFu 11. Jan 2007 14:33

Re: TStringGrideinträge in Ini-Datei speichern
 
Hiermit Kannst du sämtliche Spallten und zeilen Speichern

Delphi-Quellcode:
procedure TForm7.Button2Click(Sender: TObject);
var Sl:TStringlist;
    x,y:integer;
    fn: TFileName;
begin
  fn:= (Datei);
  Sl:=TStringlist.Create;
  Sl.Add(IntToStr(StringGrid1.Colcount));
  Sl.Add(IntToStr(StringGrid1.Rowcount));
for x:=0 to StringGrid1.ColCount-1 do
for y:=0 to StringGrid1.RowCount-1 do
  Sl.Add(StringGrid1.Cells[x,y]);
for x:=0 to StringGrid1.ColCount-1 do
  Sl.Add(IntToStr(StringGrid1.ColWidths[x]));
for x:=0 to StringGrid1.RowCount-1 do
  Sl.Add(IntToStr(StringGrid1.RowHeights[x]));
  Sl.Add(IntToStr(StringGrid1.Clientwidth));
  Sl.Add(IntToStr(StringGrid1.Clientheight));
  Sl.Add(IntToStr(Ord(StringGrid1.ScrollBars)));
  Sl.Savetofile(Datei);
  Sl.Free;
  Showmessage(Datei);
end;
Hoffe es Klappt und ist das was du suchst

Hansa 11. Jan 2007 17:42

Re: TStringGrideinträge in Ini-Datei speichern
 
Zitat:

Zitat von LOMBI
Die Daten aus meiner Adressen.DB können doch nicht ohne weiteres in ein TStringGrid geladen werden?

Wieso nicht ? Natürlich geht das ohne Umweg über DBGrid.

SaFu 11. Jan 2007 19:34

Re: TStringGrideinträge in Ini-Datei speichern
 
das funktioniert mit query das laden aus der DB schon in ein Normals StringGrid

Hansa 11. Jan 2007 19:53

Re: TStringGrideinträge in Ini-Datei speichern
 
Zumindest bitte mal versuchen, diesen Satz mit deutscher Grammatik neu zu formulieren. Verstehe ihn so nicht. 8) Bei dem Wort "query" ist Borland auch so was passiert. Die hätten das besser gleich in TDataset umbenannt, wenn sie schon die BDE abschaffen wollten. Jetzt muss man jedem BDE-gewöhnten erklären, er solle TDataset benutzen und nicht die BDE-Altlasten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr.

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