![]() |
Как отключить все Checkbox'ы на форме?
У меня на форме стоит около 800 Chekbox'ов - вопрос,как можно отключить их по нажатию одной кнопки?
Сперва пошел обычным путем,каждый чекбокс писал отдельно и уже через 20 чекбоксов мне это начало надоедать.Подкините мне функцию для снятия и для включения этих чекбоксов ?! А то 800 строчек да и еще писать одно и тоже,это уже перебор |
Цитата:
Мне на ум приходит только вариант,если идентификаторы ваших чекбоксов прописать таким образом,чтобы все их можно было перебрать простым инкрементом в цикле.Тогда в цикле можно вызывать GetDlgItem и SendMessage с параметрами BM_SETCHECK, BST_UNCHECKED,и после делать инкремент идентификатора,тем самым переходя на следующий контрол. ADD. Сейчас подумал,что можно поиграться с функцией FindWindowEx,и возможно это даст результат(неуверен,ибо сам не пробовал). Второй параметр функции - hwndChildAfter: Handle to a child window. The search begins with the next child window in the Z order. Это значит,что можно сперва вне цикла получить описатель первого чекбокса,сделать с ним всё,что нужно,а потом войти в цикл и начать вызывать ту же FindWindowEx,передавая ей в качестве второго параметра возращённый ею же результат.Каждый раз. Однако повторю,что это не проверено мною на практике,поэтому может быть ошибочным. |
Цитата:
Я думаю здесь все дело в массивах - просто тип массива выдает ошибку я сегодня пробовал так finctuion UncheckedAll (Unchecked:Tcheckbox):tcheckbox; var Unchecked:Array of Array [1..800] of TCheckbox; дальше не мыслью как ... |
Вложений: 1
R.M.L, Дельфя затуманила ваш разум.Бросайте её как можно скорее.Серьёзно.
Моя догадка насчёт функции FindWindowEx похоже оказалась верной.Прилагаю свой исходник на ассемблере и скомпилированный файл.Изучайте. |
Цитата:
Мне она нравится, но о вкусах не спорят... Я конечно понимаю, что асм как библия для программирования, но пока для меня это как высшая математика... :) Цитата:
|
Цитата:
Я из вашего кода понял только вызов библиотек и переменные на чекбоксы.Остальное как ежик в тумане :)) Цитата:
Я не программист и работаю совсем в иной сфере,вот и время от времени у меня возникают такие вопросы на которых у меня нет хоть 30 процентного ответа.Честно скажу,такой метод я бы никогда не узнал если не ваш исходник.Мой друган с первого звонка че та намикал про циклы While Repeat то я искал выход через массив обектов.Ок спасибо , отальное доделаю сам - на первом чекб. галочка осталась. |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
|
Цитата:
Цитата:
Цитата:
mozgabyte, вы создайте, свою тему, больше шансов получить помощь... ;) |
Время: 10:06. |
Время: 10:06.
© OSzone.net 2001-