C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как вызывать др. форму?, У меня 2 формы — Как вызывать 2ую форму?
Zoomie
Отправлено: 27.03.2004, 06:23


Не зарегистрирован







[FONT=Arial] wink.gif [SIZE=7][COLOR=blue][B]
klen
Отправлено: 27.03.2004, 11:22


Машинист паровоза

Группа: Участник
Сообщений: 239



Книжки читать нада!

1. В модуле где определена вызывающая форма добавляешь хидер вызываемой формы.
2. В нужном тебе месте вызываешь вызываемую форму
Form2 -> Show()

Form2 — имя вызываемой формы
Aptem
Отправлено: 27.03.2004, 16:11


Мастер участка

Группа: Участник
Сообщений: 349



Вопрос конечно сложный и непонятный, суть его уходит далеко в недра программерской мысли... Это шутка конечно же, но по-моему с такими вопросами сюда обращаться не следует, хотя как ни сюда следует обращаться с такими вопросами... Ну что-то я совсем не в ту сторону свернул, вообщем есть еще способ, это когда форма не создается автоматически при запуске проекта:
CODE

TForm2 *Form2 = new TForm2 ( NULL );

 if ( Form2 -> ShowModal () == mrOk )
 {
    какие-то действия
 }

 delete Form2;

Эта штука хорошо пригождается когда форму нужно показать не на долгое время, например, вызов окна "About...", нет смысла держать всю форму постоянно в памяти. На кнопке по которой форма должна исчезнуть делаешь ModalResult = mrOk ! Если непонятно, то пиши, расскажу все в подробностях.
Gedeon
Отправлено: 29.03.2004, 09:16


Ветеран

Группа: Модератор
Сообщений: 1742



QUOTE (Aptem @ 27/03/2004, 17:13)

CODE

TForm2 *Form2 = new TForm2 ( NULL );


CODE
TForm2 *Form2 = new TForm2 (this);

В данном случае так правильнее.
olegenty
Отправлено: 29.03.2004, 10:45


Ветеран

Группа: Модератор
Сообщений: 2412



но, при разработке совего компонента, в компоненте лучше писать
CODE

TForm2 *Form2 = new TForm2 (Application);

вместо
CODE

TForm2 *Form2 = new TForm2 (this);

ибо хрен знает почему, но в случае, когда владельцем является класс, отличный от TApplication, рождаются непонятные по содержанию глюки.
Yasinecky
Отправлено: 02.04.2004, 00:03


Ученик-кочегар

Группа: Участник
Сообщений: 3



по-поводу модальных окон, вот как реализовывал я:

CODE
void __fastcall TForm1::SomeButtonClick(TObject *Sender)
{
   TAboutBox* const AboutBox = new TAboutBox(0);
   try {
       AboutBox->ShowModal();
   }
   __finally {
       delete AboutBox;
   }
}

Вернуться в Вопросы программирования в C++Builder