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

Вниз

Не пойму логику   Найти похожие ветки 

 
Schema ©   (2002-07-04 12:09) [0]

всем привет.
Итак кидаю на форму mainmenu, panel. По клику на пункте меню создаю в runtime окно treeview (отмечаю пункт меню галкой). При повторном клике на этом же пункте меню treeview уничтожается (убираю галку).
Вот процедура (Browser1 - name этого пункта в меню) - первоначально Browser1.Checked:=False.

procedure TForm1.Browser1Click(Sender: TObject);
begin
if not Browser1.Checked then
begin
Treeview1.Free; Browser1.Checked:=False; exit;
end;
Treeview1:=TTreeview.Create(Self);
Treeview1.Parent:=Panel1;
Browser1.Checked:=True;
end;

вот так (с not) почему-то все работает, но по логике все должно работать как раз наоборот - без NOT т.к при проходе процедуры условие должно всегда срабатывать и treeview создаваться не должно.
Почему так?


 
GenBr ©   (2002-07-04 13:40) [1]

Почему это должно всегда срабатывать, ты же явным образом указываешь:
Treeview1.Free; Browser1.Checked:=False; exit;


 
Schema ©   (2002-07-04 14:30) [2]

может я путанно написал - попробую еще раз:
первоначально - при запуске программы Browser1.Checked:=False.
потом запускается процедура - (см выше) - в таком виде, в каком она написана Treeview создаваться не должен (потому что по логике из процедуры мы должны всегда вываливаться по exit), а он создается - почему?


 
Skier ©   (2002-07-04 14:59) [3]

>Schema
Можно так :

procedure TForm1.Browser1Click(Sender: TObject);
begin
if Browser1.Checked then
begin
Treeview1.Free;
Browser1.OnClick:= nil; //чтобы не вызывать Browser1Click
Browser1.Checked:=False;
Browser1.OnClick := Browser1Click;
Exit;
end;
Treeview1:=TTreeview.Create(Self);
Treeview1.Parent:=Panel1;
Browser1.OnClick := nil; //чтобы не вызывать Browser1Click
Browser1.Checked:=True;
Browser1.OnClick := Browser1Click;
end;


 
ggrisha ©   (2002-07-04 15:17) [4]

Попробовал твой пример. Без not все работает. Текст скопировал твой. D6, win2k. Так что ошибка не в этом куске текста.


 
Schema ©   (2002-07-04 15:40) [5]

вот черт
у меня на пункте меню browser стояло autocheck:=true;
поэтому то все и работало наоборот , не так как нужно.
pardon me и спасибо.



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
1-47579
alxx
2002-06-28 10:16
2002.07.15
Составляющие шрифта


1-47521
mazepa
2002-06-27 19:00
2002.07.15
Как быстро сохранить инф. из s:string {H+} в file.txt


3-47165
Explorer
2002-06-13 09:44
2002.07.15
Decimal, money и Float


1-47292
Марк
2002-06-30 11:19
2002.07.15
Открыть файл


1-47328
Вадим
2002-06-29 00:19
2002.07.15
Проверить, есть ли property