mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-06 08:12:42 +02:00

* added an example file for TCustomCheckbox * Improves the formatting of the tarrayexample.pas file * adds some documentation to the TWinControl patch by Graeme git-svn-id: trunk@8984 -
82 lines
1.9 KiB
ObjectPascal
82 lines
1.9 KiB
ObjectPascal
program tarrayexample;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
uses
|
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
|
cthreads,
|
|
{$ENDIF}{$ENDIF}
|
|
Classes,
|
|
strings,
|
|
DynamicArray;
|
|
|
|
type
|
|
TArrayExampleClass = class
|
|
private
|
|
procedure doDestroyItem(Sender: Tobject; Col,Row: Integer;var Item: Pointer);
|
|
end;
|
|
|
|
procedure TArrayExampleClass.doDestroyItem(Sender: Tobject; Col,Row: Integer;
|
|
var Item: Pointer);
|
|
begin
|
|
StrDispose(Item);
|
|
end;
|
|
|
|
|
|
var
|
|
FCols: Tarray;
|
|
ex: TArrayExampleClass;
|
|
|
|
begin
|
|
FCols := TArray.Create;
|
|
ex := TArrayExampleClass.Create;
|
|
FCols.OnDestroyItem := @ex.doDestroyItem;
|
|
|
|
FCols.SetLength(8,8);
|
|
FCols.arr[0,0] := StrNew('string1');
|
|
FCols.arr[4,7] := StrNew('string2');
|
|
FCols.arr[4,3] := StrNew('string3');
|
|
|
|
writeln('0,0:' + Pchar(FCols.arr[0,0]));
|
|
writeln('4,7:' + Pchar(FCols.arr[4,7]));
|
|
|
|
FCols.MoveColRow(True,4,5);
|
|
writeln('after moving column 4 to 5');
|
|
writeln('5,7:' + Pchar(FCols.arr[5,7]));
|
|
writeln('before exchanging row 7 and 3:');
|
|
writeln('5,3:' + Pchar(FCols.arr[5,3]));
|
|
writeln('5,7:' + Pchar(FCols.arr[5,7]));
|
|
|
|
FCols.ExchangeColRow(False,7,3);
|
|
writeln('after exchanging row 7 and 3:');
|
|
writeln('5,3:' + Pchar(FCols.arr[5,3]));
|
|
writeln('5,7:' + Pchar(FCols.arr[5,7]));
|
|
|
|
FCols.DeleteColRow(true,5);
|
|
writeln('after deleting column 5:');
|
|
|
|
try
|
|
writeln('5,3:' + Pchar(FCols.arr[5,3])); //this raises an exception
|
|
except
|
|
writeln ('An exception has taken place be because 5,3 does not exist.');
|
|
end;
|
|
|
|
try
|
|
writeln('5,7:' + Pchar(FCols.arr[5,7])); //this raises an exception
|
|
except
|
|
writeln ('An exception has taken place be because 5,7 does not exist.');
|
|
end;
|
|
|
|
FCols.Clear; writeln('after clear:');
|
|
try
|
|
writeln('4,7:' + Pchar(FCols.arr[4,7])); //this raises an exception
|
|
except
|
|
writeln ('An exception has taken place be because 4,7 does not exist.');
|
|
end;
|
|
|
|
FCols.Destroy;
|
|
ex.Destroy;
|
|
readln;
|
|
end.
|
|
|