![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 08.01.2008
Сообщений: 233
|
![]()
Есть TTreeView. В его событии onClick происходит работа с его выделенным элементом, т.е. TTreeView.Selected
И при запуске программы необходимо проихвести этиже действия, т.е. в Form.Show я вызываю TreeViewClick Пробелмма в том, что при этом первом запуске этот самый Selected=nil. Пробовал все, onActivate, onCreate - nil. Но если повесить вызов события на отдельную кнопку и нажать ее после запуска приложения - он равен первому элементу. Вообщем как правильно вызвать этот обработчик? Руками назначить Selected? А когда он сам приобретает это свойство? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 22.02.2009
Сообщений: 875
|
![]()
Ну да, можно попробовать выделить элемент самим.
Для этого существует процедура Select Для того чтобы выделить первый элемент, надо написать: Код:
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 08.01.2008
Сообщений: 233
|
![]()
Нее, ну это я знаю. Самому выделять, помоемУ, не совсем коректно...
Непонятен механизм. В какой момент времени TTreeView выделяется сам? В него элементы занеслись, а Select еще не настал. Странно это. Даже ProcessMesage вставлял. Не по тайме he же дергать этот клик.... |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 22.02.2009
Сообщений: 875
|
![]()
Можно сделать так:
Разместите в секции private булевскую переменную: Код:
И в onPaint формы: Код:
Код:
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 08.01.2008
Сообщений: 233
|
![]() Цитата:
![]() Неее, ну подобных костылей я и сам могу напридумать полно. Вопрос не в том "как сделать", вопрос в том, кодга эта хрень сама селектиться и почему? ![]() Я недавно посал про еще один "глюк" при работе с TreeView, уже сам не помню, но там вроде было связано с тем, что когда кликаешь правой кнопкой мыши, то TreeView.Item[s].Selected false, но TreeView.Selected.AbsoluteIndex выдет тот самый индекс... Походу глючный какой-то компонент.... ![]() |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 22.02.2009
Сообщений: 875
|
![]()
Наверно при передаче фокуса на treeview и происходит выделение...
Просто, может быть, когда нажимаешь на кнопку, то фокус передается, но при создании формы и при показе его нельзя передать... Если что, onEnter соответствует передаче фокуса treeview. Попробуйте, сейчас сам не за delphi сижу... P.S. можно попробовать передать фокус при onShow treeview
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Последний раз редактировалось Neeter; 06.05.2009 в 23:04. |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 08.01.2008
Сообщений: 233
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 22.02.2009
Сообщений: 875
|
![]()
Ну тогда, мне кажется, только самостоятельное выделение может помочь...
У меня SetFocus работает Код:
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Последний раз редактировалось Neeter; 06.05.2009 в 23:36. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 08.01.2008
Сообщений: 233
|
![]()
коряво это как-то.... самый главный прикол. В onShow TreeView1.Selected=nil. А если по таймеру запустить процедуру, то оно уже <>nil. Как она, млин, становится <>nil? С фокусами игрался, тыкая ими по форме, апликейшн мессадж пробовал во всех вариантах. Пробовал рбаотать с другими компонентами....
Мне уже просто интересно ,как это херня работает.... |
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 08.01.2008
Сообщений: 233
|
![]() Цитата:
.... Последний раз редактировалось Sergey2; 07.05.2009 в 00:27. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
TTreeView | Sergey2 | Компоненты Delphi | 1 | 16.09.2009 15:22 |
Ноды в TTreeView | PlayerDark | Компоненты Delphi | 10 | 03.05.2009 19:51 |
Заполнить TTreeView | Leonis | Компоненты Delphi | 6 | 27.03.2008 13:02 |
TTreeView | alll_23 | Общие вопросы Delphi | 2 | 23.10.2007 12:36 |