![]() |
Keine dynamischen Arrays vom Typ TStringList möglich?
Ich habe folgenden Code:
Delphi-Quellcode:
Aber der Kompiler sagt mir: Inkompatible Typen 'TStringList' und 'dynamic array' (bei 1) )...var history:array of array of TStringList; //... for k:=anfang to ende do begin History[i]:=TStringlist.Create; //1) History[i].lines.add:=(Richedit1.Lines.Strings[k]); SetLength(History,Length(History+1)); end; Geht es einfach nicht, oder hab ich einfach etwas falsch gemacht, denn eigentlich sollte er doch schon oben bei der Variabeldeklaration n Fehler ausgeben, wenn es generell nicht geht... :gruebel: Danke im Voraus :thumb: |
Re: Keine dynamischen Arrays vom Typ TStringList möglich?
Du hast auch ein 2-dimensionalen dynamischen Array
|
Re: Keine dynamischen Arrays vom Typ TStringList möglich?
history[x][y] := TStringlist.Create
wäre hier richtig edit: Du brauchst dann auch ne doppelte for-schleife
Delphi-Quellcode:
for x := 0 to MaxX do
for y := 0 to MaxX do |
Re: Keine dynamischen Arrays vom Typ TStringList möglich?
:wall: :wall: :wall:
Danke, manchmal muss einfach nur wer anders mal einen Blick drauf werfen... |
Re: Keine dynamischen Arrays vom Typ TStringList möglich?
im übrigen sind auch sonst noch ein paar fehler drin:
FALSCH:
Delphi-Quellcode:
RICHTIG:
History[i].lines.add:=(Richedit1.Lines.Strings[k]);
SetLength(History,Length(History+1));
Delphi-Quellcode:
History[i].lines.add(Richedit1.Lines.Strings[k]);
SetLength(History,high(History)+2); |
Re: Keine dynamischen Arrays vom Typ TStringList möglich?
Wieso "high(History)+2"?
|
Re: Keine dynamischen Arrays vom Typ TStringList möglich?
Die zwei Codestücke sind praktisch identisch. Nur wird die Variante mit "Length" langsamer sein.
|
Re: Keine dynamischen Arrays vom Typ TStringList möglich?
Zitat:
|
Re: Keine dynamischen Arrays vom Typ TStringList möglich?
Zitat:
|
Re: Keine dynamischen Arrays vom Typ TStringList möglich?
hi
ja und warum soll der Ausdruck length(History)-1+2 schneller sein als length(History) + 1? Da kommt eher noch der Overhead der Funktion High hinzu... Korrigiert mich, wenn ich mich irre, aber soweit ich weiß, steht einige Bytes vor dem "Beginn" eines dynamischen Arrays die Länge als Zahl drin und da müsste doch das Auslesen einer Zahl und dann die Addition von 1 schneller sein als das Auslesen + Overhead für High + Substraktion von 1 + Addition von 2, oder? Gruß Michael |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 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