Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DbLookupComboBox / 7 сообщений из 7, страница 1 из 1
27.01.2022, 02:24
    #40129802
wsnet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DbLookupComboBox
Только сейчас заметил, допустим, есть DbLookupComboBox, выбрали в нем значение, значение записывается в нужное поле DataSet, но фокус не переместился на другой элемент управления и в итоге если нажать какую-нибудь кнопку Сохранить, где проверяется
а не пустое ли значение поля DataSet, привязанное к данному DbLookupComboBox и все равно пишет, что пустое, как можно выйти из ситуации?
...
Рейтинг: 0 / 0
27.01.2022, 10:27
    #40129824
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DbLookupComboBox
wsnet
фокус не переместился на другой элемент управления и в итоге если нажать какую-нибудь кнопку Сохранить,

При нажатии на кнопку фокус на неё не переместился?
...
Рейтинг: 0 / 0
27.01.2022, 11:39
    #40129844
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DbLookupComboBox
к примеру, перед сохранением перевести фокус программно
...
Рейтинг: 0 / 0
27.01.2022, 12:40
    #40129860
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DbLookupComboBox
ъъъъъПри нажатии на кнопку фокус на неё не переместился?

Вангую, что этот чудак использовал TSpeedButton вместо TButton.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.01.2022, 13:51
    #40129885
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DbLookupComboBox
Dimitry Sibiryakov

Вангую, что этот чудак использовал TSpeedButton вместо TButton.

Делаю ставку на TToolButton
...
Рейтинг: 0 / 0
27.01.2022, 14:03
    #40129894
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DbLookupComboBox
_avz
к примеру, перед сохранением перевести фокус программно

+1.
В "модальных" формах (в которых редактируется запись) в OnCloseQuery перевожу фокус на кнопку "OK":
Код: pascal
1.
2.
  if ModalResult = mrOk then begin
    SetFocusIfPossible(btnOk); // Фиксация изменений

SetFocusIfPossible()
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure ***.SetFocusIfPossible(aControl: TWinControl);
var
  fCF: TCustomForm;
begin
  fCF := GetParentForm(aControl);
  if Assigned(fCF) and fCF.Visible and aControl.CanFocus then
    aControl.SetFocus;
end;




Если нет "кнопок", перевожу фокус на что-то другое, например, на грид - если редактирование выполнялось "в гриде".
Код: pascal
1.
SetFocusIfPossible(VST)
...
Рейтинг: 0 / 0
27.01.2022, 16:23
    #40129967
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DbLookupComboBox
wsnet
Только сейчас заметил, допустим, есть DbLookupComboBox, выбрали в нем значение, значение записывается в нужное поле DataSet, но фокус не переместился на другой элемент управления и в итоге если нажать какую-нибудь кнопку Сохранить, где проверяется
а не пустое ли значение поля DataSet, привязанное к данному DbLookupComboBox и все равно пишет, что пустое, как можно выйти из ситуации?
Не знаю, та ли ситуация, но бывает, что датасет находится при этом в режиме редактирования.
Можно добавить что-то типа такого в обработчике нажатия кнопки:
Код: pascal
1.
2.
if Dataset.State in [dsEdit, dsInsert]
then Dataset.Post;


p.s. до того, как сохраняете в БД.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DbLookupComboBox / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]