lazarus/components/lazdebuggergdbmi/test/TestApps/WatchesPrgString.inc
martin 671155bdde Debugger: test, move to package
git-svn-id: trunk@44482 -
2014-03-20 21:32:41 +00:00

791 lines
28 KiB
PHP

(* Struture
program WatchesPrg;
type
{$DEFINE Global_Type}
{$DEFINE Global_Implementation}
procedure FooFunc( {$DEFINE FooFunc_Param} }
type
{$DEFINE FooFunc_LocalType}
var
{$DEFINE FooFunc_LocalVar}
function SubFoo()():Integer;
type
{$DEFINE Sub_FooFunc_LocalType}
var
{$DEFINE Sub_FooFunc_LocalVar}
begin
{$DEFINE Sub_FooFunc_Body}
end;
begin
{$DEFINE FooFunc_Body}
end;
var
{$DEFINE Global_Var}
begin
{$DEFINE Global_Body}
FooFunc( {$DEFINE Global_Call_FooFunc} );
{$DEFINE Global_Body_NIL}
FooFunc( {$DEFINE Global_Call_FooFunc} );
end;
*)
{%region TYPE}
{$IFDEF Global_Type}
//type
TMyAnsiString = AnsiString;
PMyAnsiString = ^TMyAnsiString;
PPMyAnsiString = ^PMyAnsiString;
TNewAnsiString = type AnsiString;
PNewAnsiString = ^TNewAnsiString;
TMyShortString = ShortString;
PMyShortString = ^TMyShortString;
PPMyShortString = ^PMyShortString;
TNewhortString = type ShortString;
PNewhortString = ^TNewhortString;
TMyWideString = WideString;
PMyWideString = ^TMyWideString;
PPMyWideString = ^PMyWideString;
TNewWideString = type WideString;
PNewWideString = ^TNewWideString;
TMyString10 = String[10];
PMyString10 = ^TMyString10;
PPMyString10 = ^PMyString10;
// Array of char types
TCharArray = Array of Char;
TCharArray10B0 = Array [0..9] of Char;
TCharArray10B1 = Array [1..10] of Char;
PCharArray = ^TCharArray;
PCharArray10B0 = ^TCharArray10B0;
PCharArray10B1 = ^TCharArray10B1;
PPCharArray = ^PCharArray;
PPCharArray10B0 = ^PCharArray10B0;
PPCharArray10B1 = ^PCharArray10B1;
// TODO: strings in Array
TMyAnsiStringDArray = Array of AnsiString;
TMyAnsiStringSArray = Array [3..5] of AnsiString;
TMyPAnsiStringDArray = Array of PAnsiString;
TMyPAnsiStringSArray = Array [3..5] of PAnsiString;
TMyShortStringDArray = Array of ShortString;
TMyShortStringSArray = Array [3..5] of ShortString;
// strings in object
TStringHolderObj = class
public
FTMyAnsiString: AnsiString;
FPMyAnsiString: PMyAnsiString;
FPPMyAnsiString: PPMyAnsiString;
FRMyAnsiString: ^TMyAnsiString;
FTNewAnsiString: TNewAnsiString;
FPNewAnsiString: PNewAnsiString;
FRNewAnsiString: ^TNewAnsiString;
FTMyShortString: ShortString;
FPMyShortString: PMyShortString;
FPPMyShortString: PPMyShortString;
FRMyShortString: ^TMyShortString;
FTNewhortString: TNewhortString;
FPNewhortString: PNewhortString;
FRNewhortString: ^TNewhortString;
FTMyWideString: WideString;
FPMyWideString: ^TMyWideString;
FPPMyWideString: ^PMyWideString;
FTNewWideString: TNewWideString;
FPNewWideString: PNewWideString;
FRNewWideString: ^TNewWideString;
FTMyString10: TMyString10;
FPMyString10: PMyString10;
FPPMyString10: PPMyString10;
FRMyString10: ^TMyString10;
FAMyString10: String[10];
// Array of char types
FTCharArray: TCharArray;
FTCharArray10B0: TCharArray10B0;
FTCharArray10B1: TCharArray10B1;
FACharArray: Array of Char;
FACharArray10B0: Array [0..9] of Char;
FACharArray10B1: Array [1..10] of Char;
FPCharArray: PCharArray;
FPCharArray10B0: PCharArray10B0;
FPCharArray10B1: PCharArray10B1;
FRCharArray: ^TCharArray;
FRCharArray10B0: ^TCharArray10B0;
FRCharArray10B1: ^TCharArray10B1;
FPPCharArray: PPCharArray;
FPPCharArray10B0: PPCharArray10B0;
FPPCharArray10B1: PPCharArray10B1;
FRPCharArray: ^PCharArray;
FRPCharArray10B0: ^PCharArray10B0;
FRPCharArray10B1: ^PCharArray10B1;
FTMyAnsiStringDArray: TMyAnsiStringDArray;
FTMyAnsiStringSArray: TMyAnsiStringSArray;
FAMyAnsiStringDArray: Array of AnsiString;
FAMyAnsiStringSArray: Array [3..5] of AnsiString;
end;
// strings in record
TStringHolderRec = record
FTMyAnsiString: AnsiString;
FPMyAnsiString: PMyAnsiString;
FPPMyAnsiString: PPMyAnsiString;
FRMyAnsiString: ^TMyAnsiString;
FTNewAnsiString: TNewAnsiString;
FPNewAnsiString: PNewAnsiString;
FRNewAnsiString: ^TNewAnsiString;
FTMyShortString: ShortString;
FPMyShortString: PMyShortString;
FPPMyShortString: PPMyShortString;
FRMyShortString: ^TMyShortString;
FTNewhortString: TNewhortString;
FPNewhortString: PNewhortString;
FRNewhortString: ^TNewhortString;
FTMyWideString: WideString;
FPMyWideString: ^TMyWideString;
FPPMyWideString: ^PMyWideString;
FTNewWideString: TNewWideString;
FPNewWideString: PNewWideString;
FRNewWideString: ^TNewWideString;
FTMyString10: TMyString10;
FPMyString10: PMyString10;
FPPMyString10: PPMyString10;
FRMyString10: ^TMyString10;
FAMyString10: String[10];
// Array of char types
FTCharArray: TCharArray;
FTCharArray10B0: TCharArray10B0;
FTCharArray10B1: TCharArray10B1;
FACharArray: Array of Char;
FACharArray10B0: Array [0..9] of Char;
FACharArray10B1: Array [1..10] of Char;
FPCharArray: PCharArray;
FPCharArray10B0: PCharArray10B0;
FPCharArray10B1: PCharArray10B1;
FRCharArray: ^TCharArray;
FRCharArray10B0: ^TCharArray10B0;
FRCharArray10B1: ^TCharArray10B1;
FPPCharArray: PPCharArray;
FPPCharArray10B0: PPCharArray10B0;
FPPCharArray10B1: PPCharArray10B1;
FRPCharArray: ^PCharArray;
FRPCharArray10B0: ^PCharArray10B0;
FRPCharArray10B1: ^PCharArray10B1;
FTMyAnsiStringDArray: TMyAnsiStringDArray;
FTMyAnsiStringSArray: TMyAnsiStringSArray;
FAMyAnsiStringDArray: Array of AnsiString;
FAMyAnsiStringSArray: Array [3..5] of AnsiString;
end;
{$ENDIF}
{$IFDEF Sub_FooFunc_LocalType}
AnsiString = Array of Char; // 0 based
{$ENDIF}
{%endregion TYPE}
{%region VARIABLES}
{$IFDEF FooFunc_Param}
//procedure FooFunc(
ArgAnsiString: AnsiString; var VArgAnsiString: AnsiString;
ArgTMyAnsiString: TMyAnsiString; var VArgTMyAnsiString: TMyAnsiString;
ArgPMyAnsiString: PMyAnsiString; var VArgPMyAnsiString: PMyAnsiString;
ArgPPMyAnsiString: PPMyAnsiString; var VArgPPMyAnsiString: PPMyAnsiString;
ArgTNewAnsiString: TNewAnsiString; var VArgTNewAnsiString: TNewAnsiString;
ArgPNewAnsiString: PNewAnsiString; var VArgPNewAnsiString: PNewAnsiString;
ArgTMyShortString: TMyShortString; var VArgTMyShortString: TMyShortString;
ArgPMyShortString: PMyShortString; var VArgPMyShortString: PMyShortString;
ArgPPMyShortString: PPMyShortString; var VArgPPMyShortString: PPMyShortString;
ArgTNewhortString: TNewhortString; var VArgTNewhortString: TNewhortString;
ArgPNewhortString: PNewhortString; var VArgPNewhortString: PNewhortString;
ArgTMyWideString: TMyWideString; var VArgTMyWideString: TMyWideString;
ArgPMyWideString: PMyWideString; var VArgPMyWideString: PMyWideString;
ArgPPMyWideString: PPMyWideString; var VArgPPMyWideString: PPMyWideString;
ArgTNewWideString: TNewWideString; var VArgTNewWideString: TNewWideString;
ArgPNewWideString: PNewWideString; var VArgPNewWideString: PNewWideString;
ArgTMyString10: TMyString10; var VArgTMyString10: TMyString10;
ArgPMyString10: PMyString10; var VArgPMyString10: PMyString10;
ArgPPMyString10: PPMyString10; var VArgPPMyString10: PPMyString10;
ArgPChar: PChar; var VarArgPChar: PChar;
ArgPPChar: PPChar; var VarArgPPChar: PPChar;
// Array of char types
ArgTCharArray: TCharArray; var VArgTCharArray:TCharArray;
ArgTCharArray10B0: TCharArray10B0; var VArgTCharArray10B0:TCharArray10B0;
ArgTCharArray10B1: TCharArray10B1; var VArgTCharArray10B1:TCharArray10B1;
ArgPCharArray: PCharArray; var VArgPCharArray:PCharArray;
ArgPCharArray10B0: PCharArray10B0; var VArgPCharArray10B0:PCharArray10B0;
ArgPCharArray10B1: PCharArray10B1; var VArgPCharArray10B1:PCharArray10B1;
ArgPPCharArray: PPCharArray; var VArgPPCharArray:PPCharArray;
ArgPPCharArray10B0: PPCharArray10B0; var VArgPPCharArray10B0:PPCharArray10B0;
ArgPPCharArray10B1: PPCharArray10B1; var VArgPPCharArray10B1:PPCharArray10B1;
ArgTMyAnsiStringDArray: TMyAnsiStringDArray; var VArgTMyAnsiStringDArray: TMyAnsiStringDArray;
ArgTMyAnsiStringSArray: TMyAnsiStringSArray; var VArgTMyAnsiStringSArray: TMyAnsiStringSArray;
ArgTMyPAnsiStringDArray: TMyPAnsiStringDArray; var VArgTMyPAnsiStringDArray: TMyPAnsiStringDArray;
ArgTMyPAnsiStringSArray: TMyPAnsiStringSArray; var VArgTMyPAnsiStringSArray: TMyPAnsiStringSArray;
ArgTMyShortStringDArray: TMyShortStringDArray; var VArgTMyShortStringDArray: TMyShortStringDArray;
ArgTMyShortStringSArray: TMyShortStringSArray; var VArgTMyShortStringSArray: TMyShortStringSArray;
ArgTStringHolderObj: TStringHolderObj; var VArgTStringHolderObj: TStringHolderObj;
ArgTStringHolderRec: TStringHolderRec; var VArgTStringHolderRec: TStringHolderRec;
{$ENDIF}
{$IFDEF Global_Call_FooFunc}
//FooFunc(
GlobAnsiString, GlobAnsiString2, // AnsiString
GlobTMyAnsiString, GlobTMyAnsiString2,
GlobPMyAnsiString, GlobPMyAnsiString2,
GlobPPMyAnsiString, GlobPPMyAnsiString2,
GlobTNewAnsiString, GlobTNewAnsiString2,
GlobPNewAnsiString, GlobPNewAnsiString2,
GlobTMyShortString, GlobTMyShortString,
GlobPMyShortString, GlobPMyShortString,
GlobPPMyShortString, GlobPPMyShortString,
GlobTNewhortString, GlobTNewhortString,
GlobPNewhortString, GlobPNewhortString,
GlobTMyWideString, GlobTMyWideString,
GlobPMyWideString, GlobPMyWideString,
GlobPPMyWideString, GlobPPMyWideString,
GlobTNewWideString, GlobTNewWideString,
GlobPNewWideString, GlobPNewWideString,
GlobTMyString10, GlobTMyString10,
GlobPMyString10, GlobPMyString10,
GlobPPMyString10, GlobPPMyString10,
GlobPChar, GlobPChar,
GlobPPChar, GlobPPChar,
// Array of char types
GlobTCharArray, GlobTCharArray,
GlobTCharArray10B0, GlobTCharArray10B0,
GlobTCharArray10B1, GlobTCharArray10B1,
GlobPCharArray, GlobPCharArray,
GlobPCharArray10B0, GlobPCharArray10B0,
GlobPCharArray10B1, GlobPCharArray10B1,
GlobPPCharArray, GlobPPCharArray,
GlobPPCharArray10B0, GlobPPCharArray10B0,
GlobPPCharArray10B1, GlobPPCharArray10B1,
GlobTMyAnsiStringDArray, GlobTMyAnsiStringDArray2,
GlobTMyAnsiStringSArray, GlobTMyAnsiStringSArray2,
GlobTMyPAnsiStringDArray, GlobTMyPAnsiStringDArray2,
GlobTMyPAnsiStringSArray, GlobTMyPAnsiStringSArray2,
GlobTMyShortStringDArray, GlobTMyShortStringDArray2,
GlobTMyShortStringSArray, GlobTMyShortStringSArray2,
GlobTStringHolderObj, GlobTStringHolderObj2,
GlobTStringHolderRec, GlobTStringHolderRec2,
{$ENDIF}
{$IFDEF FooFunc_LocalVar}
//var
VarAnsiString: AnsiString;
VarTMyAnsiString: TMyAnsiString;
VarPMyAnsiString: PMyAnsiString;
VarPPMyAnsiString: PPMyAnsiString;
VarRAnsiString: ^AnsiString;
VarTNewAnsiString: TNewAnsiString;
VarPNewAnsiString: PNewAnsiString;
VarTMyShortString: TMyShortString;
VarPMyShortString: PMyShortString;
VarPPMyShortString: PPMyShortString;
VarRShortString: ^ShortString;
VarTNewhortString: TNewhortString;
VarPNewhortString: PNewhortString;
VarTMyWideString: TMyWideString;
VarPMyWideString: PMyWideString;
VarPPMyWideString: PPMyWideString;
VarRWideString: ^WideString;
VarTNewWideString: TNewWideString;
VarPNewWideString: PNewWideString;
VarTMyString10: TMyString10;
VarPMyString10: PMyString10;
VarPPMyString10: PPMyString10;
VarString15: string[15];
VarPChar: PChar;
VarPPChar: PPChar;
VarRChar: ^Char;
VarRPChar: ^PChar;
// Array of char types
VarTCharArray: TCharArray;
VarTCharArray10B0: TCharArray10B0;
VarTCharArray10B1: TCharArray10B1;
VarACharArray: Array of Char;
VarACharArray10B0: Array [0..9] of Char;
VarACharArray10B1: Array [1..10] of Char;
VarPCharArray: PCharArray;
VarPCharArray10B0: PCharArray10B0;
VarPCharArray10B1: PCharArray10B1;
VarRCharArray: ^TCharArray;
VarRCharArray10B0: ^TCharArray10B0;
VarRCharArray10B1: ^TCharArray10B1;
VarPPCharArray: PPCharArray;
VarPPCharArray10B0: PPCharArray10B0;
VarPPCharArray10B1: PPCharArray10B1;
VarTMyAnsiStringDArray: TMyAnsiStringDArray;
VarTMyAnsiStringSArray: TMyAnsiStringSArray;
VarAMyAnsiStringDArray: Array of AnsiString;
VarAMyAnsiStringSArray: Array [3..5] of AnsiString;
VarTStringHolderObj: TStringHolderObj;
VarTStringHolderRec: TStringHolderRec;
const
ConstUtf8TextAnsi: AnsiString = 'a üü1'' \\t 2 \t 3'#9'4'#13'5\n6';
ConstUtf8TextShortStr: ShortString = 'a üü1'' \\t 2 \t 3'#9'4'#13'5\n6';
ConstUtf8TextShort: String[80] = 'a üü1'' \\t 2 \t 3'#9'4'#13'5\n6';
ConstUtf8TextAnsi2: AnsiString = 'üü''1'; // start with utf8
ConstUtf8TextShortStr2: ShortString = 'üü''1';
ConstUtf8TextShort2: String[80] = 'üü''1';
ConstUtf8TextAnsiBad: AnsiString = 'a '#170'b';
ConstUtf8TextShortStrBad: ShortString = 'a '#170'b';
ConstUtf8TextShortBad: String[80] = 'a '#170'b';
var
VarUtf8TextAnsi, VarUtf8TextAnsi2: AnsiString;
VarUtf8TextShort, VarUtf8TextShort2: String[80];
VarUtf8TextShortStr, VarUtf8TextShortStr2: ShortString;
VarUtf8TextAnsiBad: AnsiString;
VarUtf8TextShortBad: String[80];
VarUtf8TextShortStrBad: ShortString;
{$ENDIF}
{$IFDEF Global_Var}
//var
GlobAnsiString, GlobAnsiString2: AnsiString;
GlobTMyAnsiString, GlobTMyAnsiString2: TMyAnsiString;
GlobTMyAnsiString_P, GlobTMyAnsiString_P2: TMyAnsiString;
GlobPMyAnsiString, GlobPMyAnsiString2: PMyAnsiString;
GlobPPMyAnsiString, GlobPPMyAnsiString2: PPMyAnsiString;
GlobRAnsiString, GlobRAnsiString2: ^AnsiString;
GlobTNewAnsiString, GlobTNewAnsiString2: TNewAnsiString;
GlobTNewAnsiString_P, GlobTNewAnsiString_P2: TNewAnsiString;
GlobPNewAnsiString, GlobPNewAnsiString2: PNewAnsiString;
GlobTMyShortString, GlobTMyShortString2: TMyShortString;
GlobPMyShortString, GlobPMyShortString2: PMyShortString;
GlobPPMyShortString, GlobPPMyShortString2: PPMyShortString;
GlobRShortString, GlobRShortString2: ^ShortString;
GlobTNewhortString, GlobTNewhortString2: TNewhortString;
GlobPNewhortString, GlobPNewhortString2: PNewhortString;
GlobTMyWideString, GlobTMyWideString2: TMyWideString;
GlobPMyWideString, GlobPMyWideString2: PMyWideString;
GlobPPMyWideString, GlobPPMyWideString2: PPMyWideString;
GlobRWideString, GlobRWideString2: ^WideString;
GlobTNewWideString, GlobTNewWideString2: TNewWideString;
GlobPNewWideString, GlobPNewWideString2: PNewWideString;
GlobTMyString10, GlobTMyString102: TMyString10;
GlobPMyString10, GlobPMyString102: PMyString10;
GlobPPMyString10, GlobPPMyString102: PPMyString10;
GlobString15, GlobString152: string[15];
GlobPChar, GlobPChar2: PChar;
GlobPPChar, GlobPPChar2: PPChar;
GlobRChar, GlobRChar2: ^Char;
GlobRPChar, GlobRPChar2: ^PChar;
// Array of char types
GlobTCharArray, GlobTCharArray2: TCharArray;
GlobTCharArray10B0, GlobTCharArray10B02: TCharArray10B0;
GlobTCharArray10B1, GlobTCharArray10B12: TCharArray10B1;
GlobACharArray, GlobACharArray2: Array of Char;
GlobACharArray10B0, GlobACharArray10B02: Array [0..9] of Char;
GlobACharArray10B1, GlobACharArray10B12: Array [1..10] of Char;
GlobPCharArray, GlobPCharArray2: PCharArray;
GlobPCharArray10B0, GlobPCharArray10B02: PCharArray10B0;
GlobPCharArray10B1, GlobPCharArray10B12: PCharArray10B1;
GlobRCharArray, GlobRCharArray2: ^TCharArray;
GlobRCharArray10B0, GlobRCharArray10B02: ^TCharArray10B0;
GlobRCharArray10B1, GlobRCharArray10B12: ^TCharArray10B1;
GlobPPCharArray, GlobPPCharArray2: PPCharArray;
GlobPPCharArray10B0, GlobPPCharArray10B02: PPCharArray10B0;
GlobPPCharArray10B1, GlobPPCharArray10B12: PPCharArray10B1;
GlobTMyAnsiStringDArray, GlobTMyAnsiStringDArray2: TMyAnsiStringDArray;
GlobTMyAnsiStringSArray, GlobTMyAnsiStringSArray2: TMyAnsiStringSArray;
GlobAMyAnsiStringDArray, GlobAMyAnsiStringDArray2: Array of AnsiString;
GlobAMyAnsiStringSArray, GlobAMyAnsiStringSArray2: Array [3..5] of AnsiString;
GlobTMyPAnsiStringDArray, GlobTMyPAnsiStringDArray2: TMyPAnsiStringDArray;
GlobTMyPAnsiStringSArray, GlobTMyPAnsiStringSArray2: TMyPAnsiStringSArray;
GlobTMyShortStringDArray, GlobTMyShortStringDArray2: TMyShortStringDArray;
GlobTMyShortStringSArray, GlobTMyShortStringSArray2: TMyShortStringSArray;
GlobTStringHolderObj, GlobTStringHolderObj2: TStringHolderObj;
GlobTStringHolderRec, GlobTStringHolderRec2: TStringHolderRec;
{$ENDIF}
{%endregion VARIABLES}
{%region CODE (initilization)}
{$IFDEF FooFunc_Body}
//begin
VarAnsiString := 'abcd';
VarTMyAnsiString := ArgTMyAnsiString + '-var';
VarPMyAnsiString := ArgPMyAnsiString;
VarPPMyAnsiString := ArgPPMyAnsiString;
VarTNewAnsiString := ArgTNewAnsiString + '-var';
VarPNewAnsiString := ArgPNewAnsiString;
VarTMyShortString := ArgTMyShortString + '-var';
VarPMyShortString := ArgPMyShortString;
VarPPMyShortString := ArgPPMyShortString;
VarTNewhortString := ArgTNewhortString + '-var';
VarPNewhortString := ArgPNewhortString;
VarTMyWideString := ArgTMyWideString + '-var';
VarPMyWideString := ArgPMyWideString;
VarPPMyWideString := ArgPPMyWideString;
VarTNewWideString := ArgTNewWideString + '-var';
VarPNewWideString := ArgPNewWideString;
VarTMyString10 := ArgTMyString10 + '-var';
VarPMyString10 := ArgPMyString10;
VarPPMyString10 := ArgPPMyString10;
// In place defined types
VarRAnsiString := @ArgTMyAnsiString;
VarRShortString := @ArgTMyShortString;
VarRWideString := @ArgTMyWideString;
VarString15 := 'T15' +#10#13 + 'L2' + #13 + 'L3' +#10 +'L4';
/////
setlength(VarACharArray,2);
VarACharArray10B0[1] := 'a';
VarACharArray10B1[1] := 'b';
VarUtf8TextAnsi := ConstUtf8TextAnsi;
VarUtf8TextShort := ConstUtf8TextShort;
VarUtf8TextShortStr := ConstUtf8TextShortStr;
VarUtf8TextAnsi2 := ConstUtf8TextAnsi2;
VarUtf8TextShort2 := ConstUtf8TextShort2;
VarUtf8TextShortStr2 := ConstUtf8TextShortStr2;
VarUtf8TextAnsiBad := ConstUtf8TextAnsiBad;
VarUtf8TextShortBad := ConstUtf8TextShortBad;
VarUtf8TextShortStrBad := ConstUtf8TextShortStrBad;
{$ENDIF}
{$IFDEF Global_Body}
//begin
GlobAnsiString := 'Ansi';
GlobAnsiString2 := 'Ansi 2';
GlobTMyAnsiString := 'MyAnsi';
GlobTMyAnsiString2 := 'MyAnsi 2';
GlobTMyAnsiString_P := 'MyAnsi P';
GlobTMyAnsiString_P2 := 'MyAnsi P2';
GlobPMyAnsiString := @GlobTMyAnsiString_P;
GlobPMyAnsiString2 := @GlobTMyAnsiString_P2;
GlobPPMyAnsiString := @GlobPMyAnsiString;
GlobPPMyAnsiString2 := @GlobPMyAnsiString2;
//GlobRAnsiString, GlobRAnsiString2: ^AnsiString;
GlobTNewAnsiString := 'NewAnsi';
GlobTNewAnsiString2 := 'NewAnsi 2';
GlobTNewAnsiString_P := 'NewAnsi P';
GlobTNewAnsiString_P2 := 'NewAnsi P2';
GlobPNewAnsiString := @GlobTNewAnsiString_P;
GlobPNewAnsiString2 := @GlobTNewAnsiString_P2;
//GlobTMyShortString, GlobTMyShortString2: TMyShortString;
//GlobPMyShortString, GlobPMyShortString2: PMyShortString;
//GlobPPMyShortString, GlobPPMyShortString2: PPMyShortString;
//GlobRShortString, GlobRShortString2: ^ShortString;
//
//GlobTNewhortString, GlobTNewhortString2: TNewhortString;
//GlobPNewhortString, GlobPNewhortString2: PNewhortString;
//
//GlobTMyWideString, GlobTMyWideString2: TMyWideString;
//GlobPMyWideString, GlobPMyWideString2: PMyWideString;
//GlobPPMyWideString, GlobPPMyWideString2: PPMyWideString;
//GlobRWideString, GlobRWideString2: ^WideString;
//
//GlobTNewWideString, GlobTNewWideString2: TNewWideString;
//GlobPNewWideString, GlobPNewWideString2: PNewWideString;
//
//GlobTMyString10, GlobTMyString102: TMyString10;
//GlobPMyString10, GlobPMyString102: PMyString10;
//GlobPPMyString10, GlobPPMyString102: PPMyString10;
//
//GlobString15, GlobString152: string[15];
//
//GlobPChar, GlobPChar2: PChar;
//GlobPPChar, GlobPPChar2: PPChar;
//GlobRChar, GlobRChar2: ^Char;
//GlobRPChar, GlobRPChar2: ^PChar;
//
//// Array of char types
//GlobTCharArray, GlobTCharArray2: TCharArray;
//GlobTCharArray10B0, GlobTCharArray10B02: TCharArray10B0;
//GlobTCharArray10B1, GlobTCharArray10B12: TCharArray10B1;
//GlobACharArray, GlobACharArray2: Array of Char;
//GlobACharArray10B0, GlobACharArray10B02: Array [0..9] of Char;
//GlobACharArray10B1, GlobACharArray10B12: Array [1..10] of Char;
//
//GlobPCharArray, GlobPCharArray2: PCharArray;
//GlobPCharArray10B0, GlobPCharArray10B02: PCharArray10B0;
//GlobPCharArray10B1, GlobPCharArray10B12: PCharArray10B1;
//GlobRCharArray, GlobRCharArray2: ^TCharArray;
//GlobRCharArray10B0, GlobRCharArray10B02: ^TCharArray10B0;
//GlobRCharArray10B1, GlobRCharArray10B12: ^TCharArray10B1;
//
//GlobPPCharArray, GlobPPCharArray2: PPCharArray;
//GlobPPCharArray10B0, GlobPPCharArray10B02: PPCharArray10B0;
//GlobPPCharArray10B1, GlobPPCharArray10B12: PPCharArray10B1;
//
SetLength(GlobTMyAnsiStringDArray, 3);
SetLength(GlobTMyAnsiStringDArray2, 3);
GlobTMyAnsiStringDArray[0] := 'DArray1 Str0';
GlobTMyAnsiStringDArray[1] := 'DArray1 Str1';
GlobTMyAnsiStringDArray2[0] := 'DArray2 Str0';
GlobTMyAnsiStringDArray2[1] := 'DArray2 Str1';
GlobTMyAnsiStringSArray[3] := 'SArray1 Str3';
GlobTMyAnsiStringSArray[4] := 'SArray1 Str4';
GlobTMyAnsiStringSArray2[3] := 'SArray2 Str3';
GlobTMyAnsiStringSArray2[4] := 'SArray2 Str4';
//GlobAMyAnsiStringDArray, GlobAMyAnsiStringDArray2: Array of AnsiString;
//GlobAMyAnsiStringSArray, GlobAMyAnsiStringSArray2: Array [3..5] of AnsiString;
SetLength(GlobAMyAnsiStringDArray, 3);
SetLength(GlobAMyAnsiStringDArray2, 3);
GlobAMyAnsiStringDArray[0] := 'ADArray1 Str0';
GlobAMyAnsiStringDArray[1] := 'ADArray1 Str1';
GlobAMyAnsiStringDArray2[0] := 'ADArray2 Str0';
GlobAMyAnsiStringDArray2[1] := 'ADArray2 Str1';
GlobAMyAnsiStringSArray[3] := 'ASArray1 Str3';
GlobAMyAnsiStringSArray[4] := 'ASArray1 Str4';
GlobAMyAnsiStringSArray2[3] := 'ASArray2 Str3';
GlobAMyAnsiStringSArray2[4] := 'ASArray2 Str4';
//GlobTMyPAnsiStringDArray, GlobTMyPAnsiStringDArray2: TMyPAnsiStringDArray;
//GlobTMyPAnsiStringSArray, GlobTMyPAnsiStringSArray2: TMyPAnsiStringSArray;
SetLength(GlobTMyPAnsiStringDArray, 3);
SetLength(GlobTMyPAnsiStringDArray2, 3);
GlobTMyPAnsiStringDArray[0] := @GlobTMyAnsiStringDArray[0];
GlobTMyPAnsiStringDArray[1] := @GlobTMyAnsiStringDArray[1];
GlobTMyPAnsiStringDArray2[0] := @GlobTMyAnsiStringDArray2[0];
GlobTMyPAnsiStringDArray2[1] := @GlobTMyAnsiStringDArray2[1];
GlobTMyPAnsiStringSArray[3] := @GlobTMyAnsiStringSArray[3];
GlobTMyPAnsiStringSArray[4] := @GlobTMyAnsiStringSArray[4];
GlobTMyPAnsiStringSArray2[3] := @GlobTMyAnsiStringSArray2[3];
GlobTMyPAnsiStringSArray2[4] := @GlobTMyAnsiStringSArray2[4];
//GlobTMyShortStringDArray, GlobTMyShortStringDArray2: TMyShortStringDArray;
//GlobTMyShortStringSArray, GlobTMyShortStringSArray2: TMyShortStringSArray;
SetLength(GlobTMyShortStringDArray, 3);
SetLength(GlobTMyShortStringDArray2, 3);
GlobTMyShortStringDArray[0] := 'DArray1 Short0';
GlobTMyShortStringDArray[1] := 'DArray1 Short1';
GlobTMyShortStringDArray2[0] := 'DArray2 Short0';
GlobTMyShortStringDArray2[1] := 'DArray2 Short1';
GlobTMyShortStringSArray[3] := 'SArray1 Short3';
GlobTMyShortStringSArray[4] := 'SArray1 Short4';
GlobTMyShortStringSArray2[3] := 'SArray2 Short3';
GlobTMyShortStringSArray2[4] := 'SArray2 Short4';
GlobTStringHolderObj := TStringHolderObj.Create;
GlobTStringHolderObj.FTMyAnsiString := 'Obj1 MyAnsi';
GlobTStringHolderObj.FTMyShortString := 'Obj1 Short';
GlobTStringHolderObj2 := TStringHolderObj.Create;
GlobTStringHolderObj2.FTMyAnsiString := 'Obj2 MyAnsi';
GlobTStringHolderObj2.FTMyShortString := 'Obj2 Short';
GlobTStringHolderRec.FTMyAnsiString := 'Rec1 MyAnsi';
GlobTStringHolderRec.FTMyShortString := 'Rec1 Short';
GlobTStringHolderRec2.FTMyAnsiString := 'Rec2 MyAnsi';
GlobTStringHolderRec2.FTMyShortString := 'Rec2 Short';
GlobTMyShortString := 'short';
GlobPMyShortString := @GlobTMyShortString;
GlobPPMyShortString := @GlobPMyShortString;
GlobTNewhortString := 'newshort';
GlobPNewhortString := @GlobTNewhortString;
GlobTMyWideString := 'wide';
GlobPMyWideString := @GlobTMyWideString;
GlobPPMyWideString := @GlobPMyWideString;
GlobTNewWideString := 'newwide';
GlobPNewWideString := @GlobTNewWideString;
GlobTMyString10 := 's10';
GlobPMyString10 := @GlobTMyString10;
GlobPPMyString10 := @GlobPMyString10;
GlobPChar := @GlobTMyAnsiString[2];
GlobPPChar := @GlobPChar;
// Array of char types
SetLength(GlobTCharArray, 3);
GlobTCharArray[0] := 'A'; GlobTCharArray[1] := 'B'; GlobTCharArray[2] := 'C';
for i := 0 to 9 do begin
GlobTCharArray10B0[i] := chr(ord('D')+i);
GlobTCharArray10B1[i+1] := chr(ord('d')+i);
end;
// In place defined types
GlobRAnsiString := @GlobTMyAnsiString;
GlobRShortString := @GlobRAnsiString; // XXXXXXXXXXXXXXX
GlobRWideString := @GlobRShortString; // XXXXXXXXXXXXXXX
GlobString15 := 'g15';
{$ENDIF}
{$IFDEF Global_Body_NIL}
//begin
GlobAnsiString := '';
GlobAnsiString2 := '';
GlobTMyAnsiString := '';
GlobPMyAnsiString := nil;
GlobPPMyAnsiString := nil;
GlobTNewAnsiString := '';
GlobPNewAnsiString := nil;
GlobTMyShortString := '';
GlobPMyShortString := nil;
GlobPPMyShortString := nil;
GlobTNewhortString := '';
GlobPNewhortString := nil;
GlobTMyWideString := '';
GlobPMyWideString := nil;
GlobPPMyWideString := nil;
GlobTNewWideString := '';
GlobPNewWideString := nil;
GlobTMyString10 := '';
GlobPMyString10 := nil;
GlobPPMyString10 := nil;
GlobPChar := nil;
GlobPPChar := nil;
{$ENDIF}
{%endregion CODE (initilization)}