Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание checkbox-ов

3.9K
20 апреля 2008 года
АКМ
49 / / 07.06.2005
есть некоторая переменная величина i. как на форме динамически создавать равное ей количество checkbox-ов?
9.4K
21 апреля 2008 года
AIGrifon
165 / / 13.11.2007
Цитата: АКМ
есть некоторая переменная величина i. как на форме динамически создавать равное ей количество checkbox-ов?



[highlight=Delphi]
...
var
cb : TCheckBox;
...
for j := 1 to i do begin
cb := TComboBox.Create(Self);//В данном случае Self - форма
//Что-то делаешь с созданным cb
end;
...
[/highlight]

16K
21 апреля 2008 года
medved_68
36 / / 06.07.2006
Цитата: AIGrifon
[highlight=Delphi]
...
var
cb : TCheckBox;
...
for j := 1 to i do begin
cb := TComboBox.Create(Self);//В данном случае Self - форма
//Что-то делаешь с созданным cb
end;
...
[/highlight]


Тогда уж лучше так:

 
Код:
var
  cb : array [0..100] of TCheckBox;
иначе после первой итерации указатель на предыдущий CheckBox будет потерян.
6
21 апреля 2008 года
George
4.1K / / 05.01.2007
Тогда уж лучше так:
[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]
3.9K
21 апреля 2008 года
АКМ
49 / / 07.06.2005
спасибо, парни, за участие. работает. тока в последнем листинге надо так:
 
Код:
...
for j:=1 to i-1 do begin
...

иначе - ошибка.
5.3K
21 апреля 2008 года
Somebody
185 / / 24.12.2006
Цитата: АКМ
тока в последнем листинге надо так:
 
Код:
...
for j:=1 to i-1 do begin
...

иначе - ошибка.


Если надо создать i штук, тогда уж

 
Код:
for j:=0 to i-1 do begin
6
22 апреля 2008 года
George
4.1K / / 05.01.2007
Исправил :)
Там ещё индекс массива должен быть не i, а j.
3.9K
29 апреля 2008 года
АКМ
49 / / 07.06.2005
Почему этот код срабатывает только когда форма создается автоматически, а если это available form, то спотыкается на фразе
 
Код:
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;

если убрать ".TabSheet1", то ошибки не выдает, но и не рисует чекбоксы.
286
04 мая 2008 года
misha_turist
572 / / 28.11.2005
Цитата: АКМ
Почему этот код срабатывает только когда форма создается автоматически, а если это available form, то спотыкается на фразе
 
Код:
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;

если убрать ".TabSheet1", то ошибки не выдает, но и не рисует чекбоксы.


Потомучно надо :

 
Код:
Parent := self.TabSheet1;

Цитируй с заголовком процедуры плз.:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог