Ошибка: Failed to parse the Currency Converter XML document.
$2 101.71


Ошибка: Failed to parse the Currency Converter XML document.
$1 112.87


Ошибка: Failed to parse the Currency Converter XML document.
$1 783.44


Сущность ООП

Одна из вещей, которую вы могли бы захотеть реализовать — пользовательский интерфейс, предоставляющий доступ к файлу персональных данных. ООП предоставляет вам безусловно лучшие механизмы для его хранения, создания, и эксплуатации, делая эти вещи понятными и легкими для понимания.

Вот как вы можете сделать это. Забудьте об диалоговом окне хотя бы на минуту и сконцентрируйтесь на создании файла персональных данных. Скажем, вы редактируете запись человека со следующими полями: First Name, Last Name, Age и Active. Скажем, вам нужны следующие операции при работе с записью: добавление, изменение, удаление и построение списка.


Вам необходимо создать невизуальный объект доступа к файлу, инкапсулирующий вышеупомянутую функциональность. Это может выглядеть приблизительно так:

interface

PPersonRecord = ^TPersonRecord;
TPersonRecord = record

  FirstName: string;
  LastName: string;
  Age: Byte;
  Active: Boolean;
end;

TPersonFile = class(TObject)
private

  FFileName: TFileName;
  FFile: file of TPersonRec;
public

  constructor Create(AFileName: TFileName);
  destructor Destroy; override;
  procedure LoadRecord(Index: Integer);

  procedure SaveRecord(Index: Integer);
  procedure Add(NewPersonRecord: TPersonRecord);
  procedure Change(ChangedPersonRecord: TPersonRecord; Index: Integer);
  procedure Delete(Index: Integer);
  procedure List(AStringList: TStringList);
  property Person[Index: Integer]: TPersonRecord read LoadRecord write
    SaveRecord;
end;

implementation

constructor TPersonFile.Create(AFileName: TFileName);
begin

  inherited.Create;
  AssignFile(FFile, AFileName);
  Reset(FFile, SizeOf(TPersonRec));
  New(FPersonRecord);
end;

destructor TPersonFile.Destroy;
begin

  CloseFile(FFile);
  Dispose(FPersonRecord);
  inherited Destroy;
end;

function TPersonFile.LoadRecord(Index: Integer): PPersonRec;
begin

  { позиция файла в точке коррекции для чтения записи }
  { ... }
end;

procedure TPersonFile.SaveRecord(Index: Integer);
begin

  { позиция файла в точке коррекции для записи записи }
  { ... }
end;

procedure TPersonFile.Add(NewPersonRecord: TPersonRecord);
begin

  { файл позиционируется в конец для записи записи }
  { ... }
end;

procedure TPersonFile.Change(ChangedPersonRecord: TPersonRecord; Index:
  Integer);
begin

  { именение TStatus ??? }
  { позиция файла в точке коррекции для записи записи }
  { ... }
end;

procedure TPersonFile.Delete(Index: Integer);
begin

  { изменение TStatus ??? }
  { позиция файла в точке коррекции для записи записи }
  { ... }
end;

procedure TPersonFile.List(AStringList: TStringList);
begin

  { в цикле обходим все записи, пополняя AStringList??? }
end;

OK, я надеюсь вы поняли мою идею. Вышеприведенный код взят мною из головы и, вероятно, несвободен от ошибок,
поскольку я не до конца понял как работает тип file (для доступа к бинарному файлу я использую TFileStream), но идея
следующая: инкапсуляция ваших функций работы с файлом в невизуальный объект как показано выше.

Теперь вы можете начать думать о ваших диалогах. Вам необходимо создать диалог, у которого в обработчике события OnCreate была бы примерно такая строчка кода:

MyPersonFile := TPersonFile.Create(«c:\person.dat»);

Естественно, вам необходим модуль, в котором вы объявляете TPersonFile в секции используемых модулей, а в классе формы необходимо поле с именем MyPersonFile. Вам также необходимо помнить об освобождении MyPersonFile в методе формы onClose. Я думаю вы сообразите как разместить в вашей программе необходимые элементы управления (менюшки, кнопки и прочие причиндалы), хотя бы для того, чтобы с помощью них можно было бы открыть файл.

Теперь вы должны разместить на форме компоненты типа Edit, CheckBox и др., отображающие и позволяющие редактировать поля записи через свойство Record. Убедитесь в том, что вы поддерживаете должный порядок, и освобождаете объект (запись) после его создания и использования. Конечно, эту работу красивой не назовешь, но от нее вас никто еще не освобождал. Вот красота ООП:

*После создания комбинации объект / форма диалога вся работа уже сделана.*

Вот другая хорошая вещь:

*Если вы изменяете ваш пользовательский интерфейс (например, при отказе от кучи диалогов или от использования Delphi (молчу-молчу)), ООП предоставляет вам простой и легкий в использовании способ переноса логики приложения, инкапсулированной в объекте TPersonFile.

 

Интересное

Adobe Photoshop и Corel Draw
Уважаемые читатели, что возникает в ваших головах при словосочетании «компьютерная графика»? Конечно, у рядового пользователя сразу возникает в голове какой-нибудь Терминатор или иное детище...
Подробнее...
Модемы: Наиболее часто...
Если у вас используется модем со стандартной прошивкой любого исполнения, кроме us/canada, то изменяя состояние регистра s39, можно регулировать уровень выходного сигнала. Чем меньшее число...
Подробнее...
Ещё о защите e-mail...
Оригинальная защита e-mail адресов от сканирования спам-роботами. Мы не будем кодировать адреса, мы будем их… рисовать!О защите e-mail адресов от сканирования спам-роботами в Интернете писалось...
Подробнее...
Тюнинг Windows Server 2003
Как Вы знаете, многие серверные ОС предназначены большей частью для работы сервером, не имея возможностей использования как «домашней» ОС. В этой статье речь пойдет о настройке Windows Server 2003...
Подробнее...
Большие секреты маленького...
Вот и BIOS современного компьютера, как и имя яхты, имеет прямое отношение к «плавучести» вашего кремниевого друга в бушующем океане софта. Одна ошибка в параметрах — и прекрасная ласточка...
Подробнее...
Обзор игровых...
Если ваш стаж общения с компьютерами достаточно велик, то весьма вероятно, что вы помните то знаменательное событие — превращение ПК в мультимедийное устройство. Для России, да и для значительной...
Подробнее...
Как узнать размер базы...
В этой небольшой статье вы узнаете, как получить размер вашей базы данных (БД) MySQL используя язык программирования PHP.Для начала нам потребуется простая функция formatfilesize(), которая будет...
Подробнее...
Компьютер на замке
Хакеры, спамеры, недобросовестные сотрудники и коллеги... Плохишам и просто праздным любопытным вход в компьютер должен быть заказан. Как и важным данным — выход оттуда.Вместе с...
Подробнее...
Настройка VPN-сервера с...
Для начала: данная статья не претендует на роль полноценного руководства или панацеи на все случаи жизни, посему все вопросы и пожелания по исправлению и дополнению статьи шлем на.
Подробнее...
Как раскрутить сайт
Любой самый хороший сайт, сделанный с душой, специалистом в той области, которой посвящен этот сайт, с богатым контентом, раскрывающим все особенности и нюансы освещаемого предмета, или как...
Подробнее...