Habe deinen Vorschlag soeben in meiner Version von Promathika umgesetzt. Bin gespannt, ob es noch zur AV kommt.Patito hat geschrieben:@Euklid:
Ist es mit TForm.Create(nil) immer noch derselbe AV?
Ok, dann steckt hier eine mögliche Fehlerquelle. Im Laufe des Tages wollte der CPU-Quäler sich nochmal auf Bugsuche begeben, nehme an, er wird deinen Vorschlag auch probieren. Mit Windows wird er wesentlich früher sagen können, ob die AV noch auftritt.Application.CreateForm() ist auf jedenfall falsch wenn man das Formular selbst freigeben will.
TForm.Create(nil) sollte zumindest erst mal das Problem in DoIdleActions() lösen.
Ja, mir erscheint der richtige Umgang mit Forms in der Tat recht undurchschaubar - gerade weil, wie du schilderst, so viele Prozesse im Hintergrund ablaufen, über die man als jemand, der nicht in die Internas zur Formverwaltung eingeweiht ist, kaum einen Überblick hat. Deshalb wäre ich dafür, dass von Lazarus aus Funktionen angeboten werden, die die Formprogrammierung entsprechend vereinfachen.Es gibt aber wie gesagt noch einen Haufen weiterer Fehlerquellen, auf die man achten muß.
Viele Grüße, Euklid
EDIT:
So. Habe das gerade probiert:
Wenn ich
Code: Alles auswählen
Application.CreateForm(tFFuncEdit, FFuncEdit);
Code: Alles auswählen
FFuncEdit:=tFFuncEdit.create(nil);