![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
нужен совет ОПЫТНЫХ мастеров [D7]
MORA © (2004-07-26 16:28:00)как делают нормальные мастера при редактировании записей?
1. прямо в гриде
2. кладут на форму dbEdit (например), тут же кнопки нафигации (ДБНафигатор)
3. в одной форме - грид и кнопки нафигации, при нажатии на к-рые откр. другая форма редактирования...
Если 3, то:
- когда вызывать DataSet.Edit? В вызывающей форме или когда открывается форма редактирования?
- когда вызывать DataSet.Post? В вызывающей форме - если форма редактирования закрылась удачно (ModalResult = mrOk) или в обработчике кнопки Ок формы редактирования?
Фух. Пока фатит вопросов.
Соловьев (2004-07-26 16:47:00) [1]
> Если Форма редактирования не знает ничего о ДатаСете, то
> что мне проверять в OnCloseQuery?
как это не знает?
MORA (2004-07-26 16:46:00) [2]
> обрабатываешь эти 2 события
Вот у меня 2 кнопки: Ок и Отмена (ModalResult mrOk и mrCancel соответственно). Если Форма редактирования не знает ничего о ДатаСете, то что мне проверять в OnCloseQuery?
Обработать Отмену - понятно как.
Vlad (2004-07-26 16:42:00) [3]
> MORA (26.07.04 16:41) [5]
TForm.OnCloseQuery см. параметр CanClose
Соловьев (2004-07-26 16:42:00) [4]
> а как не допустить закрытия формы, пока не введены корректные
> данные (или не нажата отмена)?
обрабатываешь эти 2 события
MORA (2004-07-26 16:41:00) [5]а как не допустить закрытия формы, пока не введены корректные данные (или не нажата отмена)?
Sandman25 (2004-07-26 16:36:00) [6][2] MORA (26.07.04 16:32)
Форма не должна ничего знать о датасете.
На входе она получает var MzRecordType, из него берет данные, в него и закладывает и возвращает True/False. А "снаружи" уже анализируется код возврата и в случае необходимости данные записываются.
Sandman25 (2004-07-26 16:34:00) [7]>Если 3, то:
if ... then
begin
Edit;
...
Post;
...
end;
То есть время между Edit и Post получается минимальным, что очень хорошо для многопользовательской работы
А вообще читай [1] Vlad © (26.07.04 16:31)
MORA (2004-07-26 16:32:00) [8]Еще:
Как проверять заполнены ли все поля? В обработчике кнопки Ок формы редактирования или в BeforePost DataSet'a?
Vlad (2004-07-26 16:31:00) [9]
> MORA (26.07.04 16:28)
> как делают нормальные мастера при редактировании записей?
Как делают нормальные мастера - не знаю, а реальные пацаны делают в зависимости от задачи. Все три варианта приемлемы, но для одной задачи что-то может быть более удобно чем другое.