Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#4

AW: TTreeView und Formularnamen als String

  Alt 14. Feb 2021, 17:02
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;
  Mit Zitat antworten Zitat