![]() |
den Inhalt eines StringGrid in einem Memo speichern?
Hallo
Wie kann man den Inhalt eine StringGrid in einem Memo speichern? Das StringGrid hat 7 Spalten und beliebig viele Zeilen. Gruß Klaus |
Re: den Inhalt eines StringGrid in einem Memo speichern?
Hallo,
man muss unterscheiden, ob man fixe Zeilen oder Spalten im Grid hat, und ob diese ggf. mit ins Memo übernommen werden sollen, oder nicht. Ein Weg (kommasepariert, Zeile für Zeile) wäre bspw. folgender:
Delphi-Quellcode:
Aufruf für Übertrag mit fixen Zeilen/Spalten (unabhängig davon, ob vorhanden oder nicht)
Procedure Grid2Memo(oGrid: TStringGrid; oMemo: TMemo; bFixedCells: Boolean = False);
Var i, j: Integer; sTemp: String; Begin sTemp := ''; //wenn fixe Zeilen oder Spalten If ((oGrid.FixedCols > 0) Or (oGrid.FixedRows > 0)) And Not bFixedCells Then Begin //Zelle für Zelle durchgehen und fixe Zellen ignorieren For i := oGrid.FixedRows To oGrid.RowCount - 1 Do Begin sTemp := ''; For j := oGrid.FixedCols To oGrid.ColCount - 1 Do Begin sTemp := sTemp + IntToStr(j) + ':' + IntToStr(i) + ',' End; //letzten Separator löschen Delete(sTemp, Length(sTemp), 1); //Zeile dem Memo hinzufügen oMemo.Lines.Add(sTemp); End; //keine fixen Spalten oder Zeilen oder wenn diese explizit mit übertragen werden sollen (bFixedCells) End Else Begin //Zeile für Zeile durchgehen For i := oGrid.FixedRows To oGrid.RowCount - 1 Do Begin //und komplett ans Memo übergeben (z.B. kommasepariert) oMemo.Lines.Add(oGrid.Rows[i].CommaText); End; End; End;
Delphi-Quellcode:
Aufruf für Übertrag ohne fixe Zeilen/Spalten (unabhängig davon, ob vorhanden oder nicht)
Procedure TForm1.Button1Click(Sender: TObject);
Begin Grid2Memo(StringGrid1, Memo1, True); End;
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Begin Grid2Memo(StringGrid1, Memo1, False); //'False' kann hier auch weggelassen werden, da Defaultwert End; |
Re: den Inhalt eines StringGrid in einem Memo speichern?
Zitat:
Vielen Dank für Deine Mühe, klappt wunderbar. Hast Du auch sehr gut beschrieben. Grüß Klaus PS. Sorry, konnte erst heute testen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 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