![]() |
Anfängerfrage, TStringGrid - Rows[Row]
Moin, moin,
ich versuche gerade mein Wissen zu erweitern und wie ich im Forum schon gesehen habe ist wohl das StringGrid ein leidiges Thema. :zwinker: Dachte ich mir also ran an den Speck und frimmelte gestern und heute Abend dran rum, mein tolles Delphi7-Buch (von W.Doberenz&T.Kowalski) hatte mir auch verraten dass man mit: "Rows[i] ... Zugriff auf den Inhalt einr kompletten Zeile" erhält. Weiter fand ich mit der Offlinehilfe folgendes:
Delphi-Quellcode:
Somit bekomme ich wohl eine Liste von TStrings, zumindest verstehe ich das so. Damit müsste ich also mit:
property Rows[Index: Integer]: TStrings;
Delphi-Quellcode:
doch die Stringliste von Rows an MeineTStringListe übergeben oder nicht?
MeineTStringListe := TStringList.Create;
MeineTStringListe := Rows[Row]; // Übergabe an MeineTStringliste .. do something ... MeineTStringListe.free; Somit könnte ich zum auslesen der Zeile, die ganze Zeile als StringListe geben lassen und mich dann drauf stürzen wie ich auf einzelne Elemente einer TStringListe zugreife. Kann mir einer vielleicht erklären wo ich meinen Gedankenfehler habe? Gruß Ma.Ge |
Re: Anfängerfrage, TStringGrid - Rows[Row]
Vielleicht eine Schleife nehmen und alle Zeilen einzeln übergeben ?
|
Re: Anfängerfrage, TStringGrid - Rows[Row]
Geht das nicht eleganter anstatt mit einer Schleife alles mühsam durch zugehen?
Kann nicht der Inhalt von Objekt A an B zugewiesen werden? Gruß Ma.Ge |
Re: Anfängerfrage, TStringGrid - Rows[Row]
Hiermit kannst du du alle Spalten und Zeilen an die StringList überegeben
Delphi-Quellcode:
Vertrpl:= TStringlist.Create; // Stringliste erzeugen
Vertrpl.Add(IntToStr(StringGrid1.Colcount)); Vertrpl.Add(IntToStr(StringGrid1.Rowcount)); for x:= 0 to StringGrid1.ColCount-1 do for y:= 0 to StringGrid1.RowCount-1 do Vertrpl.Add(StringGrid1.Cells[x,y]); for x:= 0 to StringGrid1.ColCount-1 do Vertrpl.Add(IntToStr(StringGrid1.ColWidths[x])); for x:= 0 to StringGrid1.RowCount-1 do Vertrpl.Add(IntToStr(StringGrid1.RowHeights[x])); Vertrpl.Add(IntToStr(StringGrid1.Clientwidth)); Vertrpl.Add(IntToStr(StringGrid1.Clientheight)); Vertrpl.Add(IntToStr(Ord(StringGrid1.ScrollBars))); |
Re: Anfängerfrage, TStringGrid - Rows[Row]
Hi,
be careful with that axe, Eugene Ma. Zitat:
Delphi-Quellcode:
Grüße vom marabu
var
sl: TStrings; begin // Referenz übernehmen with StringGrid do begin Cells[Col, Row] := 'Hokus'; sl := Rows[Row]; Cells[Col, Row] := 'Pokus'; ShowMessage(sl[Col]); end; // Daten übernehmen with StringGrid do begin sl := TStringList.Create; Cells[Col, Row] := 'Hokus'; sl.Assign(Rows[Row]); Cells[Col, Row] := 'Pokus'; ShowMessage(sl[Col]); sl.Free; end; end; |
Re: Anfängerfrage, TStringGrid - Rows[Row]
Zitat:
Wenn ich das Richtig verstehe, kann man mit Referenzübernahme den Inhalt der Row gleich ändern ohne diesen wieder an der Stelle zurückschreiben zu müssen? Wenn ja, wäre das ja praktisch, ich würde die 'Orginaldaten' sozusagent dirket verändern ohne, eine procedure zu schreiben die die veränderten Daten an der Stelle der Orginaldaten schreibt. Wenn ich das jetzt richtig verstanden habe macht OOP ja richtig Spass :dp: Gruß Ma.Ge |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:42 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 by Thomas Breitkreuz