Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
826 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Frame-Name in Variable

  Alt 24. Aug 2012, 11:56
Toll! So klappt es, Bummi!!!

Delphi-Quellcode:
Procedure Beschriftung (Maske: string; TheComp:TComponent);//Damit ist es egal, ob es ein Form oder ein Frame ist
var query1, query2: string;
    Cols1, Cols2: TCols;
    Rows1, Rows2: TRows;
    i, j: integer;
    Language: string;

begin

  Language:='deutsch';
  query1:='select Sprachen_ID from sprachen where Sprache='+#39+Language+#39;
  Connect;
  ExecQuery(DB, query1, Cols1, Rows1);
  DisConnect;

  query2:='select Feld_Name, Feld_Bezeichnung from sprache_bezeichnung '+
          'where Sprache='+Rows1[0,0]+' and Maske='+#39+Maske+#39+
          ' and Variante=1';
  Connect;
  ExecQuery(DB, query2, Cols2, Rows2);
  DisConnect;

  for I := 0 to TheComp.ComponentCount-1 do
    begin
      if (TheComp.Components[I] is TLabel) or
          (TheComp.Components[I] is TButton) then
      begin
        if (TheComp.Components[I] is TLabel) then
          begin
            for J:=0 to Length(Rows2[0])-1 do
              begin
                if Rows2[0,J]=TLabel(TheComp.Components[I]).Name then
                  begin
                    TLabel(TheComp.Components[I]).Caption:=Rows2[1,J];
                  end;
              end;
          end;
        if (TheComp.Components[I] is TButton) then
          begin
            for J:=0 to Length(Rows2[0])-1 do
              begin
                if Rows2[0,J]=TButton(TheComp.Components[I]).Name then
                  begin
                    TButton(TheComp.Components[I]).Caption:=Rows2[1,J];
                  end;
              end;
          end;
       end;
    end;
end;
Ich habe eine TComponent verwendet, um sowohl Frames als auch Forms damit übersetzen zu können.

Das ist der Aufruf
Delphi-Quellcode:
procedure TMain.ButtonTestClick(Sender: TObject);
begin
  Beschriftung ('WorkshopDetail', Main.Workshop1.WorkshopDetail1); //Das ist ein Frame
  Beschriftung ('Main', Main); //Das ist ein Form
end;
Vielen Dank an alle für Eure Hilfe!!!

Gruß
Ykcim
Patrick
  Mit Zitat antworten Zitat