Последняя версия DataExpress 3 beta от 15 сентября 2020 года.

Изображение Скачать | Изображение Что нового?



Объявление:

Если вам понравилась программа и вы ее интенсивно используете - замолвите словечко о ней на вашем сайте (блоге, форуме, твитере, краской на подъезде, ютуб-канале и т.д.) с активной (по-возможности) ссылкой на сайт программы/форум. Тем самым вы можете внести небольшой вклад в seo-карму проекта в виде входящих ссылок.
Спасибо! Администрация :)


>> Обсудить <<

Пример: фокус на нужном поле

Полезное от пользователей DataExpress
Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: 27 ноя 2017, 08:02
Поблагодарили: 14 раз

Пример: фокус на нужном поле

Сообщение Гocть » 01 авг 2018, 11:08

Иногда проходя по записям можно увидеть в таблице что то, требующее оперативной правки, но открыв запись можно долго искать глазами нужное поле. В примере показан способ быстрого перехода к полю при клике по ячейке табличной части формы.
ФОКУС НА НУЖНОМ ПОЛЕ.zip
(47.2 КБ) 143 скачивания
Фрилансер. Разработка на заказ. Консультирование.

Аватара пользователя
Runenkov
Интересующийся
Сообщения: 107
Зарегистрирован: 21 сен 2016, 21:15
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Пример: фокус на нужном поле

Сообщение Runenkov » 12 янв 2019, 02:08

Приветствую

Отличная идея! Очень помогла! Но: столкнулся со странностью.
Пишу программу с двуязычным интерфейсом. Применяю к таблице, на английском работает (у меня названия полей изначально на английском, а русские подставляются в Main). На русском - не работает!
Пытаюсь разобраться, насильно подпихиваю оригинальные имена полей на агнлийском -- не работает.
Позже понимаю что в конструкции:

Код: Выделить всё

procedure Form_Create;
begin
  Self.Grid.OnCellClick:=@GetTitleCaption;
  Self.EditWindow.OnShow:=@ControlFocus;
end;   


Self.EditWindow.OnShow:=@ControlFocus; не вызывается! Не могу понять, почему!

Помогите разобраться, я делаю что-то не так или это глюк программы? Версия 10.01.2019
Вложения
EASYCRM.zip
(58.34 КБ) 82 скачивания

Аватара пользователя
admin
Разработчик
Сообщения: 5176
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 41 раз
Поблагодарили: 335 раз

Re: Пример: фокус на нужном поле

Сообщение admin » 12 янв 2019, 11:54

Runenkov писал(а):Self.EditWindow.OnShow:=@ControlFocus; не вызывается! Не могу понять, почему!

В процедуре CF модуля Main подменяется обработчик события EditWindow.OnShow, назначенный в модуле формы, на другой (EWOS).

Модуль Settings:

Код: Выделить всё

...
procedure Form_Create;
begin
  Self.Grid.OnCellClick:=@GetTitleCaption;
  Self.EditWindow.OnShow:=@ControlFocus;
end;

Модуль Main:

Код: Выделить всё

...
procedure CF(Sender: TObject; Form: TdxForm);
var ic,gc,ig:integer;
begin
  Form.DisableControls;

  if Form.EditWindow<>nil then
  Form.EditWindow.OnShow:=@EWOS;
  ...


Вам надо сохранять обработчик события и вызывать его в новом. Делается это так же, как при написании действия формы.

Аватара пользователя
Runenkov
Интересующийся
Сообщения: 107
Зарегистрирован: 21 сен 2016, 21:15
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Пример: фокус на нужном поле

Сообщение Runenkov » 12 янв 2019, 22:20

admin писал(а):Вам надо сохранять обработчик события и вызывать его в новом.


Увы, я пока ещё совсем ламер чтобы понять, как это делается. Спасибо, я постараюсь "подтянуть" теорию и вернусь к этому позже

jurist23rus
Эксперт
Сообщения: 2707
Зарегистрирован: 30 сен 2016, 09:42
Откуда: Майкоп
Благодарил (а): 3 раза
Поблагодарили: 27 раз

Re: Пример: фокус на нужном поле

Сообщение jurist23rus » 12 янв 2019, 23:16

Обработчик событий - это сложно для начала. Начните с чего-нибудь попроще.
Destiny is a very convenient word for those who never take decisions.


Вернуться в «Полезное»