Einzelnen Beitrag anzeigen

mani64

Registriert seit: 8. Apr 2009
49 Beiträge
 
Delphi 5 Professional
 
#19

Re: TLabel - für mich unerklärliche Exception

  Alt 23. Apr 2009, 18:16
O, danke für den Hinweis! Wenn ich die Zeile Richedit1.destroy weglasse, dann erfolgt keine Exception. Das Richedit ist ja nicht sichtbar, also stört es auch nicht, wenn es am Leben bleibt.
Aber: wieso führt dieses Richedit zu einer Exception? Es muss doch möglich sein, dieses Ding zur Laufzeit zu erschaffen und wieder zu zerstören. Hey, mit richedit.free statt .destroy scheint es zu klappen. - Jetzt bin ich aber ganz baff! Auf einmal geht es auch mit .detroy völlig ohne Exception. Ist mir ein Rätsel, warum es auf einmal klappt. Vielen Dank!


AppendConversionFormat gibt es bei mir (Delphi 5.0) nicht, nur RegisterConversionFormat. Ich möchte meinen Converter eben einmal registrieren beim Start des Hauptformulars und nicht mit jedem Kindfenster, denn dann wird er ja x-mal registriert. Leider gibt es keinen direkten Zugriff auf die Konverter der Unit ComCtrls. Deswegen muss ich z.B. auch im Kindfenster das Richedit löschen und ein neues erschaffen, wenn die Dateiendung z.B. von txt auf rtf geändert wird. Man kann weder auf die Liste der Konverter noch auf den geladenen Konverter eines Richedit direkt zugreifen. Der wird fürs Richedit einmal geladen und danach auch weiter verwendet, selbst wenn die Dateiendung und damit das Format beim Speichern geändert wurde.


Edit:
Nun passiert folgendes: Wenn ich in Unit1 das Richedit mit .free oder .destroy ins Jenseits schicke, eine .txt-Datei lade und die unter .rtf speichere (d.h. das Richedit im Kindfenster lösche und neu erstelle), und danach beende, kommt die Exception wieder.
Wenn ich aber das Richedit in Unit1 bestehen lasse, kommt nach dem Speichern keine Exception - Computer sind schon seltsame Wesen.

Noch ein Edit:
Ich habe den Converter etwas verändert, um Form3 ins Programm integrieren zu können und nun kommt die Exception immer, wenn ich speichere und danach das Programm beende. Also das Richedit1 der Unit1 kann es nicht (allein) sein. Es muss noch irgendwo was anderes stecken...
  Mit Zitat antworten Zitat