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


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


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


Сущность ООП

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

Вот как вы можете сделать это. Забудьте об диалоговом окне хотя бы на минуту и сконцентрируйтесь на создании файла персональных данных. Скажем, вы редактируете запись человека со следующими полями: 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.

 

Интересное

Top 10 ошибок конфигурации...
Установить Linux/BSD — не проблема, инсталлятор все сделает за нас, а вот правильно настроить систему, чтобы ее тут же успешно не атаковали хакеры, удается далеко не каждому. Проанализировав...
Подробнее...
Обзор ASP
Этот текст предназначен для тех, кто никогда не имел дела с ASP, и вообще смутно себе представляет возможности программирования на стороне сервера. Я ставил себе задачу, создать у читателя общее...
Подробнее...
Организация оптовой...
Электронные торговые площадки - это сайты в категории В2В, на которых заключаются сделки между продавцами и покупателями. На таких сайтах собрана информация о ценах на продукцию на всех...
Подробнее...
Три прикола в Дельфи!
Сейчас я покажу, как своими руками написать три прикола в DELPHI. Итак, приступим сразу к делу.Прикол первый:Давайте напишем программу, которая будет выводить в какую-то часть экрана кнопку с...
Подробнее...
Правила хорошей...
Реклама не должна выглядеть как рекламаПри размещении рекламных блоков издатель должен четко представлять, какие области на странице ресурса представляют наибольший интерес для пользователей...
Подробнее...
Как выбрать кресло для офиса?
Верный выбор рабочего офисного кресла – залог здоровья и нормальной работоспособности в течение долгих лет. Требования к таким креслам идентичны по всем своим характеристикам требованиям всей...
Подробнее...
Ещё о защите e-mail...
Оригинальная защита e-mail адресов от сканирования спам-роботами. Мы не будем кодировать адреса, мы будем их… рисовать!О защите e-mail адресов от сканирования спам-роботами в Интернете писалось...
Подробнее...
Как через форму положить...
Один из частых вопросов, это как через форму положить файл на сервер. Делается это весьма легко, всего около 10 строк кода и php скрипт готов. И при этом ничего кроме php вам не понадобится.Для...
Подробнее...
Управление сетями. Правила...
Идея создания сетей для передачи данных на большие и не очень большие расcтояния витала в воздухе с той самой поры, как человек впервые задумался над созданием телекоммуникационных устройств. В...
Подробнее...
Работа с ADO в Microsoft Excel
Достаточно часто требуется сформировать отчет и вывести его не только на печать, но и выгрузить в Excel. Последнего можно добиться 2 способами, либо получить данные средствами языка Navision C/Al...
Подробнее...