Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

нужен совет ОПЫТНЫХ мастеров [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)  


> как делают нормальные мастера при редактировании записей?

Как делают нормальные мастера - не знаю, а реальные пацаны делают в зависимости от задачи. Все три варианта приемлемы, но для одной задачи что-то может быть более удобно чем другое.


Наверх

Титульная страница Поиск, карта сайта Написать письмо