Форум: "Прочее";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
ВнизПроблемы с последовательностью событий формы Найти похожие ветки
← →
Александр Иванов © (2006-06-09 14:56) [0]Ситуация такая:
В первой форме переопределен конструктор, он получает параметром DataSet и FormStyleconstructor TForm1.Create(owner:TComponent; ActiveDataSet : TOraQuery; Style : TFormStyle);
begin
inherited Create(self.Owner);
self.FormStyle := Style;
self.DSet := ActiveDataSet;
...
Вторая форма является наследником первой. И в ее обработчике onShow я обращаюсь к DSet. Появляется исключение AccessVioletion. Но дебаггер показывает строку ошибки из конструктора первой формы: self.FormStyle := Style;
Переместил обращение в DSet из onShow в onCreate, все заработало.
Но осталось ощущение что я не понял причину.
Подскажите в чем тут может быть проблема.
← →
StriderMan © (2006-06-09 15:17) [1]а у наследной формы конструктор тоже свой или как у предка?
← →
Александр Иванов © (2006-06-09 15:23) [2]StriderMan © (09.06.06 15:17) [1]
У наследника нет ни одного своего конструктора
← →
StriderMan © (2006-06-09 15:45) [3]посмотри отладчиком, выполняется ли конструктор предка
← →
Александр Иванов © (2006-06-09 16:09) [4]StriderMan © (09.06.06 15:45) [3]
Цитата из [0]:
Но дебаггер показывает строку ошибки из конструктора первой формы: self.FormStyle := Style;
← →
Игорь Шевченко © (2006-06-09 16:16) [5]
> Но дебаггер показывает строку ошибки из конструктора первой
> формы: self.FormStyle := Style;
Потому что исключение происходит, скорее всего в inherited Create.
Если у формы установлено свойство Visible в true, то OnShow будет выполнено в inherited Create
← →
Александр Иванов © (2006-06-09 16:28) [6]Игорь Шевченко © (09.06.06 16:16) [5]
Да Visible установлено в True. Спасибо, не сообразил.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c