Изменение визуальной принадлежности компонента...

Если в программе во время выполнения я меняю указание визуальной принадлежности, к примеру, кнопки из формы в панель, как сделать эту кнопку видимой. Сейчас, после выполнения оператора Button1.Parent := Panel1 эта кнопка становится невидимой, т.к. Panel1 ее перекрывает. Каким способом кнопку в этом случае сделать видимой?  
7 ответов

Button1.Parent := Panel1 эта кнопка становится невидимой, т.к. Panel1 ее перекрывает
не верюButton1 в любом случае будет поверх Panel1, (а точнее она будет на ней)Добавлено через 1 минуту и 12 секунда лучше расскажи чего хочешь сделать... 


может
button1.visible := true;


или:
Button1.Parent := Panel1;Button1.Top := 0;Button1.Left := 0;


Это чисто пример из одного учебника где рассматривается создание некоего компонента во время выполнения программы:
unit unCreateComp1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, ExtCtrls;type  TForm1 = class(TForm)    pnlMain1: TPanel;    btnCreate1: TButton;    btnMove1: TButton;    btnFreePanel1: TButton;    btnMoveButtons1: TButton;    procedure btnCreate1Click(Sender: TObject);    procedure btnMove1Click(Sender: TObject);    procedure btnFreePanel1Click(Sender: TObject);    procedure btnMoveButtons1Click(Sender: TObject);  private    { Private declarations }    edtNewEdit1: TEdit;  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.btnCreate1Click(Sender: TObject);begin edtNewEdit1 := Tedit.Create(pnlMain1);// edtNewEdit1.Left := 50; edtNewEdit1.Top := 10; edtNewEdit1.Width := pnlMain1.ClientWidth - 61; edtNewEdit1.Height := pnlMain1.ClientHeight - 10; edtNewEdit1.Left := Trunc((pnlMain1.Width - edtNewEdit1.Width)/2); edtNewEdit1.Parent := pnlMain1; //end;procedure TForm1.btnMove1Click(Sender: TObject);begin edtNewEdit1.Parent := Self;end;procedure TForm1.btnFreePanel1Click(Sender: TObject);begin pnlMain1.Free;end;procedure TForm1.btnMoveButtons1Click(Sender: TObject);begin btnCreate1.Parent := pnlMain1; btnMove1.Parent := pnlMain1; btnFreePanel1.Parent := pnlMain1; btnMoveButtons1.Parent := pnlMain1; btnFreepanel1.Visible := True; pnlMain1.SendToBack;end;end.
Просто в качестве эксперимента я здесь пробую кнопкой btnMoveButtons1 поменять для этих кнопок "родителя", но при нажатии этой кнопки видна остается только панель pnlMain1, а кнопок я не вижу. Я пробую и сделать для одной из кнопок Visible := True и пытался применить к панели метод SendToBack, но этих кнопок все равно не видать.


 пытался применить к панели метод SendToBack
и задвинул ее назад вместе с кнопкамииспытай BrignToFrontДобавлено через 3 минуты и 27 секундлибо старые координаты кнопок за пределами размеров панели


но этих кнопок все равно не видать. 
спорим мой код поможет? проверь его, настоятельно рекомендую (выше).Добавлено через 1 минуту и 44 секунды
 edtNewEdit1.Width := pnlMain1.ClientWidth - 61; edtNewEdit1.Height := pnlMain1.ClientHeight - 10;
ахрентьтебе не кажется что твой едит все портит, накрывая почти всю панел?Добавлено через 4 минуты и 50 секундно это пофик. высота едита все равно будет ~21.


либо старые координаты кнопок за пределами размеров панели 
Да. Так и есть. Спасибо. Там просто не хватало размера панели.