Wenn du deinen Code von oben auf jedenfall weiterbenutzen willst, versuch doch einfach mal deine Variable vor dem neuen Create auf nil zu setzen.
Ich hatte in älteren Programmen auch öfter das problem, dass die Form zwar geschlossen war, das Objekt jedoch nicht nil war.
Code:
procedure TForm1.irgendwasClick(Sender: TObject);
var TfSU: TfrmSendURL;
begin
If Application.FindComponent('SUForm') = Nil Then
begin
[color=red]TfSU := nil;[/color]
Application.CreateForm(TfrmSendURL, TfSU);
TfSU.Name:='SUForm';
TfSU.lblUserName.Caption := 'Hahaha';
end
else
begin
(Application.FindComponent('SUForm') As TfrmSendURL).SetFocus;
end;
end;
Allerdings halte ich diese Art der Schliessen/Neuöffnen Lösung mittlerweile auch für etwas ungeschickt.
Und ich kenn Application.FindComponent nicht so genau, also weiss ich auch nicht, ob du wirklich in deinen IF-Block kommst oder nicht. Bin zu faul es auszuprobieren
)
mfg smk