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


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


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


Сущность ООП

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

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

 

Интересное

Cинхронизация времени...
ЗадачаОрганизовать синхронизацию времени контроллеров домена с внешними источниками.Исходные данные.Все серверы W2K3 Схема подключения к внешней сети Internet-Router-ISA-DC.Router управляется...
Подробнее...
Изменение регистра
В Delphi есть три функции для изменения регистра: upcase, lowercase, uppercase. Но они работают только для латинского алфавита. Чтобы сделать аналогичные функции для русского алфавита я...
Подробнее...
Что нового в SQL Server...
Наконец-то процесс создания SQL Server 2005 завершен. Если вы на протяжении долгого времени следили за подготовкой новой версии SQL, устанавливали и использовали бета-версии, с пристрастием...
Подробнее...
Java обгоняет по...
Одним из главных недостатков языка Java традиционно считается невысокая скорость работы программ по сравнению с приложениями на языке С++. И для приложений, где переносимость между платформами или...
Подробнее...
Шрифты и вы - кто кого?
Гармоничный выбор преобразит вашу работу: ведь каждый шрифт — это настроение, эпоха, сила. И эти определения невольно передаются тексту, заставляя нас изначально предвзято относиться к...
Подробнее...
10 фактов об архивировании...
Резервное копирование данных, конечно, не такая потрясающая штука, как двухъядерные микросхемы Intel, позволяющие установить на компьютере одновременно и Mac OS X, и Windows XP, но...
Подробнее...
Вывоз мусора
Своевременный вывоз строительного мусора , очень правильный подход к ситуации. Захламленность строительным мусором мешает работать и просто жить. Однако утилизировать его достаточно легко 
Подробнее...
Настройка основного...
ВведениеВ состав Windows входит служба времени W32Time, необходимая для работы протокола проверки подлинности Kerberos. Служба времени предназначена для синхронизации времени в рамках организации...
Подробнее...
Психология в дизайне
Эта статья больше заинтересует дизайнеров. Те из них, кто имеет высшее образование в этой области, уже знакомы со многими, из перечисленных здесь фактов. Но статистика показывает, что основной...
Подробнее...
DOTNET - Да или Нет. С...
Руководитель IT департамента любой сколько-нибудь развившейся и вставшей на ноги компании почти наверняка имеет мечту. Мечту, в которой его предприятие совершает все деловые операции со всеми...
Подробнее...