P.S: Eigentlich wollte ich ohne so eine Registrierung auskommen. Damit das voll dynamisch ist.
Man kann sich nicht duschen ohne nass zu machen.
Ich würde folgende Strategie empfehlen:
1.) prüfen, ob das Formular schon angelegt wurde
Delphi-Quellcode:
{**************************************************************************
* NAME: FindForm
* DESC: Sucht in Screen.Forms nach einem Formular mit der übergebenenen
* Formularklasse. Findet das erste Formular in Screen.Forms das
* von dieser Klasse abgeleitet ist. Weitere Instanzen können nicht
* gefunden werden.
*************************************************************************}
function FindForm(FormClass: TFormClass): TForm;
var
iForm: Integer;
begin
Result := nil;
for iForm := 0 to Screen.FormCount-1 do
begin
if Screen.Forms[iForm] is FormClass then
begin
Result := Screen.Forms[iForm];
Break;
end;
end;
end;
2.) Falls das Formular schon existiert mit
.BringToFront()
nach vorne bringen
3.) Falls das Formular noch nicht existiert wird es dynamisch erzeugt
so wie in der Code-Library beschrieben