Jak zmienić rodzica komponentu podczas działania programu?
np.
DC := TPanel.Create(Self);
DC.Parent := Self;
i teraz:
DC.Parent:= Panel1;
I wyskakuje błąd albo nic się nie dzieje.
W skrócie: Jak przenieś komponent z formularza na panel.
Jak zmienić rodzica komponentu podczas działania programu?
np.
DC := TPanel.Create(Self);
DC.Parent := Self;
i teraz:
DC.Parent:= Panel1;
I wyskakuje błąd albo nic się nie dzieje.
W skrócie: Jak przenieś komponent z formularza na panel.
Jaki błąd wyskakuje? bo ja sprawdziałem i działa ładnie...
<font color="green">DC := TPanel.Create(Self);
DC.Parent := Self;</span>
Druga linijka jest już chyba niepotrzebna przy takim wywołaniu...
aaa wiem, jezeli DC nie jest zmienną globalną a nowego parenta przypisujesz w innej procedurce niż w której twozysz to rzeczywiście jest błąd... jak zadeklarujesz DC jako zmienną globalną to błędu nie będzie
Nie to nie oto chodzi.
Jak przenieś komponent np. Przycisk (TButton) z formularza (TForm) na panel.
Formularz ma przycisk ,a później ten przycisk pojawia się na panelu.
Coś takiego:
DC - to przycisk (TButton)
DC.Parent := Form1; //tu jest ok
Teraz podczas kliknięcia na nim:
DC.Parent := Panel1; //i tu jest błąd
HELP [???]
co kurde nie działa?? masz u kad który działa i nie mam problemów:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
procedure DCClick(Sender: TObject);
end;
var
Form1: TForm1;
DC: TButton;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Parent:=Panel1;
end;
procedure TForm1.DCClick(Sender: TObject);
begin
DC.Parent:=Panel1;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Dc:=TButton.Create(Self);
DC.Parent:=Self;
Dc.Top:=0;
DC.Left:=80;
DC.Caption:='autocreate button';
DC.Visible:=True;
DC.OnClick:=DCClick;
end;
end.
a oto form tegoż proga:
object Form1: TForm1
Left = 192
Top = 111
Width = 870
Height = 640
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 0
Top = 0
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
OnClick = Button1Click
end
object Panel1: TPanel
Left = 352
Top = 24
Width = 257
Height = 41
Caption = 'Panel1'
TabOrder = 1
end
end
i mi działa
ja nie wiem w czym jest problem... u mnie wystarczy tylko:
Button1.Parent:= Panel1;
pozdro.