Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
Delphi 10.1 Berlin Professional
|
AW: (Formular-)Handling größerer Projekte
12. Mär 2015, 14:31
Interessanter Ansatz. Werde ich mal nachverfolgen. Zu deinem Code-Beispiel...da fehlt natürlich noch eine Kleinigkeit:
Delphi-Quellcode:
function ShowFormOnce(AFormClass: TComponentClass): TForm;
var
liZ1: Integer;
begin
Result := nil;
for liZ1 := 0 to Application.ComponentCount-1 do
begin
if (Application.Components[liZ1] is AFormClass) then
begin
Result := TForm(Application.Components[liZ1]);
end;
end;
if (Result <> nil) then
begin
Result := TForm(AFormClass.Create(Application));
end;
if Assigned(Result) then // sonst knallts !!!!
Result.Show;
end;
EDIT: Mal "nachverfolgt". Würde dann so aussehen:
Delphi-Quellcode:
{-Interface-procedure zum Anzeigen der Form-}
procedure FrmClient1_Show;
var
i: Integer;
begin
for i := 0 to Pred(Application.ComponentCount)
do if (Application.Components[i] is TFrmClient1) then
begin
TFrmClient1(Application.Components[i]).Show;
Exit;
end;
with TFrmClient1.Create(Application) do Show;
end;
procedure TFrmClient1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
Einwände? - Verbesserungsvorschläge?
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
Geändert von mm1256 (12. Mär 2015 um 14:41 Uhr)
|