Последняя версия DataExpress 3 beta от 1 сентября 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

Событие перехода к форме

Все о том как сделать что-то с помощью скриптов.
KoalaBear
Интересующийся
Сообщения: 171
Зарегистрирован: Сб сен 02, 2017 5:05 pm

Событие перехода к форме

Сообщение KoalaBear » Чт окт 12, 2017 7:45 pm

Возникла необходимость обновления данных таблицы формы при переходе к ней с другой формы. Подскажете, пожалуйста, какое событие возникает при переходе к форме? (Форма=Закладка, если следовать терминологии настройки интерфейса)

jurist23rus
Эксперт
Сообщения: 2624
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 10 раз

Re: Событие перехода к форме

Сообщение jurist23rus » Чт окт 12, 2017 8:03 pm

Что вы подразумеваете под фразой "переход к форме"?
Как я понимаю вы хотите освоить скрипты. Тогда советую вам нормально сформулировать то что должен делать скрипт (своими словами) и вам подскажут как его написать. А попытки узнавать что-то по частям создают проблемы в понимании тех терминов, которые вы используете, описывая поведение программы. Мы просто можем долго говорить о разном и пользы от этого мало.
Destiny is a very convenient word for those who never take decisions.

KoalaBear
Интересующийся
Сообщения: 171
Зарегистрирован: Сб сен 02, 2017 5:05 pm

Re: Событие перехода к форме

Сообщение KoalaBear » Чт окт 12, 2017 8:11 pm

Момент, когда форма (Закладка) становится активной, не знаю, как лучше пояснить. Форма в режиме "только таблица". Она заполняется из другой формы через запрос. При добавлении записей они не отображаются в таблице родной формы, пока не нажмёшь "Обновить". Хочется сделать так, чтобы при переходе к ней добавленные записи сразу отображались, без ручного обновления таблицы.

jurist23rus
Эксперт
Сообщения: 2624
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 10 раз

Re: Событие перехода к форме

Сообщение jurist23rus » Чт окт 12, 2017 8:17 pm

С объяснениями пока у вас не получается. Попробуйте по-другому. Выложите базу и доходчиво объясните что и как должно работать.
Destiny is a very convenient word for those who never take decisions.

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

Re: Событие перехода к форме

Сообщение admin » Чт окт 12, 2017 8:26 pm

Нужно переопределить обработчик MainWindow.Pages.OnChange. Но так как это событие используется программой, нужно сохранить старый обработчик и вызвать его в новом:

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

var
   OldChange: TNotifyEvent;

procedure MainPageChange(Sender: TObject);
begin
   OldChange(MainWindow.Pages);
   FormViews[MainWindow.Pages.ActivePageIndex].Form.Refresh;
end;

procedure Form_Create;
begin
   OldChange := MainWindow.Pages.OnChange;
   MainWindow.Pages.OnChange := @MainPageChange;
end;


KoalaBear
Интересующийся
Сообщения: 171
Зарегистрирован: Сб сен 02, 2017 5:05 pm

Re: Событие перехода к форме

Сообщение KoalaBear » Чт окт 12, 2017 9:01 pm

1.png

не получается(
Копипастил, пробовал руками вводить строку, на которую ругается компилятор - ни в какую((

KoalaBear
Интересующийся
Сообщения: 171
Зарегистрирован: Сб сен 02, 2017 5:05 pm

Re: Событие перехода к форме

Сообщение KoalaBear » Чт окт 12, 2017 9:19 pm

jurist23rus писал(а):С объяснениями пока у вас не получается. Попробуйте по-другому. Выложите базу и доходчиво объясните что и как должно работать.


Так понятнее, наверное.
P.S. Хотел ведь сразу записать, да поленился...

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Поблагодарили: 4 раза
Контактная информация:

Re: Событие перехода к форме

Сообщение YurAnt » Чт окт 12, 2017 9:25 pm

..MainWindow.FormViews..

KoalaBear
Интересующийся
Сообщения: 171
Зарегистрирован: Сб сен 02, 2017 5:05 pm

Re: Событие перехода к форме

Сообщение KoalaBear » Чт окт 12, 2017 9:31 pm

Спасибо!!!

KoalaBear
Интересующийся
Сообщения: 171
Зарегистрирован: Сб сен 02, 2017 5:05 pm

Re: Событие перехода к форме

Сообщение KoalaBear » Пт окт 13, 2017 6:37 pm

А как можно модифицировать этот код, чтобы он срабатывал только на активной форме с определённым названием? В данной редакции пересчёт происходит при переходе на любую форму:
admin писал(а):

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

var
   OldChange: TNotifyEvent;

procedure MainPageChange(Sender: TObject);
begin
   OldChange(MainWindow.Pages);
   MainWindow.FormViews[MainWindow.Pages.ActivePageIndex].Form.Refresh;
end;

procedure Form_Create;
begin
   OldChange := MainWindow.Pages.OnChange;
   MainWindow.Pages.OnChange := @MainPageChange;
end;