Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как работать с CheckBox'ами в виде массива


АП ©   (2004-10-09 23:13:00) 

У меня на форме есть, к примеру 8 CheckBox и 8 Memo, как работать с ними как с масивом, или чем-то подобным, например я хочу их разом невидимыми сделать, или часть CheckBox отключить, например,4. Каждый разписать CheckBox1.enabled:=false... не хочется. В книжках пытался порыться,  за 15 минут почти ни чего не нашол, Скорей всего это что-то просте, кто знает, ответте.


XM   (2004-10-10 00:11:00) [1]

procedure EnableControls(const C: array of TControl; Value: Boolean);
var I: Cardinal;
begin
for I:=Low(C) to High(C) do
  C [I].Enabled:=Value;
end;


АП   (2004-10-09 23:31:00) [2]

Ok, попробую, хоть в Delphi почти не секу, (на Пас Кале7.0 сижу), но ыглядит нормально


olookin   (2004-10-09 23:30:00) [3]

А не проще проверять через Controls наличие объекта заданного типа и делать с ним все?


GuAV   (2004-10-09 23:29:00) [4]

FindChildControl(CheckBox+IntToStr(I)) as TCheckBox

*********

if controls[i] is TCheckBox
with TCheckBox(controls[i]) do
if Name=CheckBox1


GuAV   (2004-10-09 23:27:00) [5]

как вариант...
procedure EnableControls(const C: array of TControl; Value: Boolean);
var I: Integer;
begin
 for I:=Low(C) to High(C) do
   C.Enabled:=Value;
end;

...

EnableControls(CheckBox2, CheckBox4);


АП   (2004-10-09 23:25:00) [6]

Для Memo я извернулся. как-то, методом тыка..., но всё равно, что-то не то. Хотелось бы узнать, какому элементу массва какая фигня соответствует
for i:= 5 to 4+kotv[k] do
begin
(controls[i] as TMemo).visible:=true;

with (controls[i] as TMemo) do begin
SelStart:=0;
SelLength:=200;
SelText:=ms[k,i-5];
end;


Defunct   (2004-10-09 23:19:00) [7]

> за 15 минут почти ни чего не нашол

за 15 минут можно было написать все необходимые комбинации залочивания CheckBox'ов

Procedure Lock4;
Begin
 CheckBox1.Enabled := False;
 CheckBox2.Enabled := False;
 CheckBox3.Enabled := False;
 CheckBox4.Enabled := False;
End;

и т.д.


Defunct   (2004-10-09 23:16:00) [8]

Да это проблема..

хотите совет, чем больше думаете над красотой кода, тем выше вероятность, что программа либо не будет написана, либо будет уже никому не нужна.


Наверх

Титульная страница Поиск, карта сайта Написать письмо