var
cb : array [0..100] of TCheckBox;
Создание checkbox-ов
есть некоторая переменная величина i. как на форме динамически создавать равное ей количество checkbox-ов?
Цитата: АКМ
есть некоторая переменная величина i. как на форме динамически создавать равное ей количество checkbox-ов?
[highlight=Delphi]
...
var
cb : TCheckBox;
...
for j := 1 to i do begin
cb := TComboBox.Create(Self);//В данном случае Self - форма
//Что-то делаешь с созданным cb
end;
...
[/highlight]
Цитата: AIGrifon
[highlight=Delphi]
...
var
cb : TCheckBox;
...
for j := 1 to i do begin
cb := TComboBox.Create(Self);//В данном случае Self - форма
//Что-то делаешь с созданным cb
end;
...
[/highlight]
...
var
cb : TCheckBox;
...
for j := 1 to i do begin
cb := TComboBox.Create(Self);//В данном случае Self - форма
//Что-то делаешь с созданным cb
end;
...
[/highlight]
Тогда уж лучше так:
Код:
[highlight=delphi]
var
cb: array of TcheckBox;
begin
setLength(cb, i);
for j:=0 to (i - 1) do begin
cb[j] := TcheckBox.Create(self);
with cb[j] as TСheckBox do
begin
// Что-то делаешь со своим CheckBox'ом
end;
end;
end;
[/highlight]
Код:
...
for j:=1 to i-1 do begin
...
for j:=1 to i-1 do begin
...
иначе - ошибка.
Цитата: АКМ
тока в последнем листинге надо так:
иначе - ошибка.
Код:
...
for j:=1 to i-1 do begin
...
for j:=1 to i-1 do begin
...
иначе - ошибка.
Если надо создать i штук, тогда уж
Код:
for j:=0 to i-1 do begin
Там ещё индекс массива должен быть не i, а j.
Код:
Parent := frmUserPAR.TabSheet1;
вот весь фрагмент
Код:
var checkbox: array of TCheckBox;
i, count, h : integer;
begin
h := 0;
count := DM.tblUnit.RecordCount + 1;
if count <> 0 then
begin
setLength( checkbox, count );
for i := 1 to count - 1 do
begin
checkbox := TCheckbox.Create(frmUserPAR);
with checkbox as TcheckBox do
begin
Height := 17;
Width := 100;
Parent := frmUserPAR.TabSheet1;
Left := 320;
Top := 40 + h;
Caption := DM.tblUnit.FieldByName('Name').AsString;
h := h + 20;
end;
DM.tblUnit.Next;
end;
end;
i, count, h : integer;
begin
h := 0;
count := DM.tblUnit.RecordCount + 1;
if count <> 0 then
begin
setLength( checkbox, count );
for i := 1 to count - 1 do
begin
checkbox := TCheckbox.Create(frmUserPAR);
with checkbox as TcheckBox do
begin
Height := 17;
Width := 100;
Parent := frmUserPAR.TabSheet1;
Left := 320;
Top := 40 + h;
Caption := DM.tblUnit.FieldByName('Name').AsString;
h := h + 20;
end;
DM.tblUnit.Next;
end;
end;
если убрать ".TabSheet1", то ошибки не выдает, но и не рисует чекбоксы.
Цитата: АКМ
Почему этот код срабатывает только когда форма создается автоматически, а если это available form, то спотыкается на фразе
вот весь фрагмент
если убрать ".TabSheet1", то ошибки не выдает, но и не рисует чекбоксы.
Код:
Parent := frmUserPAR.TabSheet1;
вот весь фрагмент
Код:
var checkbox: array of TCheckBox;
i, count, h : integer;
begin
h := 0;
count := DM.tblUnit.RecordCount + 1;
if count <> 0 then
begin
setLength( checkbox, count );
for i := 1 to count - 1 do
begin
checkbox := TCheckbox.Create(frmUserPAR);
with checkbox as TcheckBox do
begin
Height := 17;
Width := 100;
Parent := frmUserPAR.TabSheet1;
Left := 320;
Top := 40 + h;
Caption := DM.tblUnit.FieldByName('Name').AsString;
h := h + 20;
end;
DM.tblUnit.Next;
end;
end;
i, count, h : integer;
begin
h := 0;
count := DM.tblUnit.RecordCount + 1;
if count <> 0 then
begin
setLength( checkbox, count );
for i := 1 to count - 1 do
begin
checkbox := TCheckbox.Create(frmUserPAR);
with checkbox as TcheckBox do
begin
Height := 17;
Width := 100;
Parent := frmUserPAR.TabSheet1;
Left := 320;
Top := 40 + h;
Caption := DM.tblUnit.FieldByName('Name').AsString;
h := h + 20;
end;
DM.tblUnit.Next;
end;
end;
если убрать ".TabSheet1", то ошибки не выдает, но и не рисует чекбоксы.
Потомучно надо :
Код:
Parent := self.TabSheet1;
Цитируй с заголовком процедуры плз.:)