Помощь - Поиск - Пользователи - Календарь
Полная версия: Builder 6.0
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Fanat
При создании динамически кнопки необходимо что бы она оказалась поверх всех компонентов...
BringToFont() и SendToBack() не работает в этом случае...Как быть?..
volvo
Положи TPanel (с размером, равным размеру кнопки) на форму, а уж на нее - свою кнопку, тогда кнопка будет "сверху"...
Fanat
Цитата(volvo @ 4.01.2008 12:58) *

Положи TPanel (с размером, равным размеру кнопки) на форму, а уж на нее - свою кнопку, тогда кнопка будет "сверху"...


А как то ещё можно?..Потому что кнопок много...то есть зарание неизвесто сколько нужно панелей...
Одна большая панель также не подходит... unsure.gif
volvo
Ты не понял... При создании кнопки - создавай перед этим панель, тоже динамически...
Fanat
Цитата(volvo @ 4.01.2008 13:42) *

Ты не понял... При создании кнопки - создавай перед этим панель, тоже динамически...


А как вставить на динамически созданную панель кнопку?



MyButton *B = new MyButton(this);
TPanel *P = new TPanel(Panel1);

Main->InsertControl(P);
Main->P->InsertControl(B);




Так не работает...

Добавлено через 12 мин.
Цитата(Fanat @ 4.01.2008 13:52) *

А как вставить на динамически созданную панель кнопку?



MyButton *B = new MyButton(this);
TPanel *P = new TPanel(Panel1);

Main->InsertControl(P);
Main->P->InsertControl(B);




Так не работает...



Всё...спасибо разобрался...
volvo
Я бы сделал так:

class MyButton : public TSpeedButton
{
TPanel *parent;
public:
int n, m;
__fastcall MyButton(Classes::TComponent* AOwner, const TRect& rect);
};

__fastcall MyButton::MyButton(Classes::TComponent* AOwner, const TRect& rect)
:TSpeedButton(AOwner)
{
parent = new TPanel(AOwner);
parent->BoundsRect = rect;
parent->BevelOuter = bvNone;
parent->Parent = dynamic_cast<TWinControl*>(AOwner);

m = n = 0;
this->Parent = parent;
};

void __fastcall TForm1::Button1Click(TObject *Sender)
{
static MyButton* Button = new MyButton(this, Rect(10, 10, 10+23, 10+23));
Button->m = 10;
Button->n = 20;
Button->Show();
}

(эта тема является логическим продолжением темы о наследовании от Button-а, я не ошибся?)
Fanat
Цитата(volvo @ 4.01.2008 15:22) *

(эта тема является логическим продолжением темы о наследовании от Button-а, я не ошибся?)


Нет, не ошибся...Очень интересно спасибо...=)
А что это за свойства?..
parent->BoundsRect
parent->BevelOuter
parent->Parent

volvo
Цитата
А что это за свойства?..
Как это "что за свойства"? blink.gif Обычные свойства TPanel...

Первое - координаты прямоугольника, содержащего панель.
Второе - стиль отображения наружной границы панели.
Третье - собственно "родитель" панели...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.