Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.08.07;
Скачать: CL | DM;

Вниз

Не изменяется заголовок MDI-child окна   Найти похожие ветки 

 
Vann   (2011-04-28 10:20) [0]

Какой-то очень странный баг нашелся в Delphi7. У меня MDI приложение, формы я создаю при выборе пунктов меню. Т.е. при разработке, форма создана, но автоматического создания при запуске приложение нет. Когда мне нужно вызвать дочернюю форму, я выполняю код вида:
Form2:= TForm2.Create(Form1);
При этом, если в обработчиках TForm2.FormCreate, TForm2.FormActivate или TForm2.FormShow я пытаюсь изменить текст заголовка окна (TForm2.Caption:="AAA"), приложение на это не реагирует. Причем, если положить на форму кнопку и сделать изменение заголовка по кнопке, то оно срабатывает, а вот при создании формы никак. В чем же дело?


 
Медвежонок Пятачок ©   (2011-04-28 10:27) [1]

дело в лишних буквах перед caption.

caption := "aaa";


 
Anatoly Podgoretsky ©   (2011-04-28 11:00) [2]

> Vann  (28.04.2011 10:20:00)  [0]

Потому что ты пытаешься сменить у класса, а не у объекта


 
clickmaker ©   (2011-04-28 11:16) [3]

> если положить на форму кнопку и сделать изменение заголовка
> по кнопке, то оно срабатывает

и именно так TForm2.Caption:="AAA"?


 
Vann   (2011-04-28 12:18) [4]


> дело в лишних буквах перед caption.
>
> caption := "aaa";

Действительно, заработало без них. Кстати, я опечатался, конечно же, я присваивал значение объекту, а не типу, т.е. у меня было Form2.Caption:="AAA", без «T». Но оно не работало. А когда написал просто Caption:="AAA", то заработало. Я доволен, всем большое спасибо, вот только кто-нибудь может еще объяснить, почему всё-таки не работает Form2.Caption:="AAA", т.е. в чем же разница с Caption:="AAA"?


 
Медвежонок Пятачок ©   (2011-04-28 12:20) [5]

Но оно не работало.

Работало. Просто присвоение происходило не той форме, которой ты хотел


 
Плохиш ©   (2011-04-28 12:45) [6]


> вот только кто-нибудь может еще объяснить

В серьëз уверен, что кому-делать нечего как рассказывать основы расписанные во всех книжках и в мировой помойке.


 
Медвежонок Пятачок ©   (2011-04-28 12:48) [7]

Form2.Caption:="AAA";
ShowMessage(Form2.Caption);

Неужели присвоение "не работает" и неужели шоумессадж показывает "БББ" вместо "ААА"?


 
sniknik ©   (2011-04-28 14:30) [8]

> Неужели присвоение "не работает" и неужели шоумессадж показывает "БББ" вместо "ААА"?
вполне может "" показать, т.е. не присвоенное "ААА", а получается метафорически именно "БББ". ;)
это если форма = nil. (ошибки не будет, т.к. с Caption через сообщения работа)


 
Vann   (2011-04-28 15:00) [9]

Действительно, ShowMessage выдает "", а проверка Form2=nil выдает True. Так что переменная формы действительно равна nil, хотя сама форма уже существует. Видимо, при ручном создании формы, присвоение значения указателя на нее происходит только после обработки всех событий создания формы. А ошибки нет, потому как работа идёт через сообщения. sniknik прав!


 
Inovet ©   (2011-04-28 18:36) [10]

> [9] Vann   (28.04.11 15:00)
> Видимо, при ручном создании формы, присвоение значения
> указателя на нее происходит только после обработки всех
> событий создания формы

Выбрось переменную Form2 на помойку. В MDI TForm2 может быть много, и ты думаешь, что указатели на все объекты класса формы храняться в этой переменной? Вот подумай где бы они могли быть. Подсказака - что ты там в Create() передаёшь?


 
Плохиш ©   (2011-04-28 22:58) [11]


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

Вообще-то, присвоение производится тогда, когда в программе написан оператор присваивания, а последовательность выполнения операторов описана в основах избранного языка программирования.



Страницы: 1 вся ветка

Текущий архив: 2011.08.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.005 c
15-1303206500
stas
2011-04-19 13:48
2011.08.07
вопрос для фотолюбителей Nikon D3100 vs Samsung nx11


15-1302571619
Jumbo
2011-04-12 05:26
2011.08.07
В этот день, 50 лет назад...


15-1303058133
NailMan
2011-04-17 20:35
2011.08.07
Рычим, коптим, портим воздух выхлопом


15-1303154153
т116
2011-04-18 23:15
2011.08.07
ищу учителя


2-1304152965
armstrong
2011-04-30 12:42
2011.08.07
работа с графикой