Последняя версия DataExpress 3 beta от 24 декабря 2017 года. Скачать.

Ошибка в Тесте формы

Все о том как сделать что-то с помощью скриптов.
Аватара пользователя
Ivan_Strelec
Интересующийся
Сообщения: 54
Зарегистрирован: Ср ноя 01, 2017 6:57 pm

Ошибка в Тесте формы

Сообщение Ivan_Strelec » Пт дек 08, 2017 9:00 am

Добрый день!

На форуме обсуждался вопрос и выкладывался скрипт по автообновлению запроса при открытии закладки.

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

var
   OldChange: TNotifyEvent;

procedure MainPageChange(Sender: TObject);
var
  i:integer;
begin
OldChange(MainWindow.Pages);
for i:=0 to  MainWindow.Pages.PageCount-1 do // перебираем пэйджи в цикле
begin
  if MainWindow.Pages.Pages[MainWindow.Pages.ActivePageIndex].Caption<>'Текучка' // проверяем по имени - нужная ли это закладка
  then
    break  // выходим из цикла, если не та...
  else
     begin
      MainWindow.FormViews[MainWindow.Pages.ActivePageIndex].Form.Refresh; // выполняется, если условие совпало с именем указанной закладки.
      break; // нам достаточно всего одного обновления. Выходим.
     end;
  end;
end;

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

Работает прекрасно, но когда пытаешься в Дизайнере сделать отладку скрипта (Тест формы), содержащего данный фрагмент, то получаем Access Violation. Хотя, если установить точку останова и запустить скрипт из программы (не в Дизайнере), то отладку провести можно.
Вложения
Снимок.JPG
Снимок.JPG (69.94 КБ) 119 просмотров

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

Re: Ошибка в Тесте формы

Сообщение admin » Пт дек 08, 2017 9:45 am

Это не баг. Тестировании происходит в режиме дизайнера, где нет никаких закладок, как в режиме пользователя. Т. е. обращение к методам и свойствам MainWindow при тестировании формы будет приводить к ошибкам.

jurist23rus
Эксперт
Сообщения: 1763
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп

Re: Ошибка в Тесте формы

Сообщение jurist23rus » Пт дек 08, 2017 9:47 am

Потому что скрипт обращается к вкладками главного окна, которых нет в дизайнере. Нужно проверять их на nil.

Upd. Опоздал с ответом :)
Destiny is a very convenient word for those who never take decisions.

Аватара пользователя
Ivan_Strelec
Интересующийся
Сообщения: 54
Зарегистрирован: Ср ноя 01, 2017 6:57 pm

Re: Ошибка в Тесте формы

Сообщение Ivan_Strelec » Пт дек 08, 2017 2:19 pm

Спасибо!
Понятно, доработаем код.


Вернуться в «Общие вопросы.»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость