Динамические формы
Есть главная форма Form1, есть вторая форма, на которой размещено Memo. Форма 2 не создается при старте (нет Application->CreateForm). При нажатии на кнопку на главной фоме создается форма 2:
A = new TForm2 (this);
A->Show ();
Я хочу, чтобы при ресайзе динамически созданной формы менялся размер Memo. Как написать обработчик OnResize в классе TForm2?
У меня такая проблема (я только начинаю кодить в билдере):
Есть главная форма Form1, есть вторая форма, на которой размещено Memo. Форма 2 не создается при старте (нет Application->CreateForm). При нажатии на кнопку на главной фоме создается форма 2:
A = new TForm2 (this);
A->Show ();
Я хочу, чтобы при ресайзе динамически созданной формы менялся размер Memo. Как написать обработчик OnResize в классе TForm2? :(
Вообще, что такое TForm2? Если я правильно понимаю, что можно так:
void __fastcall DynamicOnResize(TObject *);
...
A->OnResize = DynamicOnResize;
...
void __fastcall DynamicOnResize(TObject *Sender)
{
...
}
Я пробовал так:
void __fastcall TForm2::FormResize(TObject *Sender)
{
((TForm2*)Sender)->Memo1->Width = ((TForm2*)Sender)->Width - 20;
((TForm2*)Sender)->Memo1->Height = ((TForm2*)Sender)->Height - 50;
}
это работает...
но надо также обработчик на Memo, который на TForm2..А вот как к нему обращаться?
((TForm2*)Sender)->Memo так не получается, Sender уже не тот :(
---
во, только что получилось вот так
на OnActivate TForm2 прописал
Form2 = ((TForm2*)Sender);
а затем уже как обычно обращаюсь с Memo....
Правильно ли так?
я имел в виду следующее - есть кнопка, при нажатии на неё создается ещё одна форма с Memo. Сколько раз кнопку нажмут, столько и форм. И надо по ресайзу формы ресайзить и Memo...
Я пробовал так:
void __fastcall TForm2::FormResize(TObject *Sender)
{
((TForm2*)Sender)->Memo1->Width = ((TForm2*)Sender)->Width - 20;
((TForm2*)Sender)->Memo1->Height = ((TForm2*)Sender)->Height - 50;
}
это работает...
но надо также обработчик на Memo, который на TForm2..А вот как к нему обращаться?
((TForm2*)Sender)->Memo так не получается, Sender уже не тот :(
---
во, только что получилось вот так
на OnActivate TForm2 прописал
Form2 = ((TForm2*)Sender);
а затем уже как обычно обращаюсь с Memo....
Правильно ли так?
Че то я сути проблемы не вижу, или плохо смотрю или плохо объясняешь, вот для Form2 обработчик:
void __fastcall TForm2::FormResize(TObject *Sender)
{
Memo1->Width=this->Width-20;
Memo1->Height=this->Height-50;
}
А что у тебя за проблемс с Memo не понял?
Че то я сути проблемы не вижу, или плохо смотрю или плохо объясняешь, вот для Form2 обработчик:
void __fastcall TForm2::FormResize(TObject *Sender)
{
Memo1->Width=this->Width-20;
Memo1->Height=this->Height-50;
}
А что у тебя за проблемс с Memo не понял?
что-то я намудрил, действительно так же просто всё :)
ещё раз подтверждается истина - "утро вечера мудренее"..
спасибо всем.
что-то я намудрил, действительно так же просто всё :)
ещё раз подтверждается истина - "утро вечера мудренее"..
спасибо всем.
А Memo1->Align = alClient;
ставить не пробовал?Тогда и с OnResize не придется заморачиваться. Если не надо на всю форму раскрывать то тогда есть такая вещь как
Anchors.