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