unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, testIntListProp, testIntListProp1, testIntListProp2, testIntListProp3, ComCtrls, RightFitStatusBar; type TForm1 = class(TForm) Button1: TButton; testIntListProp11: TtestIntListProp1; testIntListProp31: TtestIntListProp3; testIntListProp21: TtestIntListProp2; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private procedure IntListPropTest1; procedure IntListPropTest2; procedure IntListPropTest3; public { Public 錾 } end; var Form1: TForm1; implementation {$R *.dfm} procedure Check(A, B: Variant); begin Assert(A=B, A +''+ B); end; procedure TForm1.IntListPropTest1; begin testIntListProp11.IntValuesStr := '1;2;3;4;5;6'; Check('1;2;3;4;5;6', testIntListProp11.IntValuesStr); Check(6, testIntListProp11.IntValuesCount); Check(1, testIntListProp11.IntValues[0]); Check(2, testIntListProp11.IntValues[1]); Check(4, testIntListProp11.IntValues[3]); Check(5, testIntListProp11.IntValues[4]); Check(6, testIntListProp11.IntValues[5]); testIntListProp11.IntValuesStr := '10;9;8;7;6;5;4;3;2;1;0'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp11.IntValuesStr); Check(11, testIntListProp11.IntValuesCount); Check(10, testIntListProp11.IntValues[0]); Check(9, testIntListProp11.IntValues[1]); Check(5, testIntListProp11.IntValues[5]); Check(1, testIntListProp11.IntValues[9]); Check(0, testIntListProp11.IntValues[10]); testIntListProp11.IntValuesStr := '1;2;;'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp11.IntValuesStr); testIntListProp11.IntValuesStr := '1;2;'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp11.IntValuesStr); testIntListProp11.IntValuesStr := '0;1;'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp11.IntValuesStr); testIntListProp11.IntValuesStr := ''; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp11.IntValuesStr); testIntListProp11.IntValuesStr := 'aaa'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp11.IntValuesStr); testIntListProp11.IntValuesStr := 'aaa;'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp11.IntValuesStr); testIntListProp11.IntValuesStr := ';'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp11.IntValuesStr); testIntListProp11.IntValuesStr := ';;'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp11.IntValuesStr); testIntListProp11.IntValuesStr := '7;'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp11.IntValuesStr); testIntListProp11.IntValuesStr := '7'; Check('7', testIntListProp11.IntValuesStr); testIntListProp11.IntValuesStr := '7;0'; Check('7;0', testIntListProp11.IntValuesStr); end; procedure TForm1.Button1Click(Sender: TObject); begin IntListPropTest1; end; procedure TForm1.IntListPropTest2; begin testIntListProp21.IntValuesStr := '1;2;3;4;5;6'; Check('1;2;3;4;5;6', testIntListProp21.IntValuesStr); Check(6, testIntListProp21.IntValuesCount); Check(1, testIntListProp21.IntValues[0]); Check(2, testIntListProp21.IntValues[1]); Check(4, testIntListProp21.IntValues[3]); Check(5, testIntListProp21.IntValues[4]); Check(6, testIntListProp21.IntValues[5]); testIntListProp21.IntValuesCount := 3; Check(3, testIntListProp21.IntValuesCount); Check('1;2;3', testIntListProp21.IntValuesStr); Check(1, testIntListProp21.IntValues[0]); Check(2, testIntListProp21.IntValues[1]); Check(3, testIntListProp21.IntValues[2]); testIntListProp21.IntValuesCount := 5; Check(5, testIntListProp21.IntValuesCount); Check('1;2;3;0;0', testIntListProp21.IntValuesStr); Check(1, testIntListProp21.IntValues[0]); Check(2, testIntListProp21.IntValues[1]); Check(3, testIntListProp21.IntValues[2]); Check(0, testIntListProp21.IntValues[3]); Check(0, testIntListProp21.IntValues[4]); testIntListProp21.IntValuesStr := '10;9;8;7;6;5;4;3;2;1;0'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp21.IntValuesStr); Check(11, testIntListProp21.IntValuesCount); Check(10, testIntListProp21.IntValues[0]); Check(9, testIntListProp21.IntValues[1]); Check(5, testIntListProp21.IntValues[5]); Check(1, testIntListProp21.IntValues[9]); Check(0, testIntListProp21.IntValues[10]); testIntListProp21.IntValuesStr := '1;2;;'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp21.IntValuesStr); testIntListProp21.IntValuesStr := '1;2;'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp21.IntValuesStr); testIntListProp21.IntValuesStr := '0;1;'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp21.IntValuesStr); testIntListProp21.IntValuesStr := ''; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp21.IntValuesStr); testIntListProp21.IntValuesStr := 'aaa'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp21.IntValuesStr); testIntListProp21.IntValuesStr := 'aaa;'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp21.IntValuesStr); testIntListProp21.IntValuesStr := ';'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp21.IntValuesStr); testIntListProp21.IntValuesStr := ';;'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp21.IntValuesStr); testIntListProp21.IntValuesStr := '7;'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp21.IntValuesStr); testIntListProp21.IntValues[0] := 100; Check('100;9;8;7;6;5;4;3;2;1;0', testIntListProp21.IntValuesStr); testIntListProp21.IntValues[1] := 200; testIntListProp21.IntValues[2] := 300; testIntListProp21.IntValues[3] := 400; testIntListProp21.IntValues[4] := 500; Check('100;200;300;400;500;5;4;3;2;1;0', testIntListProp21.IntValuesStr); testIntListProp21.IntValuesStr := '7'; Check('7', testIntListProp21.IntValuesStr); testIntListProp21.IntValuesStr := '7;0'; Check('7;0', testIntListProp21.IntValuesStr); end; procedure TForm1.Button2Click(Sender: TObject); begin IntListPropTest2; end; procedure TForm1.IntListPropTest3; begin testIntListProp31.FixIntValuesCount := 0; Check('', testIntListProp31.IntValuesStr); testIntListProp31.FixIntValuesCount := 1; Check('0', testIntListProp31.IntValuesStr); testIntListProp31.FixIntValuesCount := 5; Check('0;0;0;0;0', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := '1;2;3;4;5;6'; Check('0;0;0;0;0', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := '1;2;3;4;5;'; Check('0;0;0;0;0', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := '1;2;3;4;5'; Check('1;2;3;4;5', testIntListProp31.IntValuesStr); Check(1, testIntListProp31.IntValues[0]); Check(2, testIntListProp31.IntValues[1]); Check(3, testIntListProp31.IntValues[2]); Check(4, testIntListProp31.IntValues[3]); Check(5, testIntListProp31.IntValues[4]); testIntListProp31.FixIntValuesCount := 3; Check(3, testIntListProp31.FixIntValuesCount); Check('1;2;3', testIntListProp31.IntValuesStr); Check(1, testIntListProp31.IntValues[0]); Check(2, testIntListProp31.IntValues[1]); Check(3, testIntListProp31.IntValues[2]); testIntListProp31.FixIntValuesCount := 5; Check(5, testIntListProp31.FixIntValuesCount); Check('1;2;3;0;0', testIntListProp31.IntValuesStr); Check(1, testIntListProp31.IntValues[0]); Check(2, testIntListProp31.IntValues[1]); Check(3, testIntListProp31.IntValues[2]); Check(0, testIntListProp31.IntValues[3]); Check(0, testIntListProp31.IntValues[4]); testIntListProp31.FixIntValuesCount := 11; Check('1;2;3;0;0;0;0;0;0;0;0', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := '10;9;8;7;6;5;4;3;2;1;0'; Check('10;9;8;7;6;5;4;3;2;1;0', testIntListProp31.IntValuesStr); Check(11, testIntListProp31.FixIntValuesCount); Check(10, testIntListProp31.IntValues[0]); Check(9, testIntListProp31.IntValues[1]); Check(5, testIntListProp31.IntValues[5]); Check(1, testIntListProp31.IntValues[9]); Check(0, testIntListProp31.IntValues[10]); testIntListProp31.FixIntValuesCount := 2; Check('10;9', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := '1;2;;'; Check('10;9', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := '1;2;'; Check('10;9', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := '0;1;'; Check('10;9', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := ''; Check('10;9', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := 'aaa'; Check('10;9', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := 'aaa;'; Check('10;9', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := ''; Check('10;9', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := ';'; Check('10;9', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := ';;'; Check('10;9', testIntListProp31.IntValuesStr); testIntListProp31.IntValuesStr := '7;'; Check('10;9', testIntListProp31.IntValuesStr); testIntListProp31.IntValues[0] := 100; Check('100;9', testIntListProp31.IntValuesStr); testIntListProp31.IntValues[1] := 200; Check('100;200', testIntListProp31.IntValuesStr); end; procedure TForm1.Button3Click(Sender: TObject); begin IntListPropTest3; end; end.