Показать сообщение отдельно
  #13  
Старый 13.12.2011, 09:59
Аватар для NumLock
NumLock NumLock вне форума
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;
Вложения
Тип файла: rar TArrayClass.rar (2.1 Кбайт, 1 просмотров)
__________________
Пишу программы за еду.
__________________
Ответить с цитированием