![]() |
ListIndex-Fehler bei TStrings.Assign
Hi Leute,
mich treibt gegenwärtig folgendes Problem rum: Ich habe eine TRichEdit-Komponente (Edt) dieser sollen aus einem Objekt (Obj) die Werte (Lines) zugewiesen werden. Dazu besitzt das Objekt die Eigenschaft Strings vom Typ TStrings. Der Austausch erfolgt mittels der Prozedur Assign von TStrings.
Delphi-Quellcode:
Das funktioniert alles solang ganz gut, solange die Strings nur aus einer Zeile besteht, sind jedoch mehre Zeilen vorhanden, erscheint ständig die Fehlermeldung: „Der Listindex überschreitet das Maximum von 1.“ oder so ähnlich.
Edt.Lines.Assign(Obj.Strings);
Ich habe keine Ahnung, woran das liegt. Vielleicht kann mir ja einer von Euch einen Tipp geben?!? Vielen Dank schon mal Scouty |
Re: ListIndex-Fehler bei TStrings.Assign
Hi Leute,
ich bin’s noch mal. Ich habe durch Zufall die Lösung meines Problemes oder vielmehr die Ursache gefunden. Der Grund für die Exception war denkbar einfach und dennoch gut versteckt. Ich habe in einem OnChange-Ereignis der Komponente, die die StringList verwendet, meine Routine für den Datenaustausch gepackt, d.h. wenn sich an der Komponente mit der StringList was ändert, dann sollte diese Änderungen an die StringList vom dazugehörigen Objekt weitergeben werden, d.h. die StringList des Objekts durch die geänderte ersetzt werden. Das OnChange-Ereignis tritt als jedes Mal ein, wenn sich was an der StringList ändert, also auch dann, wenn die Daten vom Objekt an die StringList übertragen werden. Folglich entstand genau hier eine Kreuzbeziehung, die in ihre logischen Konsequenz zu dieser Exception führte. Dies hier nur falls mal einer ein ähnliches Problem hat… Greetings Scouty |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 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