![]() |
Fehler: Listenindex überschreitet das Maximum (1)
Hi,
auf die Gefahr hin das ich einfach nur zu blöd bin den fehler zu finden und es eigentlich ganz einfach ist und diese frage bestimmt schon hundert mal gestellt wurde, frage ich euch trotzdem: Wo liegt im folgenden Quelltext der Fehler?? Ich finde ihn einfach nicht, bekomme aber dauernd die Meldung Listenindex überschreitet das maximum (1)
Delphi-Quellcode:
Wäre super wenn jemand den Fehler finden würde, ich steig nich mehr durch...
class function TStringManipulation.SyntaxHighlighting(Edit: TRichEdit; Progressbar: TProgressbar): Bool;
var i : Integer; var Linemax : Integer; var AResultList : TStringList; begin try AResultList := TStringList.Create; AResultList.Add(Edit.Text); Linemax := Edit.Lines.Count; ProgressBar.Position := 0; ProgressBar.Max := Linemax; Edit.Lines.Clear; for i := 0 to Linemax-1 do begin with Edit do begin SelText := AResultList.Strings[i]; SelStart := 9; SelLength := 5; SelAttributes.Color := clBlue; SelAttributes.Style := [fsBold]; // SelText := AResultList.Strings[i]; // Lines.Add(AResultList.ValueFromIndex[i]); end; ProgressBar.Position := Progressbar.Position + 1; end; FreeAndNil(AResultList); result := true; except FreeAndNil(AResultList); result := false; end; end; Danke AnyKey |
Re: Fehler: Listenindex überschreitet das Maximum (1)
Du verwendest den Index für AResultList und nimmst aber dafür die Obergrenze (Linemax) von vom Edit.
Das kann ja nicht gut gehn. |
Re: Fehler: Listenindex überschreitet das Maximum (1)
.. ersetze mal
Delphi-Quellcode:
durch
AResultList.Add(Edit.Text);
Delphi-Quellcode:
Grüße
AResult.AddStrings(Edit.Text);
Klaus |
Re: Fehler: Listenindex überschreitet das Maximum (1)
Zitat:
Delphi-Quellcode:
und die Anzahl der Zeilen stimmt überein.
AResultList.Assign(Edit.Lines);
Zitat:
|
Re: Fehler: Listenindex überschreitet das Maximum (1)
Hi,
danke für eure Antworten! @jbg: Ich weiß das ein var genügt ;) ist bei uns zur besseren Lesbarkeit aber vorschrift. Hab das ganze jetzt so abgeändert, allerdings schreibt er mir alles in eine Zeile.
Delphi-Quellcode:
Wenn ich einen Zeilenumbruch so wie oben mit +#10 einfüge, habe ich aber zwischen den Zeilen immer einen großen abstand, ich will ja aber dass er beim zurückschreiben jeweils in nur eine Zeile des RichEdits auch eine Zeile aus der StringList schreibt und diese wie angegeben formatiert, also von stelle 9 für 5 zeichen die farbe Blau und fett..... Wie gesagt das funktioniert noch nicht so richtig.
try
AResultList := TStringList.Create; AResultList.Assign(Edit.Lines); Linemax := Edit.Lines.Count-1; ProgressBar.Position := 0; ProgressBar.Max := Linemax; Edit.Lines.Clear; for i := 0 to Linemax do begin with Edit do begin SelText := AResultList.Strings[i]+#10; SelStart := 9; SelLength := 5; SelAttributes.Color := clBlue; SelAttributes.Style := [fsBold]; end; ProgressBar.Position := Progressbar.Position + 1; end; FreeAndNil(AResultList); result := true; except FreeAndNil(AResultList); result := false; end; Gruß AnyKey |
Re: Fehler: Listenindex überschreitet das Maximum (1)
Probier mal #13#10 bzw. sLineBreak anstatt #10.
|
Re: Fehler: Listenindex überschreitet das Maximum (1)
Hi,
sLineBreak funktioniert! :) Danke! Gruß AnyKey |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 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