Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.013 c
1-47422
Новенький в Делфи
2002-07-03 03:11
2002.07.15
как очистить карзину?


14-47687
Igorek
2002-06-13 16:06
2002.07.15
Даешь форум


3-47231
Андрусь
2002-06-18 11:27
2002.07.15
Регулировка закачки данных


1-47485
b6hc8yr6
2002-07-04 03:04
2002.07.15
Как добавить собственное событие в компонент?


1-47473
Dmitry V. Averuanov
2002-07-01 12:52
2002.07.15
Нужно сделать рамку с ПЛАВНО ! меняющимся цветом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский