Показать сообщение отдельно
  #7  
Старый 10.06.2011, 00:46
bussianko bussianko вне форума
Прохожий
 
Регистрация: 30.03.2011
Адрес: Bataysk
Сообщения: 7
Версия Delphi: Code Gear 2009
Репутация: 10
По умолчанию

Насколько я понял интересует создание собственного класса и его реализация ?Если это так то это будет долгий пример.
Код:
unit uMyObj;

interface

uses SysUtils;

type  //Описываем новый класс данных
  TMyObject = class  // TMyObject прямой наследник класса TObject
  private //Закрытые члены объекта
    FOneVar: Integer; //По сути оба поля класса являются обычными //переменными.
    FTwoVar: String;
    procedure SetOneVar(const Val: Integer);// Процедура для изменения //состояния поля FOneVar
    procedure SetTwoVar(const Val: String); // Аналогично для второго поля
    function GetOneVar: Integer; // Функции для контроля состояния полей
    function GetTwoVar: String;
  public
    constructor Create;override;// Унаследованный коструктор базового объекта тобиш TObject
    destructor Destroy;override; //Унаследованный деструктор базового объекта 
    property OneVar: Integer read GetOneVar write SetOneVar;//А вот это уже свойства доступа к полю экземпляра данного класса
    property TwoVar: String read GetTwoVar write SetTwoVar default 'Hello, World !!!';//Здесь аналогично свойство доступа но с добавкой значения по умолчанию
  end;

implementation

{ TMyObject }

constructor TMyObject.Create;
begin
  inherited;//Перед любыми действиями необходимо вызвать конструктор родительского класса
  FOneVar:= 0;
end;

destructor TMyObject.Destroy;
begin
  FOneVar:= 0;
  FTwoVar:= '';
  inherited;//После выполнения зачистки вызываем деструктор родителя
end;

function TMyObject.GetOneVar: Integer;
begin
  Result:= FOneVar;
end;

function TMyObject.GetTwoVar: String;
begin
  Result:= FTwoVar;
end;

procedure TMyObject.SetOneVar(const Val: Integer);
begin
  if Val <> FOneVar then
    FOneVar:= Val;
end;

procedure TMyObject.SetTwoVar(const Val: String);
begin
  if Val <> FTwoVar then
    FTwoVar:= Val;
end;

end.
Потом где то в программе пишем следующее:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyOb: TMyObject;
begin
  MyObj:= TMyObject;//Создаём наш объект
  MyObj.OneVar:= 15;
  MyOb.TwoVar:= Format("Value from MyObj.OneVar = ", [MyObj.OneVar]);
  MessageDlg(MyObj.TwoVar, mtInformation, [mbOK], 0);
end;
Ответить с цитированием