比如下面的代码
var
buf:array [0..4095] of AnsiChar;
stmp:string;
i:integer;
begin
buf := '已使用'; //正常
//但是如果加个变量就不正常了。 如:
i:=5;
buf := '已使用个数:'+ inttostr(i); //报错, inttostr 是转换为string类型,不能直接加在char数组后面,如果需要这样赋值,该怎么办呢?
end;
var
buf:array [0..4095] of AnsiChar;
stmp:string;
i:integer;
begin
buf := '已使用'; //正常
//但是如果加个变量就不正常了。 如:
i:=5;
buf := '已使用个数:'+ inttostr(i); //报错, inttostr 是转换为string类型,不能直接加在char数组后面,如果需要这样赋值,该怎么办呢?
end;
解决方案 »
- TLabel能不能多行显示啊
- 万一有同时插入数据的这种情况,怎么办?
- 在哪里重画ListView中的进度条?
- 超郁闷的一个问题,关于剪贴板...望高手救救..
- 关于窗口融合技术之问题
- 有没有想比较好的Edit控件,当没有焦点时背景是灰色。获的焦点后就反白。
- 是不是Delphi7的又一个BUG?关于TreeView控件的问题.
- DBGIRD双击怎么多选记录?
- delphi返回的结果集是一张表,该怎么处理?
- delphi如何连接MQ客户端,并往MQ客户端推送消息
- delphi回调函数怎样将图片从内存中直接抓取,而不把图片保存到硬盘中。
- 谁有支持1.6的JNI.pas (java与DELPHi的接口声明)
str:='已使用个数:'+ inttostr(i);
move(str[1],buf[0],length(str))
可以先Format一下,再PChar转换。
function FormatBuf(var Buffer; BufLen: Cardinal; const Format;
FmtLen: Cardinal; const Args: array of const): Cardinal; overload;
function FormatBuf(var Buffer; BufLen: Cardinal; const Format;
FmtLen: Cardinal; const Args: array of const;
const FormatSettings: TFormatSettings): Cardinal; overload;另外还有windows api:
function wsprintf(Output: PChar; Format: PChar): Integer; stdcall;
buf:array [0..4095] of AnsiChar;
stmp:string;
i:integer;
str:AnsiString;
begin
buf := '已使用'; //正常
i:=5;
str := '已使用个数:'+ inttostr(i);
strcopy(buf,PAnsiChar(str));
var
buf:array [0..4095] of AnsiChar;
stmp:string;
i:integer;
str:AnsiString;
begin
buf := '已使用'; //正常
i:=5;
str := '已使用个数:'+ inttostr(i);
StrPCopy(buf, str);
end