Главная страница
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.007 c
2-1303716955
ANB
2011-04-25 11:35
2011.08.07
IdHTTPServer и HTTPS


15-1302899395
Юрий
2011-04-16 00:29
2011.08.07
С днем рождения ! 16 апреля 2011 суббота


11-1236078753
<>
2009-03-03 14:12
2011.08.07
Глюк с MsgBox,ShowMsg


15-1302726596
Юрий
2011-04-14 00:29
2011.08.07
С днем рождения ! 14 апреля 2011 четверг


2-1303980851
stud92
2011-04-28 12:54
2011.08.07
отношение между таблицами бд