mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-09 07:08:29 +02:00
44 lines
1.2 KiB
ObjectPascal
44 lines
1.2 KiB
ObjectPascal
{ Source provided for Free Pascal Bug Report 3301 }
|
|
{ Submitted by "Alexey Barkovoy" on 2004-09-07 }
|
|
{ e-mail: clootie@ixbt.com }
|
|
{$APPTYPE CONSOLE}
|
|
{$mode delphi}
|
|
|
|
uses SysUtils;
|
|
|
|
var
|
|
err : boolean;
|
|
|
|
procedure WideConstArray(FS: String; const Args: array of const);
|
|
var i: Integer; S: String;
|
|
begin
|
|
for i:= 0 to High(Args) do
|
|
begin
|
|
if (Args[i].Vtype = vtPointer) or
|
|
(Args[i].Vtype = vtObject) or
|
|
(Args[i].Vtype = vtClass) or
|
|
(Args[i].Vtype = vtVariant)
|
|
then // == 5
|
|
begin
|
|
WriteLn('BAD: ', i, ' parameter is detected as a pointer one - (',
|
|
Args[i].Vtype, ')');
|
|
err:=true;
|
|
end else
|
|
WriteLn(': ', i, ' parameter is detected as a some other type - (',
|
|
Args[i].Vtype, ')');
|
|
end;
|
|
S:= Format(FS, Args);
|
|
WriteLn;
|
|
WriteLn('Result is:', S);
|
|
end;
|
|
|
|
var
|
|
w1: WideString; wc: PWideChar; cc: WideChar; S: String; ch: Char; pch, pch2: PChar;
|
|
begin
|
|
w1 := 'Some other wide string'; wc:= @w1[1]; S:= 'String1'; ch:= 'c'; pch:= @ch; pch2:= @s[1]; cc:= 'Z';
|
|
// BAD: This will raise exception?
|
|
WideConstArray('%s, %s, %s, %s, %s', [WideString('wide string'), w1, cc, wc, PWideChar(wc)]);
|
|
if err then
|
|
halt(1);
|
|
end.
|