
13.12.2011, 09:59
|
 |
Let Me Show You
|
|
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
|
|
ну раз пошла такая пьянка, то вот на посошок:
Код:
var
ArrayClass: TArrayClass;
x, y: Integer;
begin
ArrayClass:=TArrayClass.Create;
try
for x:=0 to 7 do
for y:=0 to 7 do
begin
ArrayClass[x, y].ByteArray:=x shl 4 + y;
ArrayClass[x, y].CharArray:=Chr(x shl 4 + y);
end;
ArrayClass[7, 0].ByteArray:=ArrayClass[0, 7].ByteArray;
ArrayClass[1, 7].ByteArray:=ArrayClass[7, 1].ByteArray;
ArrayClass[7, 0].CharArray:=ArrayClass[0, 7].CharArray;
ArrayClass[1, 7].CharArray:=ArrayClass[7, 1].CharArray;
finally
ArrayClass.Free;
end;
end;
Код:
type
TArrayClass = class
private
x, y: Integer;
FByteArray: array [0..7, 0..7] of Byte;
FCharArray: array [0..7, 0..7] of Char;
function GetItem(x, y: Integer): TArrayClass;
function GetByte: Byte;
procedure SetByte(const Value: Byte);
function GetChar: Char;
procedure SetChar(const Value: Char);
public
property Item[x, y: Integer]: TArrayClass read GetItem; default;
property ByteArray: Byte read GetByte write SetByte;
property CharArray: Char read GetChar write SetChar;
end;
{ TArrayClass }
function TArrayClass.GetItem(x, y: Integer): TArrayClass;
begin
Self.x:=x;
Self.y:=y;
Result:=Self;
end;
function TArrayClass.GetByte: Byte;
begin
Result:=FByteArray[x, y];
end;
function TArrayClass.GetChar: Char;
begin
Result:=FCharArray[x, y];
end;
procedure TArrayClass.SetByte(const Value: Byte);
begin
FByteArray[x, y]:=Value;
end;
procedure TArrayClass.SetChar(const Value: Char);
begin
FCharArray[x, y]:=Value;
end;
расширение функционала:
Код:
type
TArrayClass = class
...
public
...
procedure ShowMessage;
end;
procedure TArrayClass.ShowMessage;
begin
Dialogs.ShowMessage(IntToStr(x)+', '+IntToStr(y));
end;
Код:
ArrayClass[3, 5].ShowMessage;
|