![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
здраствуйте.подскажите пожалуйста,как при нажатии на кнопку,создать N кол-во кнопок (кол-во вводим в Edit1)?
у меня получаеться создать тока одну кнопку Код:
var Form1: TForm1; Button2 : Tbutton; <...> procedure TForm1.Button1Click(Sender: TObject); begin Button2 := TButton.Create(Form1); Button2.Parent := Form1; Button2.Height := 25; Button2.left:=72 ; Button2.Top:=8; Form1.ActiveControl:=Button2; end; Код:
var Form1: TForm1; Button2 : Tbutton; <...> procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i:=1 to N do begin Button2 := TButton.Create(Form1); Button2.Parent := Form1; Button2.Height := 25; Button2.left:=20*i ;//с расположением пока не работал еще особо.это так для вида Button2.Top:=8; Form1.ActiveControl:=Button2; end; end; Последний раз редактировалось Snake22, 09.03.2011 в 00:17. Причина: подписался на тему)) |
|
#2
|
||||
|
||||
|
Нужен массив кнопок:
Код:
var MyButtons: array of TButton; Код:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
SetLength(MyButtons, StrToInt(Edit1.Text)); // задаёшь разиер массива (кол-во кнопок)
for I := 0 to Length(MyButtons) - 1 do
begin // в цикле создаёшь кнопки и сохраняешь указатели на них в массиве
MyButtons[i] := TButton.Create(Form1);
// здесь делаешь с созданной кнопкой что нужно
MyButtons[i].Parent := Form1;
// и т. д.
end;
end;Код:
MyButtons[0].Caption := 'My button 1'; MyButtons[1].Caption := 'My button 2'; Последний раз редактировалось ryderx34, 09.03.2011 в 02:40. |
|
#3
|
|||
|
|||
|
Спасибо! с учебы приду заценю)
|
|
#4
|
|||
|
|||
|
Или так:
Код:
var
Form1: TForm1;
Button2 : Tbutton;
<...>
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=1 to 10 do
begin
With Button2 do
begin
TButton.Create(Form1);
Parent := Form1;
Height := 25;
left:=72 ;
Top:=8;
Name:='Btn'+IntToStr(i);
end;
end;
end;Последний раз редактировалось Janom, 09.03.2011 в 17:28. |
|
#5
|
||||
|
||||
|
Цитата:
|
|
#6
|
|||
|
|||
|
Можно, но тэг тоже отслеживать надо...
Я про такой вариант: Код:
var FindComp:TComponent;
...
for i:=0 to form1.componentcount-1 do
begin
if form1.components[i].name=('Btn7') then
begin
FindComp:=form1.findcomponent(form.components[i].name);
TButton(FindComp).Caption:='Кнопка7';
end;
end;Последний раз редактировалось Janom, 09.03.2011 в 18:02. |