我现在需要这样一段代码?如:字符串‘中国’,并且字符串的内容不定,我需要将它显示成:
      中
      国
,如果,字符串很长,在左边继续显示。

解决方案 »

  1.   

    将Label的autosize和wordwrap属性设为true不行吗?
      

  2.   

    需要做成EXCEL中的那种文子竖显
      

  3.   

    不能,有没有WINDOWS API一类的
      

  4.   

    procedure DrawLabel(aCanvas:TCanvas;x,y:integer;aStr:String);
    type
      Tchar2 = array[0..1] of char ;
    var
      i : integer ;
      SumHeigth : integer ;
      p1 : ^char ;
      p2 : ^TChar2 ;
      c1 : char ;
      c2 : Tchar2 ;
      str : string ;
    begin
      i := 1 ;
      SumHeigth := 0 ;
      while i<=Length(astr) do
      begin
        if Byte(astr[i])>$A0 then //是否為漢字
        begin
          p2 :=@astr[i] ;
          c2 :=P2^ ;
          str := c2 ;
          inc(i,2);
        end else
        begin
          p1 :=@astr[i] ;
          c1 := p1^ ;
          str := c1 ;
          inc(i);
        end;
        aCanvas.Font.Color := clBlack ;
        aCanvas.Brush.Style := bsClear ;
        aCanvas.TextOut(x,y+SumHeigth,str);
        SumHeigth := SumHeigth + aCanvas.TextHeight(str)+1 ;
      end ;
    end;
    //如:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    DrawLabel(canvas,10,10,'中國');
    end;