AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi den Inhalt eines StringGrid in einem Memo speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

den Inhalt eines StringGrid in einem Memo speichern?

Ein Thema von Code · begonnen am 30. Jan 2008 · letzter Beitrag vom 31. Jan 2008
Antwort Antwort
Code

Registriert seit: 24. Aug 2007
Ort: Bochum
167 Beiträge
 
Delphi 2007 Professional
 
#1

den Inhalt eines StringGrid in einem Memo speichern?

  Alt 30. Jan 2008, 14:41
Hallo

Wie kann man den Inhalt eine StringGrid in einem Memo speichern? Das StringGrid hat 7 Spalten und beliebig viele Zeilen.

Gruß
Klaus
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#2

Re: den Inhalt eines StringGrid in einem Memo speichern?

  Alt 30. Jan 2008, 16:33
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:
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;
Aufruf für Übertrag mit fixen Zeilen/Spalten (unabhängig davon, ob vorhanden oder nicht)
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
   Grid2Memo(StringGrid1, Memo1, True);
End;
Aufruf für Übertrag ohne fixe Zeilen/Spalten (unabhängig davon, ob vorhanden oder nicht)
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
   Grid2Memo(StringGrid1, Memo1, False); //'False' kann hier auch weggelassen werden, da Defaultwert
End;
  Mit Zitat antworten Zitat
Code

Registriert seit: 24. Aug 2007
Ort: Bochum
167 Beiträge
 
Delphi 2007 Professional
 
#3

Re: den Inhalt eines StringGrid in einem Memo speichern?

  Alt 31. Jan 2008, 13:09
Zitat von s-off:
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......
Hi.
Vielen Dank für Deine Mühe, klappt wunderbar. Hast Du auch sehr gut beschrieben.

Grüß
Klaus

PS. Sorry, konnte erst heute testen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 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