Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Как "приклеить" одну форму к другой?


Автор: santey 23.2.2009, 00:12
Имеется главная форма Form1, в которой строятся различные графики и т.д. и через меню вызывается вторая форма Form2, которая открывается в отдельном окне, и в которой отражены различные опции для построения графиков.
Как можно задать так, чтобы Form2 была бы "приклеена", то есть соприкасалась правой стороной своего окна с левой стороной окна Form1, или наоборот левой своей стороной с правой стороной окна Form1.
Например, нажал кнопку Form2 расположена слева главного окна, нажал другую кнопку Form2 расположилась справа от главного окна.

Автор: Dem_max 23.2.2009, 07:48
http://forum.vingrad.ru/forum/topic-245962.html

Автор: santey 24.2.2009, 00:49
Спасибо действительно отлично работает!

Есть еще вопрос, а как сделать, чтобы при перемещении Form2 вблизи, например, правой стороны Form1 и отпускании Form2, эта форма Form2 допустим своей правой стороной сама перемещалась в сторону левой стороны Form1 и также к ней приклеивалась. Наподобие того, что когда в пасьянсе мы карту перекладываем на новую стопку и еще не полностью переложив ее в эту стопку, а наполовину переместив, эта карта сама автоматически занимает место в стопке.

То есть также если перемещая вторую форму и отпустив ее, эта форма сама приклеилась к главной форме.

Автор: artsb 25.2.2009, 12:17
Сам столкнулся с такой проблемой. Вроде сделал...
Решил поделиться.

Разобраться не сложно, поэтому без коментов smile

Автор: santey 26.2.2009, 10:17
Большое спасибо!

Автор: Simon14 27.2.2009, 00:24
Цитата(artsb @ 25.2.2009,  12:17)
Сам столкнулся с такой проблемой. Вроде сделал...
Решил поделиться.

Разобраться не сложно, поэтому без коментов smile

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

Добавлено через 7 минут и 24 секунды
я попробовал добавить в свою програму но у меня почемуто не паботает

Автор: Simon14 27.2.2009, 01:06
пробовал добавить к своей программе не получилось формы передвигаються, но вылазят ошибки после закрытия. Если не трудно посмотрите пожалуйста  что не так  зарание спасибо

Автор: artsb 27.2.2009, 20:03
Посмотрю, когда время будет.

Автор: Simon14 27.2.2009, 20:32
Цитата(artsb @ 27.2.2009,  20:03)
Посмотрю, когда время будет.

буду очень благодарен

Автор: artsb 27.2.2009, 23:15
to Simon14
Код

void __fastcall TForm1::FormResize(TObject *Sender)
{
if(!Form4 || !Form4->Visible) return;  // <- здесь
if(Docked == 1)
{
  iLeft = this->Width;
  Form4->Left = this->Left + iLeft;
}
else if(Docked == 2)
{
  iTop = this->Height;
  Form4->Top = this->Top + iTop;
}
}
//---------------------------------------------------------------------------

 void __fastcall TForm1::OnMove(TWMMove &Message)
{
    if(!Form4 || !Form4->Visible) return;  // <- и здесь
    if(Docked)
    {
      Form4->Top = this->Top + iTop;
      Form4->Left = this->Left + iLeft;
   }
}

Автор: Simon14 28.2.2009, 17:47
Спасибо огромное выручили

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)