Sep. 6th, 2006

pozitronik: (Default)
Эта запись перенесена в ЖЖ из моего старого блога. Наверное, я не хочу, чтобы она потерялась.


Сколько лет я программирую на Дельфе - фиг его знает. Лет семь точно. Уж основы какие-никакие за семь лет изучить было можно.

Пишу клиент к базе данных. Ну это не суть важно, главное то, что клиент - MDI-форма, в которой каждая таблица выводится в отдельной форме. При входе в клиент должен выдаваться запрос логин/пароль - сделал отдельной модальной формой, вызываю её в OnShow главного окна. Всё прекрасно работает.

И вот, нечаянно тыкаю мышкой не туда, и переключаю свойство FormStyle у главной формы из fsMDIForm в fsMDIChild. При запуске, ессно, прога ругается, я исправляю ошибку и... И начинается странное - сразу после события OnCreate главной формы начинает выполняться OnShow. При вызове формы ввода логина/пароля - аксес виолейшен, что в высшей степени логично, потому как форма эта ещё не откриэйтилась. Т.е. раньше происходила следующая последовательность событий - MainForm.Create -> LoginForm.Create -> MainForm.Show -> LoginForm.Show. А тут, почему-то последовательность изменилась.
Меня потихоньку начинает колбасить. Выгружаю дельфю, удаляю все dcu - тот же глюк. Гм, неужто в памяти какой кусок кода висит? Вряд ли - но комп ребутаю. Не помогает.
Делаю новый проект, пишу в нём тот же самый код - работает. Возвращаюсь в базу данных - не работает. Проблема даже не в том, что эту ошибку нельзя исправить - ничего не стоит сделать динамическое создание формы, но хочется разобраться...
Беру, и в ТоталКоммандере начинаю построчно сравнивать DFM-файлы работающего и глючащего приложения. Отличия - только в координатах, позиции по умолчанию и... у глючащей формы visible выставлено в True.

Меняю на False и начинает работать. Оказывается, случайное изменение FormStyle выставило Visible в True, что, в свою очередь, изменило порядок вызываемых событий.

Я над этим бился полчаса =(

December 2016

S M T W T F S
    123
45678910
1112131415 1617
18192021222324
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 3rd, 2025 07:13 am
Powered by Dreamwidth Studios