我想用TFontDialog 改变字体, 但该对话框 第一次选择不起作用, 要到第二次才行, 
我要如何改 
谢谢 procedure TForm1.FontDialog1Close(Sender: TObject);
begin
    //showmessage('sss');
    //sss.Modified := false ;
    if sss.Modified = true then
      sss.Font := fontdialog1.Font    else
      begin
        sss.Font := fontdialog1.Font ;
        sss.Modified := false ;
      end ;end;

解决方案 »

  1.   

    你别把程序写在FontDialog1Close事件里面啊
      

  2.   

    procedure TForm1.Button5Click(Sender: TObject);
    begin
      if FontDialog1.Execute then
      begin
        RichEdit1.Font := FontDialog1.Font;
      end;
    end;
      

  3.   

    你把你后面的程序都写在下面的地方
    if FontDialog1.Execute then
    begin
      //////////
    end;
      

  4.   

    ,我想问问为什么,在 onClose事件里我也该了字体了, 他为和没直接改字体,先execute再onclose呀, 为何, 不起作用
      

  5.   

    。。是不是这个Dialog的bug呢,可能,呵呵,还真没注意过
    你用if FontDialog1.Execute then就不会有问题了,呵呵
      

  6.   

    这不是TFontDialog的Bug,而是先后问题,OnClose事件是在窗体被Close之前发生,而TFontDialog的FFont属性的的应用是在窗体Close之后发生的,所以出现楼主所说的错误假象。
    TFontDialog的正确用法就是楼上的。