Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Dynamisches Array mit TStringGrid


Peter18 - Fr 24.02.12 14:01
Titel: Dynamisches Array mit TStringGrid
Ein freundliches hallo an alle,

zur Anzeige von Daten möchte ich TStringGrids verwenden. Da die Anzahl der benötigten Grids erst zur Laufzeit fest steht, wollte ich ein dynamisches Array verwenden um die Grids dort einzutragen und bei Bedarf sichtbar zu schalten, statt dann die Daten einzulesen. Doch der Compiler hat mir einen Strich durch diese Rechnung gemacht. Er nölt "Inkompatible Typen".

Ist da schon der Ansatz falsch oder habe ich im Programm einen Fehler gemacht, den ich nicht sehe? :?:

Hier des Delphi 4 Programm:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
Procedure GetListen( SG : Array of TStringGrid; List : TStringList );
var
  SL, TL : TStringList;
  I, L   : Integer;


begin
  L := List.Count;
  if L > 10 then L := 10;
  for I := 0 to L - 1 do
  begin
    if FileExists( List[I] ) then
    begin
      SetLength( SG, Length( SG ) + 1 );                
      SG[ I ]         := TStringGrid.Create( TComponent( TerminHinw ) );
      SG[ I ].Visible := false;
      SG[ I ].Parent  := Form1;
      SL              := ReadSlFromFile( List[I] );
      TL              := GetStrgBlock( SL, 'Daten' );
      LoadGridStrLst( SG, TL );
      SL.Free;
      TL.Free;
      TL := Nil;
    end
    else
    begin
      Msg( 'Termin-Datei "'+List[I]+' nicht gefunden'  );
    end;
  end;
end;

Bei "SetLength( SG" meckert der Kompiler "Inkompatible Typen". Natürlich kann ich ein festes Array verwenden, aber das wäre nicht so elegant.

Vielleicht hat jemand eine Erklärung. Dank euch im Voraus und Grüße von der Nordsee

Peter


bummi - Fr 24.02.12 14:10


Delphi-Quelltext
1:
2:
3:
4:
5:
Type
 TSGArray=Array of TStringGrid;


Procedure GetListen(var SG : TSGArray; List : TStringList );


ich würde Dir aber eher TObjectList oder zumindest TList empfehlen ....


Peter18 - Fr 24.02.12 15:01

Hallo bummi,

dank Dir für Deine Antwort! Hätte eigentlich auch selbst drauf kommen müssen, aber das ist ja auch typisch, irgend wann sieht man sehr viele Bäume und finndet deshalb den Wald nicht.

Grüße von der vernieselten Nordsee

Peter