![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
priboltik |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 58 Пол: Мужской Реальное имя: Константин Репутация: ![]() ![]() ![]() |
полазил по FAQу - не нашел..
как я могу использовать Sender и где я могу его использовать??? если я правильно понимаю, то его можно использовать для одинаковых действий над объектами одного и того же класса.. это так?? вот напимер, как с помощью Sender мне в 3 checkbox - ах поменять свойство Visible??? пишу: (Sender as TCheckBox).Enabled:=true; - компиллирует но выдает ошибку... подскажите пожалуйста.. |
xds |
![]()
Сообщение
#2
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
А ты где это пишешь? Sender as TCheckBox будет работать без ошибки только в обработчике событий TCheckBox (т. е., когда Sender is TCheckBox = True). Параметр Sender указывает объект-источник события. Например, в обработчике события TButton.OnClick параметр Sender будет указывать на объект типа TButton, сгенерировавший событие по щелчку мышкой.
-------------------- The idiots are winning.
|
мисс_граффити |
![]()
Сообщение
#3
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
priboltik, приведи, пожалуйста, полностью обработчик события...
и поконкретнее, что в каком случае должно происходить... при щелчке на CheckBox 3 CheckBox'а должны становиться невидимыми? Или только один, на который кликнули? и описание ошибки, которая у тебя выдается. hint: Enabled и Visible - это разные свойства ;) хочешь менять видимость - с ней и работай. Сообщение отредактировано: мисс_граффити - 23.02.2007 19:06 -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
priboltik |
![]()
Сообщение
#4
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 58 Пол: Мужской Реальное имя: Константин Репутация: ![]() ![]() ![]() |
Цитата hint: Enabled и Visible - это разные свойства ;) хочешь менять видимость - с ней и работай. сорри. погнал ![]() procedure TForm1.Button1Click(Sender: TObject); сегодня в универе посоветовали сначала сделать проверку: if (Sender is TCheckbox) then (sender as TCheckbox).enabled; .. еще правда не пробовал.. Сообщение отредактировано: volvo - 24.02.2007 14:02 |
мисс_граффити |
![]()
Сообщение
#5
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Смотри: Sender - это то, что, собственно, вызвало событие.
В данном случае, насколько я вижу, это кнопка Button1. НО! Если ты привешиваешь обработчик Button1Click на, например, событие CheckBox1 OnClick и щелкаешь по CheckBox1 - Sender'ом будет CheckBox1. Не все CheckBox'ы, а он один. Тогда можно работать так, например: procedure TForm1.Button1Click(Sender: TObject); Но тут надо быть осторожным: если фактически Sender - BitBtn (TBitBtn - наследник TButton), то Sender is TButton вернет истину. Если же тебе надо поменять видимость у всех CheckBox'ов, а не у одного, вызвавшего событие (или CheckBox'ы вообще не имеют отношения к событию) - работай с массивом Components, а не с Sender'ом -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
priboltik |
![]()
Сообщение
#6
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 58 Пол: Мужской Реальное имя: Константин Репутация: ![]() ![]() ![]() |
А вообще реально одной строкой поменять некот. свойства у объектов одного и того же класса????
если да, то как это сделать??? |
klem4 |
![]()
Сообщение
#7
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
procedure TForm1.Button1Click(Sender: TObject); -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
priboltik |
![]()
Сообщение
#8
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 58 Пол: Мужской Реальное имя: Константин Репутация: ![]() ![]() ![]() |
ок. спасибо.. собственно это и хотелось узнать..
![]() |
![]() ![]() |
![]() |
Текстовая версия | 9.07.2025 21:19 |