码迷,mamicode.com
首页 > 其他好文 > 详细

FormatBUFF

时间:2015-04-23 15:21:01      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

function FormatEx(const AFormatStr: string; AParams: array of const): PChar;
var
MssageBuf: PChar;
MssageParam: PDWORDArray;
i, Len: Integer;
begin
try
Result := nil;
MssageParam := nil;
if AFormatStr = ‘‘ then Exit;
Len := Length(AParams);
if Len > 0 then
begin
MssageBuf := Windows.HeapAlloc(Windows.GetProcessHeap, Const_HEAP_PTR, 1024);
if MssageBuf = nil then Exit;
MssageParam := Windows.HeapAlloc(Windows.GetProcessHeap, Const_HEAP_PTR, (Len * Sizeof(DWORD)));
try
if MssageParam = nil then Exit;
for i := Low(AParams) to High(AParams) do
if AParams[i].VType = vtString then
MssageParam^[i] := DWORD(PChar(DWORD(AParams[i].VString) + 1))
else
MssageParam^[i] := DWORD(AParams[i].VInteger);
Len := Windows.wvsprintf(MssageBuf, PChar(AFormatStr), PChar(MssageParam));
MssageBuf[Len] := Char($0);
finally
if MssageParam <> nil then
Windows.HeapFree(Windows.GetProcessHeap, 0, MssageParam);
end;
Result := PChar(MssageBuf);
end
else
Result := PChar(AFormatStr);
except
on E: Exception do
begin
  showmessage( E.Message);
end;
end;
end;

FormatBUFF

标签:

原文地址:http://www.cnblogs.com/moonwind/p/4450387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!