Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi StringGrid (https://www.delphipraxis.net/41964-stringgrid.html)

allarich 11. Mär 2005 10:31


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 ? :(

Kiste 11. Mär 2005 10:40

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:
procedure TfmMainform.sgScheineSelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  If (ARow=sgScheine.RowCount-1) then sgScheine.RowCount:=ARow+2
end;
Is ja eigentlich das gleiche, nur dass du dann das mit deinem Array verknuepfen musst


mfg Kiste

Binärbaum 11. Mär 2005 13:12

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

allarich 11. Mär 2005 13:35

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

Kiste 11. Mär 2005 14:19

Re: StringGrid
 
Wenn du ein mehrdimensionales Array hast muesstest du dann ertmal die Länge der Zeilen bekommen:

Delphi-Quellcode:
zeilen:=Length(myArray);
Danach muesstest du von jeder "Zeile" im Array die größe herausfinden und die größte Spalte speichern.

Delphi-Quellcode:
maxSpalte:=0;
for i:=0 to zeilen-1 do
 begin
  if length(myArray[i])>maxSpalte then
   maxSpalte:=length(myArray[i]);
 end;
So und dann musste die Werte nurnoch an das Stringgrid anpassen:

Delphi-Quellcode:
Stringgrid2.RowCount:=zeilen;
Stringgrid2.ColCount:=maxSpalte;
Ich denke, das sollte klappen

mfg Kiste ;)

allarich 11. Mär 2005 14:27

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 16:12 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