DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: 1djhgfjs
今日帖子: 14
在线用户: 14
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 andyliuxp (andyliuxp) ★☆☆☆☆ -
普通会员
2023/9/10 15:52:43
标题:
在fmx下动态生成的tlabel为什么不能调整大小及字体样式 浏览:643
加入我的收藏
楼主: 大家好,
为什么会这样呢?类似于下面这样的代码不能生效。
          MyLbl := Ttext.Create(self);
          MyLbl.Parent := VscrbMenuBtn;
          // MyLbl.Font.Size := 20;
          MyLbl.TextSettings.Font.Size := 20;
          MyLbl.Size.PlatformDefault := false;
          MyLbl.TextSettings.Font.Style := [TFontStyle.fsBold];
          MyLbl.Margins.Left := 20;
          MyLbl.Align := TAlignLayout.Top;
----------------------------------------------
-
作者:
男 k3man (嗯哼) ★☆☆☆☆ -
普通会员
2023/9/10 18:47:49
1楼: MyLbl.TextSettings.Font.Style := [];
先清空再
MyLbl.TextSettings.Font.Style := [TFontStyle.fsBold];
或者
uses
  FMX.TextLayout, System.UIConsts;

procedure ApplyCustomFontStyle(AText: TText);
var
  TextSettings: TTextSettings;
begin
  // 定义默认的文本样式
  TextSettings := TTextSettings.Create(nil);
  try
    TextSettings.Font.Family := 'Arial';
    TextSettings.Font.Size := 16;
    TextSettings.FontColor := TAlphaColors.Red;

    // 应用自定义样式到指定的 TText 对象
    AText.TextSettings := TextSettings;
  finally
    TextSettings.Free;
  end;
end;
----------------------------------------------
-
作者:
男 andyliuxp (andyliuxp) ★☆☆☆☆ -
普通会员
2023/9/11 9:29:46
2楼: @k3man
谢谢前辈.
----------------------------------------------
-
作者:
男 andyliuxp (andyliuxp) ★☆☆☆☆ -
普通会员
2023/9/15 19:29:44
3楼: 试过好像没有效果,改用ttext控件 了。
----------------------------------------------
-
作者:
男 k3man (嗯哼) ★☆☆☆☆ -
普通会员
2023/9/15 19:37:58
4楼: FMX下先清除默认的样式,才会生效
LState := TLabel.Create(self);
LState.StyledSettings := [];
LState.TextSettings.FontColor := TAlPhaColors.Red;
LState.Font.Style := LState.Font.Style + [TFontStyle.fsBold];
----------------------------------------------
-
作者:
男 k3man (嗯哼) ★☆☆☆☆ -
普通会员
2023/9/15 19:39:55
5楼: TLabel 做多语言时非常方便。只需要配置翻译文件。
----------------------------------------------
-
作者:
男 emailx45 (emailx45) ▲▲▲▲△ -
普通会员
2023/9/15 21:42:27
6楼: implementation

{$R *.fmx}

var
  LIncriseSize: boolean = true;

procedure TForm1.Btn_Create_TTExtClick(Sender: TObject);
var
  LTText: TText;
begin
  Btn_Create_TTExt.Enabled := false;
  //
  LTText := TText.Create(Label1);
  try
    LTText.Name     := 'MyTTextTest001';
    LTText.Parent   := Label1;
    LTText.AutoSize := true;
    LTText.Text     := 'Hello';
    //
    LTText.Align          := TAlignLayout.Client;
    LTText.TextSettings.Font.Style := [TFontStyle.fsBold];
  finally

  end;
end;

procedure TForm1.Btn_TTExt_SizeClick(Sender: TObject);
var
  LObj    : TFmxObject;
  LNewSize: single;
begin
  LObj := nil;
  for var C in Label1.Children do
    if (C is TText) then
      LObj := TText(C);
  //
  if (LObj <> nil) then
    begin
      if LIncriseSize then
        LNewSize := +1
      else
        LNewSize := -1;
      //
      // TText(LObj).Font.Size := TText(LObj).Font.Size + LNewSize;
      TText(LObj).TextSettings.Font.Size := TText(LObj).TextSettings.Font.Size + LNewSize;

      if (TText(LObj).TextSettings.Font.Style = [TFontStyle.fsBold]) then
        TText(LObj).TextSettings.Font.Style := []
      else
        TText(LObj).TextSettings.Font.Style := [TFontStyle.fsBold];
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  LIncriseSize := not LIncriseSize;
end;
此帖子包含附件:
GIF 图像
大小:108.3K
----------------------------------------------
The higher the degree, the greater the respect given to the humblest!RAD 11.3
作者:
男 andyliuxp (andyliuxp) ★☆☆☆☆ -
普通会员
2023/9/16 21:38:57
7楼: 感谢两位老哥的热心相助。受教了。
----------------------------------------------
-
作者:
男 andyliuxp (andyliuxp) ★☆☆☆☆ -
普通会员
2023/9/18 17:49:20
8楼: 根据老位老兄的指点,问题解决了,非常感谢。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行82.03125毫秒 RSS