Vadim писал(а):the_beginer писал(а):то пропадет последняя созданная кнопка, т.е. в нашем случае button10
А с чего бы вдруг она пропадёт? Вот если бы было так:
- Код: Выделить всё
button10:=b;
тогда конечно, после b.Free пропадёт кнопка button10, т.к. это по сути будет та же кнопка b. Но если button10 создана отдельно, то b.Free никак на неё не повлияет.
Уважаемый, вот С ЧЕГО она пропадает я и хочу узнать и, соответственно, КАК ЭТО обойти или исправить. Хотя узнав ответ на "С ЧЕГО", ответ на вопрос "КАК ИСПРАВИТЬ" я думается и сам с могу найти.
Добавлено спустя 2 минуты 12 секунд:Vadim писал(а):the_beginer писал(а):то пропадет последняя созданная кнопка, т.е. в нашем случае button10
Действительно, пропадёт. Заодно и пропадут и остальные 9 кнопок, причём сразу же после создания следующей кнопки, т.к. одной и той же переменной Вы каждый раз присваиваете новый адрес в памяти, а предыдущий адрес благополучно теряете.
Если надо создать несколько кнопок, то обычно делают так:
- Код: Выделить всё
Var
b: array[0..9] of TButton;
i: integer;
Begin
...
For i:=0 To 9 Do
Begin
b[i]:=TButton.Create(Form1);
b[i].Top:=
b[i].Left:=
//Ну и так далее
End;
End;
если мы делаем так :
var b : Tbutton;
begin
...
for i := 1 to 10 do
begin
b := Tbutton.Create(self);
with (b as tbutton) do
begin
name := 'button' + inttostr(i);
... // ну тут мы описываем нужные свойства
end;
b.parent := findcomponent('scrollbox' + inttostr(i)) as Tscrollbox;
b.free; ...
end; //end if i=1 ...
то пропадут все кнопки, а если так:
var b : Tbutton;
begin
...
for i := 1 to 10 do
begin
b := Tbutton.Create(self);
with (b as tbutton) do
begin
name := 'button' + inttostr(i);
... // ну тут мы описываем нужные свойства
end;
b.parent := findcomponent('scrollbox' + inttostr(i)) as Tscrollbox;
...
end; //end if i=1 ...
b.free;то только последняя