Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
ВнизCheckBox Найти похожие ветки
← →
serko (2005-01-17 20:32) [0]Почему когда я программно делаю CheckBox1.Checked:=true или CheckBox1.Checked:=false срабатывает событие Checkbox1.OnClick? Как этого избежать?
← →
serko (2005-01-17 22:21) [1]че такой сложный вопрос?
← →
Jel © (2005-01-17 22:44) [2]На самом деле это логично. В onClick обычно предпринимают действия отражающие реальное состояние CheckBox-а. Ты меняешь состояние, пусть и программно - событие вызывается.
← →
Apocalepse © (2005-01-17 22:46) [3]Потому что так и должно быть :-)
← →
Hmm © (2005-01-17 22:46) [4]
var cl:boolean;{что-то типа флага указывающего откуда идет установка checked :=true/false}
...
procedure TForm1.Button1Click(Sender: TObject);
{эта процедура устанавливает/снимает галочку}
begin
cl:=true;
if checkbox1.Checked then checkbox1.Checked:=false
else checkbox1.Checked:=true;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if cl=true then cl:=false
else begin
//твои действия - реакция на клик
showmessage("!");
end;
end;
PS: Возможно есть другие, более простые варианты, тем неменее и этот работает :)
← →
Jel © (2005-01-17 22:48) [5]Можно еще и положение мышки проверить в обработчике, только извраты все это. Какая разница откуда установили свойство? Почему в одном случае реакция нужна а в другом нет?
← →
SergP © (2005-01-17 23:17) [6]
> Как этого избежать?
CheckBox.OnClick:=nil;
Checkbox.Checked:=true;
CheckBox.OnClick:=CheckBox1Click;
← →
Hmm © (2005-01-18 00:42) [7]Так и знал, что можно проще )
← →
serko (2005-01-18 03:15) [8]Ну спасиба ребята! Еще не проверял, но думаю все логично!
← →
VMcL © (2005-01-18 08:18) [9]>>Hmm © (17.01.05 22:46) [4]
[OFFTOPIC]
Когда я вижу такой код, у меня рука сразу тянется к пистолету. Правда, к водяному.
>if checkbox1.Checked then checkbox1.Checked:=false
else checkbox1.Checked:=true;checkbox1.Checked := not checkbox1.Checked;
>if cl=true then
No comments.
[/OFFTOPIC]
← →
Hmm © (2005-01-18 16:22) [10]
> checkbox1.Checked := not checkbox1.Checked;
Эт типа на место поставили?
← →
Ega23 © (2005-01-18 17:08) [11]Эт типа на место поставили?
Нет, верно и так и так. Просто если при приёме на работу тебя попросят выслать пример кода, а ты пошлёшьif checkbox1.Checked then checkbox1.Checked:=false else ...
, не удивляйся, когда тебя "отфутболят".
← →
Hmm © (2005-01-18 17:18) [12]Дело в том, что любая критика должна иметь место. Я никогда не питал иллюзий о том, что мой код идеален. Человеку нужна была помощь (не думаю, что ему важна была именно оптимальность кода), ответов по сути вопроса не было, и я решил помочь, так как умею. И незачем через 5 часов после последнего поста, вытаскивать тему на вершину форума, ради подобного замечания.
← →
Ega23 © (2005-01-18 17:21) [13]2 Hmm © (18.01.05 17:18) [12]
И незачем через 5 часов после последнего поста, вытаскивать тему на вершину форума, ради подобного замечания.
Ты считаешь, что это замечание тебе ничем не помогло?
← →
Hmm © (2005-01-18 17:28) [14]
> checkbox1.Checked := not checkbox1.Checked;
Это мне помогло.
> CheckBox.OnClick:=nil;
> Checkbox.Checked:=true;
> CheckBox.OnClick:=CheckBox1Click;
Это тоже много лучше, нежели [4].
А вот это:
> Когда я вижу такой код, у меня рука сразу тянется к пистолету.
> Правда, к водяному.
- явно лишнее. Пахнет сарказмом и понтами.
← →
Ega23 © (2005-01-18 17:32) [15]- явно лишнее. Пахнет сарказмом и понтами.
Привыкай. Если выкладываешь код - будь готов к тому, что его могут назвать "полный бред", "ахинея" и т.п.
← →
VMcL © (2005-01-26 00:19) [16]>>Hmm © (18.01.05 17:28) [14]
Понтоваться я буду перед своим Group Leader"ом и CEO, поскольку от них зависит моя зряплата. Но явно не перед Вами или кем-либо ещё с этого форума.
WBW.
P.S. Если уж хочется настоящего сарказма, то зацените увиденный мной как-то код (правда, на VB.NET):Public Function SomeFunction(<тут какие-нить параметры>) As Boolean
Dim retValue As Boolean
" ...
retValue = SomeOtherFunction(...)
If retValue = True Then
Return True
Else
Return False
End If
End Function
← →
SergP © (2005-01-26 00:39) [17]
> [16] VMcL © (26.01.05 00:19)
А прикинь, если бы он написал так:
Public Function SomeFunction(<тут какие-нить параметры>) As Boolean
" ...
Return SomeOtherFunction(...)
End Function
а оплата труда у него по количеству строк кода...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.03 c