程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 枚舉並設置界面的Caption之多語言方法

枚舉並設置界面的Caption之多語言方法

編輯:Delphi
 uses
    ..., TypInfo;

  function TForm1.IsAPropExist(AInst: TObject; const PropName: string): Boolean;
  var
    PropInfo: PPropInfo;
  begin
    Result := False;
    PropInfo := GetPropInfo(AInst, PropName);
    if PropInfo <> nil then
      Result := PropInfo.Name = PropName;
  end;

  
  procedure TForm1.Button2Click(Sender: TObject);
  var
    i: Integer;
  begin
    for i := 0 to Self.ComponentCount - 1 do
    begin
      if IsAPropExist(Self.Components[i], 'Caption') then
        SetPropValue(Self.Components[i], 'Caption', IntToStr(i));
    end;
  end;
  

   

   

  -------------------------------------------------------------------------------

  uses
    ..., TypInfo;
  
  procedure TForm1.FormCreate(Sender: TObject);
  var
    i: Integer;
    aComponent: TComponent;
    PropInfo: PPropInfo;
    ViewText, VIEwHint: string;
  begin
    VIEwText := 'Hello world'; // for debug use, you should comment these 2 lines
    VIEwHint := 'the hint';    //   and then implement GetInfoByName method.
  
    for i := 0 to ComponentCount - 1 do
    begin
      aComponent := Components[i];
      PropInfo := GetPropInfo(aComponent.ClassInfo, 'Caption');
      if not Assigned(PropInfo) then // Caption property of aComponent NOT exists
      begin
        // turn to search Text property
        PropInfo := GetPropInfo(aComponent.ClassInfo, 'Text');
        if not Assigned(PropInfo) then // Text property of aComponent NOT exists
          Continue;
      end;
  
      // comes here, either Caption or Text property must exists
      // first, find the ViewText and VIEwHint of the aComponent by the name
      // GetInfoByName(aComponent.Name, ViewText, VIEwHint);
      SetStrProp(aComponent, PropInfo, VIEwText);
  
      // then, search Hint property
      PropInfo := GetPropInfo(aComponent.ClassInfo, 'Hint');
      if Assigned(PropInfo) then
        SetStrProp(aComponent, PropInfo, VIEwHint);
    end;
  end;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved