Hallo zusammen,
das geht aber echt schnell, daß hier die ersten Antworten eintrudeln.
@raiguen & darkchild:
Mein Programm enthält wirklich nur die beiden genannten von mir geschriebenen Funktionen. Ich schließe Form2 - wie gesagt - durch Click auf das Schließen-Symbol oben rechts, dabei wird das Formular tatsächlich geschlossen und seine Close()-Funktion wird ausgeführt. Es bleibt aber natürlich instanziert (ich führe ja kein Destroy() aus, was unter Delphi ja auch ganz und gar unüblich wäre). Das alles sollte aber m. E. auch nichts zur Sache tun, denn in FormShow setzte ich den ItemIndex ja explizit neu und dieser Code wird auch wirklich ausgeführt, wie sich mit einem Breakpoint leicht überprüfen läßt. Aber er wird danach von einem nicht von mir stammenden Code wieder überschrieben, und das fand ich ziemlich obskur.
@lannes:
Tatsächlich, diese Lösung funzt und erfüllt das, was ich mit elegant gemeint habe. Anscheinend merkt sich die
VCL, auf welchem Steuerelementen der Focus beim Schließen saß und teilt diesem Steuerelement den Focus nach dem Ausführen von FormShow wieder zu. Das kann ja noch als Feature durchgehen, aber wenn dieses Steuerelement ein RadioButton (einzelner RadioButton oder auch Subelement einer RadioGroup) ist, wird dessen Eigenschaft Checked hierbei gesetzt! Eine CheckBox verhält sich da anderst, nämlich so wie erwartet. Was es alles gibt...
Jedenfalls vielen Dank allen Antwortenden.