Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Помогите разобраться С++B Гость
|
Добавлено: Пн Янв 14 2002 12:28 Заголовок сообщения: Помогите разобраться С++Builder5 |
|
|
При открытии второй формы Form2-Show(); должен выполняться код:
void __fastcall TFPasswC::FormCreate(TObject *Sender) { FPasswC-Edit1-Clear(); Label3-Font-Color = clBlack; FPasswC-Edit2-Enabled=false; } Все работает при первом вызове, а во второй раз все остается так как она была оставлена (на форме Form2 есть кнопка меняющая цвет метки, меняю цвет и закрываю окно при открытии цвет остался измененным, а он должен быть в соответствии с кодом из FormCreate). Нужно чтоб при каждом открывании формы FormCreate выполнялся этот код. |
|
Вернуться к началу |
|
|
Леха
Зарегистрирован: 24.01.2002 Сообщения: 3
|
Добавлено: Пн Янв 14 2002 13:29 Заголовок сообщения: Re: Помогите разобраться С++Builder5 |
|
|
Дело в том что FormCreate вызывается только один раз - при создании формы (или в WinMain автоматически или если ты создаешь форму ручками - то где-то в коде). Когда ты закрываешь форму, она на самом деле не уничтожается сама, просто ее свойство Visible становиться равным false (т.е. она просто скрывается) - и потому, когда ты делаешь Form2-Show()форма не создается заново и ты просто не попадаешь в функцию FormCreate. Вызов Form2-Show() означает лишь - Form2-Visible=true. Таким образом есть 2 пути решения проблемы - 1) (лучше)Вместо FormCreate пишешь обработчик на событии onShow(), т.е. помещаешь код в FormShow() 2) (хуже) Уничтожаешь форму при закрытии. Для этого в функцию FormHide() - обработчик события onHide пихаешь такой код - |
|
Вернуться к началу |
|
|
Леха
Зарегистрирован: 24.01.2002 Сообщения: 3
|
Добавлено: Пн Янв 14 2002 13:32 Заголовок сообщения: Re: Помогите разобраться С++Builder5 |
|
|
Action = caFree;
(Прости, событие не onHide, а onClose) |
|
Вернуться к началу |
|
|
|