![]() |
StringGrid
Hallo Leute,
wer kann mir sagen,ob es eine Möglichkeit gibt,die Spalten- bzw. Zeilenanzahl einer Stringgrid dynamisch zu ändern,in Abhängigkeit eines einzulesenden arrays ? :( |
Re: StringGrid
Also ich weiss net wies mit dme Array ist, aber um ein Stringgrid in der Zeilenanzahl zu verändern, wenn man auf die letzte Zeile klickt hab ich das so gemacht:
Delphi-Quellcode:
Is ja eigentlich das gleiche, nur dass du dann das mit deinem Array verknuepfen musst
procedure TfmMainform.sgScheineSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean); begin If (ARow=sgScheine.RowCount-1) then sgScheine.RowCount:=ARow+2 end; mfg Kiste |
Re: StringGrid
Also ein StringGrid hat die Eigenschaften ColCount und RowCount für die Spalten- und Zeilenanzahl. Diese kann man auch zur Laufzeit ändern und somit an zweidimensionale Arrays anpassen.
MfG Binärbaum |
Re: StringGrid
Hallo Kiste, hallo Binärbaum
wie ich Spalten bzw. Zeilen während der Laufzeit hinzufügen kann, ist mir bekannt. Siehe Programmcode: procedure TAuswertung.Button3Click(Sender: TObject); var Row,NewRow: Integer; begin NewRow:= 1; Stringgrid2.RowCount:= Stringgrid2.RowCount+1; for Row:= Stringgrid2.RowCount-1 downto NewRow do Stringgrid2.Rows[Row].Assign(Stringgrid2.Rows[Row-1]); Stringgrid2.Rows[NewRow-1].Text:= ''; end; Daß ich Zeilen- und Spaltenzahl vordefinieren kann ist mir bekannt. Ich speichere den Inhalt anschließend in ein Excel-File ab. Wenn ich nun den Inhalt meines Excel_Files(array) in ein anderes StringGrid mit vordefinierten Spalten- bzw. Zeilenzahl speichern möchte,so werden nur die vorhandenen Spalten bzw. Zeilen genutzt. Wie läßt sich das ändern ? MfG allarich |
Re: StringGrid
Wenn du ein mehrdimensionales Array hast muesstest du dann ertmal die Länge der Zeilen bekommen:
Delphi-Quellcode:
Danach muesstest du von jeder "Zeile" im Array die größe herausfinden und die größte Spalte speichern.
zeilen:=Length(myArray);
Delphi-Quellcode:
So und dann musste die Werte nurnoch an das Stringgrid anpassen:
maxSpalte:=0;
for i:=0 to zeilen-1 do begin if length(myArray[i])>maxSpalte then maxSpalte:=length(myArray[i]); end;
Delphi-Quellcode:
Ich denke, das sollte klappen
Stringgrid2.RowCount:=zeilen;
Stringgrid2.ColCount:=maxSpalte; mfg Kiste ;) |
Re: StringGrid
Hallo Kiste,
danke für deinen Tip ! Ich denke, so müßte es gehen. Werde es gleich nachher probieren !!!! :coder2: MfG allarich |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:53 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