Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2010, 20:07   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию [LAZARUS] Вкл\Откл все ToogleBox`ы разом.

Собссно сабж выше. Можно в 3-4 строки. Главное, чтобы все не перечислять. Имена тогглов такие: TGB1 - TGBXXX
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.07.2010, 20:23   #2
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

ниче не понял но копай в сторону

ComponentCount

типа того

TGB(Component[number]).Toggle := Component[number] is TGB;
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 15.07.2010, 20:38   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
ниче не понял
Аналогично.
ToggleBox это такая фиговина, похожая на кнопку, но которую можно "вжать":


На форме на разных страницах TPageControl находится с 3 десятка тогглов. Мне нужно, чтобы когда один "вжимался" - все остальные "выжимались". Количество тогглов заранее неизвестно, поэтому мне нужно написать универсальную функу, чтобы все "выключить".
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.07.2010, 20:39   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Код:
var
 i:integer;
begin
  for i:=0 to ComponentCount-1 do
  if (uppercase(Components[i].ClassName)='TGB') and (pos('TGB',uppercase(Components[i].Name))=1) then
  (Components[i] as TGB).Checked=true;
end;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 15.07.2010, 20:46   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию


SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.07.2010, 20:48   #6
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Ну так это свойство компонента TForm. Т.е. если используете в сторонней ф-ии вне класса, то дописывайте имя формы.(form1.components...).
Ага и вместо
Код:
(uppercase(Components[i].ClassName)='TGB')
надо
Код:
(uppercase(Components[i].ClassName)='TTOOGLEBOX')
pushl $0x18E3DF6B
call ICQ

Последний раз редактировалось russian-stalker; 15.07.2010 в 20:51.
russian-stalker вне форума Ответить с цитированием
Старый 15.07.2010, 20:53   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Спасибо, не знал. Исправил, теперь жалуется как в сообщении выше, в четвертой строке (49, 24). Тип компонента TToggleBox- там писать это? Написал, но ничего не меняется.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.07.2010, 20:55   #8
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Ну так вместо
Код:
(Components[i] as TGB)
надо
Код:
(Components[i] as TToogleBox)
pushl $0x18E3DF6B
call ICQ

Последний раз редактировалось russian-stalker; 15.07.2010 в 21:05.
russian-stalker вне форума Ответить с цитированием
Старый 15.07.2010, 20:58   #9
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Вот не пашет и хоть ты тресни:
Код:
 Procedure UnCheckAll;
 Var
 I : Integer;
 Begin
  For I := 0 To FRMMain.ComponentCount - 1 do
  If (UpperCase(FRMMain.Components[I].ClassName)='TToggleBox') And (Pos('TGB', UpperCase(FRMMain.Components[I].Name)) = 1) Then
  (FRMMain.Components[I] As TToggleBox).State := cbUnchecked;
 end;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.07.2010, 20:59   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
(uppercase(Components[i].ClassName)='TTOOGLEBOX')
а что в Лазарусе нет is?
if (Components[i] is TToogleBox) then //это TToggleBox
соответственно:
Код:
Procedure UnCheckAll;
Var i:Integer;
Begin
 for I:=0 to FRMMain.ComponentCount-1 do
 If FRMMain.Components[i] is TToggleBox Then (FRMMain.Components[i] As TToggleBox).State:=cbUnchecked;
 end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 15.07.2010 в 21:01.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Снять автофильтр с нескольких листов разом kzld Microsoft Office Excel 12 14.02.2010 10:54
Снять/поставить автофильтр на несколько листов разом kzld Microsoft Office Excel 14 14.02.2010 05:54
Логическое значение да / нет (вкл /вкл) и активация подтаблицы Roman_Roman Microsoft Office Access 2 12.02.2009 11:18
вкл. компа begemotikdin Компьютерное железо 6 09.09.2008 20:26
Вкл./Откл. Offset Noor Microsoft Office Excel 1 28.09.2007 08:37