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

 
Динамические объекты, Динамические объекты
Jonick
Отправлено: 20.12.2004, 14:29


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







У меня такая проблема. Необходимо создавать динамически объект, например кнопку,
а потом на форме таскать ее мышкой и ставить в любое место формы. Как это сделать не могу понять? Посоветуйте пожалуйста.
Valdemar
Отправлено: 20.12.2004, 15:39


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

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



Вот небольшой пример:
CODE

int x0,y0;
bool move;
...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   //динамическое создание кнопки
   //при необходимости можно назначить созданной кнопке обработчики событий, например, btn->OnClick=myClick;
   TButton * btn=new TButton(Form1);
   btn->Left=10;
   btn->Top=20;
   btn->Width=50;
   btn->Height=20;
   btn->Caption="Button";
   btn->Parent=Form1;
}
//---------------------------------------------------------------------------
//перемещение кнопки при нажатой левой кнопке мышки
void __fastcall TForm1::Button1MouseDown(TObject *Sender,
     TMouseButton Button, TShiftState Shift, int X, int Y)
{
   if (Button==mbLeft)
   {
       x0=X;
       y0=Y;
       move=true;
   }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1MouseUp(TObject *Sender,
     TMouseButton Button, TShiftState Shift, int X, int Y)
{
   move=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1MouseMove(TObject *Sender,
     TShiftState Shift, int X, int Y)
{
   if (move)
   {
       Button1->Left=Button1->Left+X-x0;
       Button1->Top=Button1->Top+Y-y0;
   }
}
Jonick
  Отправлено: 20.12.2004, 15:53


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







Большое спасибо все получилось.

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