Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
ВнизОтработать поьерю фокуса DBGridEh Найти похожие ветки
← →
AleKo (2004-06-16 02:05) [0]Добрый день господа.
На форме имеется DBGridEh и другие компоненты. Как сделать что во время редактирования данных в Grid (изменение, вставка) до подтверждения ввода данных или отмене при потере фокуса Grid выдавалось сообщение пользователю что есть не сохраненные данные и фокус возвращался в Grid.
← →
GuAV © (2004-06-16 02:10) [1]в OnExit
procedure TForm1.StringGrid1Exit(Sender: TObject);
begin
if {условие} then
begin
ShowMessage("куды полез?");
TWinControl(Sender).SetFocus;
end;
end;
зы: извини, TDBGridEh у меня нет...
← →
GanibalLector © (2004-06-16 02:14) [2]2 AleKo
Что-то глючит у меня этот DBGridEh.Я б тебе посоветовал использовать другой.
← →
AleKo (2004-06-16 03:00) [3]Так это работает.
Теперь дополнительный вопрос.
При всем перечисленном выше необходим доступ к DBNavigator,
чтобы пользователь мог среагировать на сообщение о сохранении данных.
← →
Knapweed © (2004-06-16 03:11) [4]Вместо ShowMessage("куды полез?"), пиши
if MessageDlg("Сохранить изменения - "Yes", Отменить - "No"", mtConfirmation, 0) = mrYes then ... post else ...cancel.
← →
Knapweed © (2004-06-16 03:13) [5]Sorry ... Правильно будет
if MessageDlg("Сохранить изменения - "Yes", Отменить - "No"", mtConfirmation, [mbYes, mbNo] 0) = mrYes then ... post else ...cancel.
← →
AleKo (2004-06-16 03:18) [6]Предлагаемое решение работает но есть нюансы.
При возвращении фокуса Grid все остальные элементы на форме перестают подсвечиваться, в частности DBNavigator.
Может есть более гибкое решение вопроса.
← →
AleKo (2004-06-16 03:20) [7]Knapweed спасибо за совет, это нюансы.
Вы забыли добавить "Продолжить редактирование".
← →
Knapweed © (2004-06-16 03:21) [8]Что значит "перестают подсвечиваться"?
← →
Knapweed © (2004-06-16 03:29) [9]>[7]
x := MessageDlg("Сохранить изменения - "Yes", Отменить - "No", Продолжить редактирование - "Cancel"", mtConfirmation, [mbYes, mbNo, mbCancel] 0);
if x = mrYes then ... post;
if x = mrNo then ...cancel;
if x = mrCancel then Abort;
← →
AleKo (2004-06-16 03:29) [10]При перемещении указателя мышки на кнопку навигатора он реагировал изменнением фомы посвечивался, теперь этого не происходит. И после восстановления фокуса в Grid воспользоваться навигатором становится невозможным, а это нелогично поскольку он и предназначен для сохранения данных.
← →
Knapweed © (2004-06-16 03:34) [11]Тогда помести Grid и Navigator в одной панели(Panel) и обрабатывай TPanelOnExit.
← →
AleKo (2004-06-16 03:39) [12]Мне кажется это окольные пути. Ситуация которую я описал довольно распрастраненная и решение лежит на поверхности.
← →
Knapweed © (2004-06-16 03:53) [13]Ну тогда приятных поисков... :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c