Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > генерация элементов на форме


Автор: fanat107 9.4.2006, 22:28
в обшем само саобшение вот код для герации одного CheckBox
Код

var
  Form1: TForm1;
  
  x1: TCheckBox;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  x1:=TCheckBox.Create(form1);
  x1.Parent:=form1;
  x1.Left:=200;
  x1.top:=200;

end;

а как можно что бы не явно писать название переменной x1 а допустим в цикле если мне их много надо(что типа xi)?

Автор: Snowy 9.4.2006, 22:50
Код

  with TCheckBox.Create(form1) do
  begin
    Parent:=form1;    
    Left:=200;    
    top:=200;
  end;


Автор: fanat107 9.4.2006, 22:59
Цитата(Snowy @ 9.4.2006, 22:50)
Код

  with TCheckBox.Create(form1) do
  begin
    Parent:=form1;    
    Left:=200;    
    top:=200;
  end;

а как при этом к ним можно обрашаться?

Автор: Snowy 9.4.2006, 23:10
По имени:
Код
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 1 to 20 do
    with TCheckBox.Create(form1) do
    begin
      Parent:=form1;
      Left:=40;
      top:=i * 20;
      Name := 'X' + IntToStr(i);
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  c: TCheckBox;
begin
  c := TCheckBox(FindComponent('X' + IntToStr(5)));
  if c <> nil then
  begin
    c.Caption := 'Вот он!';
    c.Checked := not c.Checked;
  end;
end;

Автор: Foley 9.4.2006, 23:13
описываешь процедуру
Код

procedure CheckBox1Click(Sender: TObject);//в разделе Туре

далее описываешь саму процедуру
Код

procedure TF_nastr.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked=false then begin
if F_browserr.Panel1.Width>0 then
F_browserr.Panel1.Width:=F_browserr.Panel1.Width+1;
end
else begin
if F_browserr.Panel1.Width<150 then
F_browserr.Panel1.Width:=F_browserr.Panel1.Width+1;
end;
end;

далее при создании компанента присваиваешь ему значение процедуры
Код

with TCheckBox.Create(form1) do    
  begin    
    Parent:=form1;  
    CheckBox.OnClick:=CheckBox1Click;    
    Left:=200;     
    top:=200;    
  end;

должно работать писал тут, поэтому могут быть очепятки

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)