![]() |
FindComonent(dynamisch)
Bin gerade am schreiben eines Editors mit Tabs. Läuft auch alles ganz gut, bis auf einige Proceduren (der Hauptteil) die FindComponent erfordern. Hab das zwar schonmal gemacht, allerdings hatte ich damals meine Objekte nicht dynamisch erstellt, da immer die gleiche Anzahl benötigt wurde und ich noch weniger Ahnung von der Materie hatte.
In meinem Editor kann man sich, im Integerzahlenbereich, Seiten erstellen...d.h. nicht mehr als 2^16 diese werden aber logischer weiße nur erstellt, wenn der Nutzer es wünscht. Wenn der Nutzer eine neue Seite erstellt, wird in der PageControl ein Tabsheet erstellt, welches wiederum ein Richeditfeld enthält. Sobald ich mit FindComponent dieses anspreche kommt das: Im Projekt Editor ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung:'Zugriffsverletzung bei Adresse 0045D638 in Modul 'Editor.exe'. Lesen von Adresse 00000248'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. Hier mein Befehl
Delphi-Quellcode:
SaveDialog liegt aufm Formular, weiß nicht mehr weiter.
IF SaveDialog1.Execute THEN BEGIN
TRichEdit(FindComponent('RE'+IntToStr(PC.ActivePageIndex+1))).lines.SaveToFile(SaveDialog1.FileName); END; danke im voraus. LG JB-1990 |
Re: FindComonent(dynamisch)
Bist Du sicher, dass Du das RichEdit auf diese Weise finden kannst? Ich würde es mal so versuchen:
Delphi-Quellcode:
var RE: TRichEdit;
begin ... IF SaveDialog1.Execute THEN BEGIN RE := PC.Pages[PC.ActivePageIndex].FindComponent('RE'+IntToStr(PC.ActivePageIndex+1)) as TRichEdit; if Assigned(RE) then RE.lines.SaveToFile(SaveDialog1.FileName) else MessageBox(Handle,'Richedit nicht gefunden',nil,0); END; |
Re: FindComonent(dynamisch)
sicher bin ich mir ni, aber hab das bis jetzt noch ni anders gemacht,deswegen dacht ich, dass das geht, aber da PC parent von TS und das wiederrum parent von RE is...werds mal probieren
Delphi-Quellcode:
Is dann ein Zeiger auf die entsprechende Seite oder?
PC.Pages[...]
THX |
Re: FindComonent(dynamisch)
Ja, das ist eine Referenz auf die Aktive (sichtbare) Seite
|
Re: FindComonent(dynamisch)
das mit dem speichern klappt jetzt, allerdings kommt immernoch eine EAccessViolation
kann es daran liegen, dass ich Delphi6 mit vista verwende? |
Re: FindComonent(dynamisch)
Spalte mal die den Befehl auf und schau es dir im Debugger an
|
Re: FindComonent(dynamisch)
inwiefern soll ich den Befehl spalten? is doch ein zusammenhängender oder wie meinste das?
|
Re: FindComonent(dynamisch)
habs jetzt einfach über ne TList gelöst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09: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-2025 by Thomas Breitkreuz