Ups, da hab' ich schon wieder meinen typischen / tückischen Schreib(Verwechslungs)fehler von FindControl und FindComponent gemacht
Delphi-Quellcode:
procedure ShowForm(NameDesFormulars : String);
var
f : TComponent;
begin
f := FindComponent(NameDesFormulars);
// oder
f := FindGlobalComponent(NameDesFormulars);
if Assigned(f) then if f is TForm then TForm(f).Show;
end;
...
qry.sql.Text := 'select Formularname from Tabelle where Spalte = ' + WertAusDemTreeView;
qry.Open;
ShowForm(qry.FieldByName('Formularname').AsString;
qry.Close;
...
Und ja, je nach Delphiversion gibt es weitere / andere Suchmöglichkeiten, um über den Namen an Komponenten ... zu kommen.
Weitere Versuche von Ansätzen:
Delphi-Quellcode:
procedure ShowFormByName(FormName : String);
var
i : Integer;
begin
for i := 0 to Self.ControlCount - 1 do begin
if Self.Controls[i] is TForm then begin
if Self.Controls[i].Name = FormName then begin
TForm(Self.Controls[i]).Show;
end;
end;
end;
// oder
for i := 0 to Application.ComponentCount - 1 do begin
if Application.Components[i].Name = FormName then begin
if Application.Components[i] is TForm then begin
TForm(Application.Components[i]).Show;
end;
end;
end;
// oder
for i := 0 to Screen.FormCount - 1 do begin
if Screen.Forms[i].Name = FormName then begin
if Screen.Forms[i] is TForm then begin
TForm(Screen.Forms[i]).Show;
end;
end;
end;
end;