1
0
mirror of https://github.com/moparisthebest/Simba synced 2024-11-21 16:55:01 -05:00

PSTest also works with safecall, but I doubt it'll work for Linux.. worth testing though?

This commit is contained in:
Niels 2010-04-07 20:09:39 +02:00
parent 9d67a02b99
commit 3e953ae6be
6 changed files with 209 additions and 122 deletions

View File

@ -8,10 +8,10 @@
<TargetFileExt Value=".exe"/>
<Title Value="TestApp"/>
<UseXPManifest Value="True"/>
<ActiveEditorIndexAtStart Value="2"/>
<ActiveWindowIndexAtStart Value="0"/>
</General>
<VersionInfo>
<ProjectVersion Value=""/>
<StringTable Comments="" CompanyName="" FileDescription="" FileVersion="0.0.0.0" InternalName="" LegalCopyright="" LegalTrademarks="" OriginalFilename="" ProductName="" ProductVersion=""/>
</VersionInfo>
<PublishOptions>
<Version Value="2"/>
@ -35,7 +35,12 @@
<Filename Value="project1.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="project1"/>
<UsageCount Value="24"/>
<EditorIndex Value="1"/>
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="14" Y="20"/>
<UsageCount Value="25"/>
<Loaded Value="True"/>
</Unit0>
<Unit1>
<Filename Value="unit1.pas"/>
@ -43,121 +48,123 @@
<ComponentName Value="Form1"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="Unit1"/>
<CursorPos X="75" Y="10"/>
<TopLine Value="1"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="0"/>
<UsageCount Value="24"/>
<WindowIndex Value="0"/>
<TopLine Value="127"/>
<CursorPos X="97" Y="138"/>
<UsageCount Value="25"/>
<Loaded Value="True"/>
</Unit1>
<Unit2>
<Filename Value="..\..\Source\uPSRuntime.pas"/>
<UnitName Value="uPSRuntime"/>
<CursorPos X="26" Y="11271"/>
<TopLine Value="11259"/>
<CursorPos X="26" Y="11271"/>
<UsageCount Value="10"/>
</Unit2>
<Unit3>
<Filename Value="..\..\Source\uPSUtils.pas"/>
<UnitName Value="uPSUtils"/>
<CursorPos X="22" Y="325"/>
<TopLine Value="309"/>
<CursorPos X="22" Y="325"/>
<UsageCount Value="10"/>
</Unit3>
<Unit4>
<Filename Value="..\..\..\..\FPC\FPCCheckout\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="3" Y="160"/>
<Filename Value="C:\FPC\FPCCheckout\rtl\objpas\classes\classesh.inc"/>
<TopLine Value="144"/>
<CursorPos X="3" Y="160"/>
<UsageCount Value="10"/>
</Unit4>
<Unit5>
<Filename Value="..\..\Source\uPSPreProcessor.pas"/>
<UnitName Value="uPSPreProcessor"/>
<CursorPos X="28" Y="5"/>
<TopLine Value="1"/>
<CursorPos X="28" Y="5"/>
<UsageCount Value="10"/>
</Unit5>
<Unit6>
<Filename Value="..\..\Source\uPSR_controls.pas"/>
<UnitName Value="uPSR_controls"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="10"/>
</Unit6>
<Unit7>
<Filename Value="..\..\..\..\lazarus\lcl\controls.pp"/>
<Filename Value="..\..\..\lcl\controls.pp"/>
<UnitName Value="Controls"/>
<CursorPos X="37" Y="324"/>
<TopLine Value="318"/>
<CursorPos X="37" Y="324"/>
<UsageCount Value="10"/>
</Unit7>
<Unit8>
<Filename Value="..\..\Source\testps.pas"/>
<UnitName Value="TestPS"/>
<CursorPos X="32" Y="86"/>
<TopLine Value="83"/>
<CursorPos X="32" Y="86"/>
<UsageCount Value="10"/>
</Unit8>
<Unit9>
<Filename Value="testps.pas"/>
<UnitName Value="TestPS"/>
<CursorPos X="1" Y="119"/>
<TopLine Value="88"/>
<EditorIndex Value="1"/>
<EditorIndex Value="2"/>
<WindowIndex Value="0"/>
<TopLine Value="95"/>
<CursorPos X="19" Y="19"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit9>
<Unit10>
<Filename Value="..\..\..\..\Documents\pascalscript\Source\uPSRuntime.pas"/>
<Filename Value="C:\Documents\pascalscript\Source\uPSRuntime.pas"/>
<UnitName Value="uPSRuntime"/>
<CursorPos X="12" Y="2"/>
<TopLine Value="1"/>
<CursorPos X="12" Y="2"/>
<UsageCount Value="10"/>
</Unit10>
<Unit11>
<Filename Value="..\..\..\..\Documents\pascalscript\Source\uPSUtils.pas"/>
<Filename Value="C:\Documents\pascalscript\Source\uPSUtils.pas"/>
<UnitName Value="uPSUtils"/>
<CursorPos X="25" Y="11"/>
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<EditorIndex Value="3"/>
<CursorPos X="25" Y="11"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit11>
<Unit12>
<Filename Value="..\..\..\..\Documents\pascalscript\Source\uPSComponent.pas"/>
<Filename Value="C:\Documents\pascalscript\Source\uPSComponent.pas"/>
<UnitName Value="uPSComponent"/>
<CursorPos X="24" Y="16"/>
<TopLine Value="1"/>
<CursorPos X="24" Y="16"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<Filename Value="..\..\..\..\Documents\pascalscript\Source\upsutils.pas"/>
<UnitName Value="uPSUtils"/>
<CursorPos X="39" Y="15"/>
<TopLine Value="1"/>
<Filename Value="C:\Documents\pascalscript\Source\PascalScript.inc"/>
<TopLine Value="30"/>
<CursorPos X="32" Y="48"/>
<UsageCount Value="10"/>
</Unit13>
<Unit14>
<Filename Value="..\..\..\..\Documents\pascalscript\Source\PascalScript.inc"/>
<CursorPos X="32" Y="48"/>
<TopLine Value="30"/>
<Filename Value="C:\Documents\pascalscript\Source\PascalScriptFPC.inc"/>
<TopLine Value="1"/>
<CursorPos X="28" Y="15"/>
<UsageCount Value="10"/>
</Unit14>
<Unit15>
<Filename Value="..\..\..\..\Documents\pascalscript\Source\PascalScriptFPC.inc"/>
<CursorPos X="28" Y="15"/>
<Filename Value="C:\Documents\pascalscript\Source\x86.inc"/>
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="65" Y="115"/>
<UsageCount Value="10"/>
</Unit15>
<Unit16>
<Filename Value="..\..\..\..\Documents\pascalscript\Source\x86.inc"/>
<CursorPos X="65" Y="115"/>
<TopLine Value="1"/>
<EditorIndex Value="2"/>
<Filename Value="..\..\Units\PascalScript\uPSComponent.pas"/>
<UnitName Value="uPSComponent"/>
<WindowIndex Value="0"/>
<TopLine Value="479"/>
<CursorPos X="31" Y="498"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit16>
</Units>
<JumpHistory Count="7" HistoryIndex="6">
<JumpHistory Count="24" HistoryIndex="23">
<Position1>
<Filename Value="testps.pas"/>
<Caret Line="20" Column="44" TopLine="1"/>
@ -186,6 +193,74 @@
<Filename Value="testps.pas"/>
<Caret Line="119" Column="1" TopLine="88"/>
</Position7>
<Position8>
<Filename Value="project1.lpr"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position8>
<Position9>
<Filename Value="project1.lpr"/>
<Caret Line="21" Column="1" TopLine="1"/>
</Position9>
<Position10>
<Filename Value="project1.lpr"/>
<Caret Line="17" Column="93" TopLine="1"/>
</Position10>
<Position11>
<Filename Value="project1.lpr"/>
<Caret Line="21" Column="1" TopLine="1"/>
</Position11>
<Position12>
<Filename Value="unit1.pas"/>
<Caret Line="107" Column="45" TopLine="123"/>
</Position12>
<Position13>
<Filename Value="testps.pas"/>
<Caret Line="18" Column="42" TopLine="1"/>
</Position13>
<Position14>
<Filename Value="testps.pas"/>
<Caret Line="33" Column="47" TopLine="1"/>
</Position14>
<Position15>
<Filename Value="testps.pas"/>
<Caret Line="16" Column="28" TopLine="1"/>
</Position15>
<Position16>
<Filename Value="testps.pas"/>
<Caret Line="38" Column="76" TopLine="10"/>
</Position16>
<Position17>
<Filename Value="testps.pas"/>
<Caret Line="17" Column="34" TopLine="1"/>
</Position17>
<Position18>
<Filename Value="testps.pas"/>
<Caret Line="38" Column="68" TopLine="19"/>
</Position18>
<Position19>
<Filename Value="testps.pas"/>
<Caret Line="8" Column="34" TopLine="1"/>
</Position19>
<Position20>
<Filename Value="testps.pas"/>
<Caret Line="17" Column="42" TopLine="3"/>
</Position20>
<Position21>
<Filename Value="testps.pas"/>
<Caret Line="26" Column="52" TopLine="1"/>
</Position21>
<Position22>
<Filename Value="unit1.pas"/>
<Caret Line="161" Column="18" TopLine="139"/>
</Position22>
<Position23>
<Filename Value="testps.pas"/>
<Caret Line="125" Column="55" TopLine="95"/>
</Position23>
<Position24>
<Filename Value="testps.pas"/>
<Caret Line="62" Column="17" TopLine="43"/>
</Position24>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>

View File

@ -0,0 +1,6 @@
#define RT_MANIFEST 24
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2
#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "project1.manifest"

View File

@ -13,15 +13,15 @@ type
x, y:integer;
end;
function MakeArr : TStringArray;
procedure TestParameters(Int1,Int2,Int3,Int4,Int5,Int6 : integer);
function TestResult(Int1,Int2,Int3,Int4,Int5,Int6 : integer): Integer;
function TestString(Str1,Str2,Str3 : string) : string;
function TestStringEdit(var Str : string) : String;
procedure TestArrayPassing( Arr : TStringArray);
Procedure TestArrayEdit(var Arr : TStringArray);
function TestArrayFull(var Arr1: TStringArray; Arr2 : TStringArray): TStringArray;
function makePoint(x, y: integer): w_Tpoint;
function MakeArr : TStringArray; safecall;
procedure TestParameters(Int1,Int2,Int3,Int4,Int5,Int6 : integer); safecall;
function TestResult(Int1,Int2,Int3,Int4,Int5,Int6 : integer): Integer; safecall;
function TestString(Str1,Str2,Str3 : string) : string; safecall;
function TestStringEdit(var Str : string) : String; safecall;
procedure TestArrayPassing( Arr : TStringArray); safecall;
Procedure TestArrayEdit(var Arr : TStringArray); safecall;
function TestArrayFull(var Arr1: TStringArray; Arr2 : TStringArray): TStringArray; safecall;
function makePoint(x, y: integer): w_Tpoint; safecall;
implementation
@ -33,7 +33,7 @@ begin;
Form1.Memo2.Lines.add(s);
end;
procedure TestParameters(Int1,Int2,Int3,Int4,Int5,Int6 : integer);
procedure TestParameters(Int1,Int2,Int3,Int4,Int5,Int6 : integer); safecall;
begin;
Writeln('Parameters are: ' + format('%d %d %d %d %d %d',[int1,int2,int3,int4,int5,int6]));
if (int1 <> 1) or (int2 <> 2) or (int3 <> 3) or (int4 <> 4) or (int5 <> 5) or (int6 <> 6) then
@ -42,13 +42,13 @@ begin;
Writeln('Passed this test');
end;
function TestResult(Int1,Int2,Int3,Int4,Int5,Int6 : integer): Integer;
function TestResult(Int1,Int2,Int3,Int4,Int5,Int6 : integer): Integer; safecall;
begin;
Result := int1 + int2 + int3 + int4 + int5 + int6;
Writeln('Result should be:' + inttostr(int1+int2+int3+int4+int5+int6));
end;
function TestString(Str1,Str2,Str3 : string) : string;
function TestString(Str1,Str2,Str3 : string) : string; safecall;
begin;
if Str1+Str2+str3 = 'lol' then
Writeln('Strings got passed over correctly.');
@ -59,7 +59,7 @@ begin;
Writeln('Result should be a');
end;
function TestStringEdit(var Str : string) : String;
function TestStringEdit(var Str : string) : String; safecall;
begin;
Result := 'False';
if Str <> 'Test' then
@ -70,7 +70,7 @@ begin;
Writeln('Result should be: hopla; Input str should be tseT');
end;
procedure TestArrayPassing(Arr : TStringArray);
procedure TestArrayPassing(Arr : TStringArray); safecall;
var
i : integer;
begin;
@ -80,7 +80,7 @@ begin;
end;
Procedure TestArrayEdit(var Arr : TStringArray);
Procedure TestArrayEdit(var Arr : TStringArray); safecall;
begin;
Writeln('Arr size is ' + inttostr(length(arr)));
SetLength(arr,0);
@ -92,7 +92,7 @@ begin;
arr[4] := '!';
end;
function ConvStrArr( Arr : Array of String): TStringArray;
function ConvStrArr( Arr : Array of String): TStringArray; safecall;
var
Len : Integer;
begin;
@ -101,7 +101,7 @@ begin;
Move(Arr[Low(Arr)], Result[0], Len*SizeOf(String));
end;
function TestArrayFull(var Arr1: TStringArray; Arr2 : TStringArray): TStringArray;
function TestArrayFull(var Arr1: TStringArray; Arr2 : TStringArray): TStringArray; safecall;
begin
Writeln(Format('Len(Arr1) = %d - Len(Arr2) = %d',[Length(Arr1),length(arr2)]));
SetLength(Result,0);
@ -115,14 +115,14 @@ begin
Result := ConvStrArr(['Waza?','Gaat','Alles','Goed']);
end;
function MakeArr : TStringArray;
function MakeArr : TStringArray; safecall;
begin;
setlength(result,2);
result[0] := 'Test0';
Result[1] := 'Wow!';
end;
function makePoint(x, y: integer): w_Tpoint;
function makePoint(x, y: integer): w_Tpoint; safecall;
begin
result.x := x;
result.y := y;

View File

@ -1,19 +1,20 @@
object Form1: TForm1
Left = 347
Height = 300
Top = 314
Width = 400
Left = 237
Height = 302
Top = 312
Width = 536
ActiveControl = Button1
Caption = 'Bug in Pascal Script for Lazarus'
ClientHeight = 300
ClientWidth = 400
ClientHeight = 302
ClientWidth = 536
LCLVersion = '0.9.29'
object Memo1: TMemo
Left = 0
Height = 137
Height = 139
Top = 55
Width = 400
Width = 536
Align = alBottom
Anchors = [akTop, akLeft, akRight, akBottom]
Lines.Strings = (
'program TestPS;'
''
@ -66,7 +67,7 @@ object Form1: TForm1
' for i := 0 to high(arr1) do'
' Writeln(arr1[i]);'
' Writeln('''');'
' Writeln(''Should writeln: Ik ben een geest!'');'
' Writeln(''Should writeln: Testing!'');'
' for i := 0 to high(arr2) do'
' writeln(arr2[i]);'
' writeln('''');'
@ -77,13 +78,15 @@ object Form1: TForm1
'end.'
)
OnChange = Memo1Change
ScrollBars = ssAutoBoth
TabOrder = 0
WordWrap = False
end
object Memo2: TMemo
Left = 0
Height = 108
Top = 192
Width = 400
Top = 194
Width = 536
Align = alBottom
TabOrder = 1
end
@ -91,8 +94,9 @@ object Form1: TForm1
Left = 0
Height = 55
Top = 0
Width = 400
Align = alClient
Width = 536
Align = alCustom
Anchors = [akTop, akLeft, akRight]
Caption = 'Compile'
OnClick = Button1Click
TabOrder = 2

View File

@ -1,43 +1,45 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TForm1','FORMDATA',[
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'['#1#6'Height'#3','#1#3'Top'#3':'#1#5'Wid'
+'th'#3#144#1#13'ActiveControl'#7#7'Button1'#7'Caption'#6' Bug in Pascal Scri'
+'pt for Lazarus'#12'ClientHeight'#3','#1#11'ClientWidth'#3#144#1#10'LCLVersi'
+'on'#6#6'0.9.29'#0#5'TMemo'#5'Memo1'#4'Left'#2#0#6'Height'#3#137#0#3'Top'#2
+'7'#5'Width'#3#144#1#5'Align'#7#8'alBottom'#13'Lines.Strings'#1#6#15'program'
+' TestPS;'#6#0#6#3'var'#6#30' Str,Str1,str2,str3 : String;'#6'$ Arr,Arr1,A'
+'rr2,Arr3 : TStringArray;'#6#14' I : integer;'#6#14' p: w_TPoint;'#6#5'beg'
+'in'#6#30' TestParameters(1,2,3,4,5,6);'#6'1 if TestResult(1,2,3,4,5,6) = '
+'(1+2+3+4+5+6) then'#6'M Writeln(''Result = '' + inttostr(1+2+3+4+5+6) + '
+'''. Passed the result test'')'#6#6' else'#6'> Writeln(''Result = '' + '
+'Inttostr(TestResult(1,2,3,4,5,6)) +'#6#31' ''. Failed @ result test'');'
+#6#22' p := makePoint(2,2);'#6'8 writeln(''p: '' + inttostr(p.x) + '', '' '
+'+ inttostr(p.y));'#6#14' Str1 := ''l'';'#6#14' Str2 := ''o'';'#6#14' Str'
+'3 := ''l'';'#6'* if TestString(Str1,Str2,Str3) = ''a'' then'#6'% Writel'
+'n(''String test succesful.'')'#6#6' else'#6'# Writeln(''String test fai'
+'led.'');'#6'8 if (str1 = ''l'') and (str2 = ''o'') and (str3 = ''l'') then'
+#6'( Writeln(''String test passed again.'')'#6#6' else'#6'# Writeln('
+'''String test failed.'');'#6#16' Str := ''Test'';'#6''' if TestStringEdit'
+'(Str) = ''hopla'' then'#6', Writeln(''TestStringEdit result passed.'')'#6
+#6' else'#6'- Writeln(''TestStringEdit result failed.'');'#6#22' if Str'
+' = ''tseT'' then'#6'+ Writeln(''TestStringEdit input passed.'')'#6#6' e'
+'lse'#6', Writeln(''TestStringEdit input failed.'');'#6#21' TestArrayEdi'
+'t(Arr);'#6'" For i := 0 to Length(arr) - 1 do'#6#20' Writeln(Arr[i]);'#6
+'* Writeln(''it shouldve written: "abcd!"'');'#6'1 Arr := TStringArray(['''
+'Dit'',''is'',''een'',''test'']);'#6#24' TestArrayPassing(arr);'#6'< TestA'
+'rrayPassing(TStringArray([''Dit'',''is'',''een'',''test'']));'#6'& Arr1 :='
+' TStringArray([''W'',''a'',''t'']);'#6'- Arr2 := TStringArray([''T'',''es'
+''',''t'',''ing'']);'#6''' Arr3 := TStringArray([''Wowing'',''!'']);'#6'# '
+'Arr3 := TestArrayFull(Arr1,Arr2);'#6'/ Writeln(''Should writeln: Hoi Hoe G'
+'aat Het?'');'#6#29' for i := 0 to high(arr1) do'#6#21' Writeln(arr1[i])'
+';'#6#14' Writeln('''');'#6'/ Writeln(''Should writeln: Ik ben een geest!'
+''');'#6#29' for i := 0 to high(arr2) do'#6#20' writeln(arr2[i]);'#6#14' '
+' writeln('''');'#6'3 Writeln(''Should writeln: Waza? Gaat alles goed'');'#6
+#29' for I := 0 to high(arr3) do'#6#21' Writeln(arr3[i]);'#6#0#6#4'end.'
+#0#8'OnChange'#7#11'Memo1Change'#8'TabOrder'#2#0#0#0#5'TMemo'#5'Memo2'#4'Lef'
+'t'#2#0#6'Height'#2'l'#3'Top'#3#192#0#5'Width'#3#144#1#5'Align'#7#8'alBottom'
+#8'TabOrder'#2#1#0#0#7'TButton'#7'Button1'#4'Left'#2#0#6'Height'#2'7'#3'Top'
+#2#0#5'Width'#3#144#1#5'Align'#7#8'alClient'#7'Caption'#6#7'Compile'#7'OnCli'
+'ck'#7#12'Button1Click'#8'TabOrder'#2#2#0#0#0
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#237#0#6'Height'#3'.'#1#3'Top'#3'8'#1#5'Wi'
+'dth'#3#24#2#13'ActiveControl'#7#7'Button1'#7'Caption'#6' Bug in Pascal Scri'
+'pt for Lazarus'#12'ClientHeight'#3'.'#1#11'ClientWidth'#3#24#2#10'LCLVersio'
+'n'#6#6'0.9.29'#0#5'TMemo'#5'Memo1'#4'Left'#2#0#6'Height'#3#139#0#3'Top'#2'7'
+#5'Width'#3#24#2#5'Align'#7#8'alBottom'#7'Anchors'#11#5'akTop'#6'akLeft'#7'a'
+'kRight'#8'akBottom'#0#13'Lines.Strings'#1#6#15'program TestPS;'#6#0#6#3'var'
+#6#30' Str,Str1,str2,str3 : String;'#6'$ Arr,Arr1,Arr2,Arr3 : TStringArray'
+';'#6#14' I : integer;'#6#14' p: w_TPoint;'#6#5'begin'#6#30' TestParamete'
+'rs(1,2,3,4,5,6);'#6'1 if TestResult(1,2,3,4,5,6) = (1+2+3+4+5+6) then'#6'M'
+' Writeln(''Result = '' + inttostr(1+2+3+4+5+6) + ''. Passed the result t'
+'est'')'#6#6' else'#6'> Writeln(''Result = '' + Inttostr(TestResult(1,2'
+',3,4,5,6)) +'#6#31' ''. Failed @ result test'');'#6#22' p := makePoint'
+'(2,2);'#6'8 writeln(''p: '' + inttostr(p.x) + '', '' + inttostr(p.y));'#6
+#14' Str1 := ''l'';'#6#14' Str2 := ''o'';'#6#14' Str3 := ''l'';'#6'* if '
+'TestString(Str1,Str2,Str3) = ''a'' then'#6'% Writeln(''String test succe'
+'sful.'')'#6#6' else'#6'# Writeln(''String test failed.'');'#6'8 if (st'
+'r1 = ''l'') and (str2 = ''o'') and (str3 = ''l'') then'#6'( Writeln(''St'
+'ring test passed again.'')'#6#6' else'#6'# Writeln(''String test failed'
+'.'');'#6#16' Str := ''Test'';'#6''' if TestStringEdit(Str) = ''hopla'' th'
+'en'#6', Writeln(''TestStringEdit result passed.'')'#6#6' else'#6'- W'
+'riteln(''TestStringEdit result failed.'');'#6#22' if Str = ''tseT'' then'#6
+'+ Writeln(''TestStringEdit input passed.'')'#6#6' else'#6', Writeln('
+'''TestStringEdit input failed.'');'#6#21' TestArrayEdit(Arr);'#6'" For i '
+':= 0 to Length(arr) - 1 do'#6#20' Writeln(Arr[i]);'#6'* Writeln(''it sh'
+'ouldve written: "abcd!"'');'#6'1 Arr := TStringArray([''Dit'',''is'',''een'
+''',''test'']);'#6#24' TestArrayPassing(arr);'#6'< TestArrayPassing(TStrin'
+'gArray([''Dit'',''is'',''een'',''test'']));'#6'& Arr1 := TStringArray([''W'
+''',''a'',''t'']);'#6'- Arr2 := TStringArray([''T'',''es'',''t'',''ing'']);'
+#6''' Arr3 := TStringArray([''Wowing'',''!'']);'#6'# Arr3 := TestArrayFull'
+'(Arr1,Arr2);'#6'/ Writeln(''Should writeln: Hoi Hoe Gaat Het?'');'#6#29' '
+'for i := 0 to high(arr1) do'#6#21' Writeln(arr1[i]);'#6#14' Writeln('''
+''');'#6'& Writeln(''Should writeln: Testing!'');'#6#29' for i := 0 to hig'
+'h(arr2) do'#6#20' writeln(arr2[i]);'#6#14' writeln('''');'#6'3 Writeln('
+'''Should writeln: Waza? Gaat alles goed'');'#6#29' for I := 0 to high(arr3'
+') do'#6#21' Writeln(arr3[i]);'#6#0#6#4'end.'#0#8'OnChange'#7#11'Memo1Cha'
+'nge'#10'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#0#8'WordWrap'#8#0#0#5'TM'
+'emo'#5'Memo2'#4'Left'#2#0#6'Height'#2'l'#3'Top'#3#194#0#5'Width'#3#24#2#5'A'
+'lign'#7#8'alBottom'#8'TabOrder'#2#1#0#0#7'TButton'#7'Button1'#4'Left'#2#0#6
+'Height'#2'7'#3'Top'#2#0#5'Width'#3#24#2#5'Align'#7#8'alCustom'#7'Anchors'#11
+#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#7'Compile'#7'OnClick'#7#12'But'
+'ton1Click'#8'TabOrder'#2#2#0#0#0
]);

View File

@ -161,16 +161,16 @@ begin
Sender.AddFunction(@testnormal,'function testnormal(num1,num2,num3,num4,num5,num6 : LongInt) : boolean;');
Sender.AddFunctionEx(@teststdcall, 'function teststdcall(num1,num2,num3,num4,num5,num6 : LongInt) : boolean;stdcall;',cdStdCall);
Sender.AddFunctionEx(@testcdecl, 'function testcdecl(num1,num2,num3,num4,num5,num6 : LongInt) : boolean; cdecl;',cdCdecl);
Sender.AddFunction(@DiffTest,'function DiffTest(num : integer; str : string; byt : byte; wor : longword; bool : boolean) : boolean;');
Sender.AddFunction(@TestParameters,'procedure TestParameters(Int1,Int2,Int3,Int4,Int5,Int6 : integer);');
Sender.AddFunction(@TestResult,'function TestResult(Int1,Int2,Int3,Int4,Int5,Int6 : integer): Integer;');
Sender.AddFunction(@TestString,'function TestString(Str1,Str2,Str3 : string) : string;');
Sender.AddFunction(@TestStringEdit,'function TestStringEdit(var Str : string) : String;');
Sender.AddFunction(@TestArrayPassing,'procedure TestArrayPassing(const Arr : TStringArray);');
Sender.AddFunction(@TestArrayEdit,'Procedure TestArrayEdit(var Arr : TStringArray);');
Sender.AddFunction(@TestArrayFull,'function TestArrayFull(var Arr1: TStringArray; Arr2 : TStringArray): TStringArray;');
Sender.AddFunction(@MakeArr,'function MakeArr : TStringArray;');
Sender.AddFunction(@makePoint, 'function makePoint(x, y: integer): w_Tpoint;');
Sender.AddFunctionEx(@DiffTest,'function DiffTest(num : integer; str : string; byt : byte; wor : longword; bool : boolean) : boolean;', cdSafeCall);
Sender.AddFunctionEx(@TestParameters,'procedure TestParameters(Int1,Int2,Int3,Int4,Int5,Int6 : integer);', cdSafeCall);
Sender.AddFunctionEx(@TestResult,'function TestResult(Int1,Int2,Int3,Int4,Int5,Int6 : integer): Integer;', cdSafeCall);
Sender.AddFunctionEx(@TestString,'function TestString(Str1,Str2,Str3 : string) : string;', cdSafeCall);
Sender.AddFunctionEx(@TestStringEdit,'function TestStringEdit(var Str : string) : String;', cdSafeCall);
Sender.AddFunctionEx(@TestArrayPassing,'procedure TestArrayPassing(const Arr : TStringArray);', cdSafeCall);
Sender.AddFunctionEx(@TestArrayEdit,'Procedure TestArrayEdit(var Arr : TStringArray);', cdSafeCall);
Sender.AddFunctionEx(@TestArrayFull,'function TestArrayFull(var Arr1: TStringArray; Arr2 : TStringArray): TStringArray;', cdSafeCall);
Sender.AddFunctionEx(@MakeArr,'function MakeArr : TStringArray;', cdSafeCall);
Sender.AddFunctionEx(@makePoint, 'function makePoint(x, y: integer): w_Tpoint;', cdSafeCall);
end;