Hi,
folgendes merkwürdige passiert bei mir:
Ich habe eine Form und ein paar Buttons, mit denen ich einen Algorithmus anstoße, der mit dynamischen Arrays arbeitet.
Soweit alles gut - funktioniert.
Füge ich jedoch der Form ein RichEdit hinzu (einfach nur Hinzufügen der Komponente, keine Event-Handler oder sonst was) und führe das Programm aus, so erhalte ich regelmäßig eine AccessViolation (Schreibzugriff) bei der SetLength-Funktion, die mein dyn. Array vergrößern soll.
Ich vermute, dass SetLength den Speicherbereich beschreiben will, in dem die RichEdit-Komponente angesiedelt ist, aber das kann ich in der WatchList nicht genau ausmachen.
Bevor ich Code poste (weil ist viel) wollte ich fragen, ob jemandem so ein Problem schon begegnet ist, oder ob es weitere Ideen gibt.
Grundsätzlich verfahre ich mit dynamischen Arrays so:
- Deklaration
- Allokierung mit SetLength
- Wertezuweisung
Muss ich noch was beachten? Kümmert sich Delphi nicht um die Trennung der Speicherbereiche? Bzw. wie kann ich sicherstellen, dass ich nicht in den Speicher einer Komponente schreibe?
Schonmal danke für Ideen & viele Grüße
Caps
Edit: es tritt auch auf, wenn ich andere Komponenten hinzufüge, statt eines RichEdits...