代码如下:
var
    eMsg: array [0..1024] of char;
begin
    StrPCopy(eMsg, eNode.Text);
    application.messagebox(eMsg,'测试'); 
end;
以上代码没有任何问题。但我想把eMsg设为动态数组,代码如下:
var
    eMsg: array of char;
begin
    setLength(eMsg, Length(eNode.Text));
    StrPCopy(@eMsg[0], eNode.Text);
    application.messagebox(@eMsg[0],'测试');
end;
绐终得不到eNode.Text全部内容,请大家指正,应该如何写。

解决方案 »

  1.   

    我刚才测试了一下
    var
        eMsg: array of PChar;
    begin
        setLength(eMsg, Length(eNode.Text));
        StrPCopy(@eMsg[0], eNode.Text);
        application.messagebox(@eMsg[0],'测试');
    end;
    倒是可以显示全部的,真是有点搞不清楚了  
      

  2.   

    setLength(eMsg, Length(eNode.Text)+1);
      

  3.   

    var  A: array[0..79] of Char;
      S: String;
    begin
      S := 'Honk if you know Blaise.';
      StrPCopy(A, S);
      Canvas.TextOut(10, 10, string(A));
    end;