Официальный сайт студ.городка НГТУ
Программирование и БД » [CBuilder6] Можно ли "привязать" формы друг к другу? 

#1  16.12.06 12:51

[CBuilder6] Можно ли "привязать" формы друг к другу?

Т.е. чтобы обе формы одновременно отображались на экране и двигались вместе (если одну из них начинаешь перемещать) , как будто связанные?
Если да, то как?

Offline

#2  18.12.06 10:27

Re: [CBuilder6] Можно ли "привязать" формы друг к другу?

хз..
кажется через собития надо делать

Offline

#3  18.12.06 10:52

Re: [CBuilder6] Можно ли "привязать" формы друг к другу?

не знаю, как на билдере, на си шарпе можно так:
обрабатываешь событие move для каждой из форм и соответственно высчитываешь коорди наты второй и устанавливаешь их

Код: :csharp:

    public partial class Form1 : Form
    {
        Form2 form2;
        public Form1()
        {
            InitializeComponent();
            form2 = new Form2();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            form2.Left = this.Location.X + this.Width;
            form2.Top = this.Location.Y + this.Height;
 
            form2.Show();
        }
 
        private void Form1_Move(object sender, EventArgs e)
        {
            form2.Left = this.Location.X + this.Width;
            form2.Top = this.Location.Y + this.Height;
        }
    }

Offline

#4  18.12.06 18:52

Re: [CBuilder6] Можно ли "привязать" формы друг к другу?

ну скажем так один из вариантов на C++ Builder:

void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
        Form1->Tag = 1;
        X1 = X;
        Y1 = Y;
        dx = Form2->Left - Form1->Left;
        dy = Form2->Top - Form1->Top;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
        int Dx = X - X1;
        int Dy = Y - Y1;

        if (Form1->Tag == 1)
        {
                Form2->Left = Form1->Left + dx + Dx;
                Form2->Top = Form1->Top + dy + Dy;
                Form1->Left = Form1->Left + Dx;
                Form1->Top = Form1->Top + Dy;
                X = X1;
                Y = Y1;

        }

}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
        Form1->Tag = 0;
}
//---------------------------------------------------------------------------

Offline

#5  20.12.06 09:00

Re: [CBuilder6] Можно ли "привязать" формы друг к другу?

Спасибо всем за помощь и за внимание! (:

Offline

Программирование и БД » [CBuilder6] Можно ли "привязать" формы друг к другу? 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.073 сек.
Выполнено 11 запросов.