我的客户要求软件能够设置memo行的字符数
比如每行24个字符,memo宽度也自动变化,
请问如何设置?

解决方案 »

  1.   

    不会吧,我看有的软件memo宽度自动随设置个数变化
      

  2.   

    有一相对变通的方法,供你参考.首先设Form及memo的字体都为宋体(因为宋体的字符为等宽的),且字号相等
    然后:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
      a:integer;
      u:uint;
    begin
      i:=StrToInt(edit1.Text);
      u:=uint('A');
      if not GetCharWidth32(canvas.Handle,u,u,a) then
         ShowMessage('error');
      Memo1.Width:=a*(i+1);
    end;
    这样,在edit1中设memo的字符数后,按button1,memo就会调整至该字符数
      

  3.   

    GetCharWidth32 这个函数可以实现的~~