在同一应用程序里你可以用SENDMESSAGE将消息发送给其他的窗体,而在其他所有的窗体内的控件都将PARENTFONT设为真,这样在窗体字体改变时,其他控件的字体也就跟着变了。

解决方案 »

  1.   

    在你的菜单事件里postmessage(form1.handle,mymsg,@myfontdef,0);
    在你的FORM1里定义onMessage事件,
    if msg=mymsg then begin
       self.font.name := myfontdef.font.name;
       self.font.size := myfontdef.font.size;
       //.....还有其他的设置,你自己写吧。
    end;
      

  2.   

    同意楼上的作法,
    不过如果你不想使用消息,
    那你写一段代码,改掉所有表单的字体,
    反正反消息也要给所有表单发,和直接写没有什么区别。
    (注意,表单里的所有对象的parentfont设为真才好)
      

  3.   

    楼上的方法虽然能够解决窗口中控件的字体,只要 ParentFont := True; 即可,但系统的字体,如菜单字体改起来就麻烦一点。