Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.11;
Скачать: CL | DM;

Вниз

TCheckBox   Найти похожие ветки 

 
_MAD_ ©   (2003-08-30 16:59) [0]

помогите плиз.
У меня на форме есть 3 чеквокса так вот нузно написать универсальный алгоритм чтобы если итое условие равно 0 тогда чекбокс получается анчект или наоборот и так далее.
трабл в том как сделать массв из имен чекбоксов и потом их использоватью если кто знает или может помочь буду очень благодарен.
ЗЫ: компоненты неприветствыются


 
Song ©   (2003-08-30 17:01) [1]

TCheckBox(Sender).Checked:=Bool(i);


 
_MAD_ ©   (2003-08-30 17:58) [2]

сорри я видимо неправильно сформулировал вопрос.
у меня есть 3 чекбокса и 3 условия. создаю цикл и если первое условие нас устраивает то чекбокс чекается если нет то нечекается и так далее.
ЗЫ: проблема в том что чекбоксов может быть 30-40 штук и для облегчения кода я думаю нужно использовать массив с их именами и соответственно при чеканье брать его имя по номеру из цикла и по этому имени его чекать
на этот раз кажется изложил все правильно


 
Song ©   (2003-08-30 18:04) [3]

А условия у тебя где фиксируются? От руки в коде пишутся? Дело в том, что перечисление чекбоксов автоматизировать можно, а вот условия, зависит от того, как ты их реализовал. Приведи кусок своего кода.


 
_MAD_ ©   (2003-08-30 18:13) [4]

const
keys : array [1..3] of string =("NoFavoritesMenu", "NoFind", "NoSMHelp");

var
i:integer;
begin
reg:=tregistry.Create;
try
reg.RootKey:=HKEY_CURRENT_USER;
if reg.OpenKey("\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explo rer",true) then
for i:=1 to 3 do
begin
if reg.ReadBool(keys[i])=1 then
вот как раз в этом месте и необходимо чтобы чекался итый чеквокс соответстующий итому ключу
end;
finally
Reg.CloseKey;
Reg.Free;
inherited;
end;

end;


 
Song ©   (2003-08-30 18:25) [5]

Если CheckBox1 соответствует keys[1], а CheckBox2 - keys[2] и т.д.
тогда можно так:

For i:=1 to High(Keys) Do CheckBox(FindComponent("CheckBox"+IntToStr(i))).Checked:=Bool(Keys[i]) ;


 
_MAD_ ©   (2003-08-30 18:28) [6]

спаисбо большое


 
_MAD_ ©   (2003-08-30 19:11) [7]

простите за назойливость но у меня опять проблема на вот эту строку For i:=1 to High(Keys) Do CheckBox(FindComponent("CheckBox"+IntToStr(i))).Checked:=Bool(Keys[i]) ;
делфа пишет Undeclared identifier: "CheckBox" что делать


 
Юрий Зотов ©   (2003-08-30 19:15) [8]

...do T CheckBox(FindComponent(...


 
_MAD_ ©   (2003-08-30 19:21) [9]

спасибо все работает


 
Мал0й   (2003-08-30 19:22) [10]

Возможно это решит проблему не только трех CheckBox-ов

Type CheckBox = Array [0..N] of TCheckBox;
Var MyCheckBox: CheckBox;



Страницы: 1 вся ветка

Текущий архив: 2003.09.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
1-33630
Menel
2003-08-31 18:13
2003.09.11
Определить имя коипонента для применения свойства


1-33616
Pave1
2003-09-01 10:00
2003.09.11
Как можно динамически обратится к объекту.


3-33497
Relaxxx
2003-08-20 11:55
2003.09.11
позиция колонки в ДБГриде


1-33596
qwerty2
2003-09-01 15:39
2003.09.11
Как узнать дату изменения файла в Windows 98?


1-33574
Alex17
2003-08-28 16:59
2003.09.11
Ошибка при добавлении нового проекта в Project manager