Forum: Sonstige Fragen zu Delphi
by himitsu,
12. Okt 2023
Stell dir einfach mal zwei Fälle vor
* die Form erstellen und zwei Mal anzeigen (Show+HideClose oder ShowModal)
* die Form erstellen und garnicht anzeigen, sondern direkt wieder freigeben
1a. Beim zweiten Mal knallt's, weil die Form weg ist
1b. Beim zweiten Mal knallt's, weil im OnClose freigegeben wurde (natürlich ohne caFree, sondern mit caHide)
2. Es wird nie freigegeben, weil OnClose...
Forum: Sonstige Fragen zu Delphi
by himitsu,
12. Okt 2023
FormClose?
Man gibt etwas an der Gegenstelle dessen frei, wo es erstellt wurde.
In OnClose also das, was im OnShow erstellt wurde. Hast du es wirklich dort erstellt?
PS: OnCreate->OnDestroy oder Create->Destroy aka Constructor->Destructor usw.
Forum: Sonstige Fragen zu Delphi
by himitsu,
11. Okt 2023
Erstens: Man ruft nicht Destroy auf, sondern Free. Und bei Forms besser Release.
Ist die Form Modal, dann nur Close und niemals Destroy/Free oder Dergleichen.
Wie viel wollen wir wetten, dass du irgendwo ein Application.ProcessMessages, Application.HandleMessage, ShowMessage oder Dergleichen aufrufst, welches Messages mitten der Behandlung ausführt, anstatt erst anschließend?