Редактирование и добавление записей
Для редактирования и добавления записей создадим окно, показанное на рис. 15.11.
Рис.15.11. Окно ввода/редактирования записей
Режим редактирования отличается от режима добавления записей двумя обстоятельствами: во-первых, в режиме редактирования поля ввода данных окна должны содержать текст, взятый из редактируемой записи, а в режиме ввода эти поля пусты. Во-вторых, режим редактирования завершается сразу после нажатия на клавишу Enter, в то время как в режиме ввода нажатие на эту клавишу означает добавление к файлу текущей записи и переход к вводу следующей: режим ввода завершается командой cmClose (клавиша Esc).
С учетом этого оба режима реализуются в рамках одной процедуры AddItem (Edit), а параметр Edit указывает нужный режим: если Edit = True, реализуется режим редактирования, если False – режим добавления записей. Вот текст этой процедуры:
Procedure AddItem(Edit: Boolean); {Добавляет новый или редактирует старый элемент данных} const у = 1; dy= 2; L -= LName+LPhone+LAddr; var Data: DataType; R: TRect; InWin: PDialog; BName,BPhone,BAddr: PInputLine; Control: Word; OldCount: Word; s: String; р: PString; begin Seek(DataFile,FileSize(DataFile));{Добавляем записи в конец файла} repeat {Цикл ввода записей} if Edit then {Готовим заголовок} s: = 'Редактирование:' else begin Str(FileSize(DataFile)+1,s); while Length(s) < 3 do s: = '0'+s; s: – 'Вводится запись N '+s end;