Форум: "Начинающим";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];
ВнизПоказ (0,0) угла TreeView Найти похожие ветки
← →
Lakshmy © (2007-05-15 14:33) [0]Здравствуйте!
Подскажите пожалуйста, я никак не соображу... На форме есть компонент TreeView, я его заполняю программно, в результате его заполнения окно с TreeView прокручивается вниз, а как сделать чтобы был показан самый верх окна TreeView? Я не нашла ни одного метода для этого... Может плохо искала?
← →
Elen © (2007-05-15 15:01) [1]Переход на верхний итем :
TreeView1.TopItem:=TreeView1.Items.GetFirstNode
← →
Lakshmy © (2007-05-15 18:01) [2]А! А то в книжке как-то непонятно написано... Спасибо!
← →
Lakshmy © (2007-05-15 18:35) [3]А еще вопрос - какое событие использовать, чтобы узнать какой итем выделен?
← →
{RASkov} © (2007-05-15 18:38) [4]> [3] Lakshmy © (15.05.07 18:35)
Любое.... ты конкретнее спрашивай.....
← →
Lakshmy © (2007-05-15 18:46) [5]Ну вот у меня есть TreeView типа как обозреватель кода в Дельфи, и есть Memo, там текст, щелкаешь по какому-то итему в TreeView, и курсор в тексте перемещается к этому слову.
← →
trubin © (2007-05-15 19:01) [6]TTreeView.OnChange
← →
Lakshmy © (2007-05-15 19:05) [7]Отлично! Спасибо!
← →
Lakshmy © (2007-05-15 19:21) [8]Так как я впервые в жизни столкнулась с TreeView, я вообще нифига не понимаю... Вот пишу для теста:
procedure TMainForm.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if Node.Parent=nil then ShowMessage("privet!");
end;
Он правильно реагирует, но когда я нажимаю на кнопку закрытия главного окна, это событие срабатывает еще несколько раз! Причем если выбираешь последний, повторений не происходит, предпоследний - 1 раз, предпредпоследний - 2 раза и т.д.... Откуда это и почему?
← →
Lakshmy © (2007-05-15 19:25) [9]Это почему-то возникает из-за TreeView1.Items.Clear при выходе...
← →
{RASkov} © (2007-05-15 19:30) [10]> [9] Lakshmy © (15.05.07 19:25)
А тебе извесно, что такое Parent? И что происходит при закрытии формы, в часности с TreeView....
← →
Lakshmy © (2007-05-15 19:31) [11]Ну родитель, то есть если он nil, то значит это элемент в корне. А вот что происходит при закрытии формы, я не знаю. Расскажи пожалуйста
← →
Lakshmy © (2007-05-15 19:43) [12]Это происходит только если я ставлю TreeView1.Items.Clear при закрытии.
← →
{RASkov} © (2007-05-15 19:57) [13]> А вот что происходит при закрытии формы, я не знаю. Расскажи пожалуйста
Ты лучше расскажи, что тебе нужно... может тебе нужно Node.Level ?
← →
Lakshmy © (2007-05-15 20:10) [14]Да вобщем нужно тоже самое, что и окошко "Обзор кода" в Дельфи. В Memo у меня программный код, в TreeView я загоняю названия классов и их свойства и методы. Если щелкнуть например на какой-нибудь метод какого-нибудь класса в TreeView, то в Memo курсор должен перескакивать на описание этого метода. Все как в Дельфи. А когда я закрываю документ, с которым работаю, но не закрываю главное окно, у меня Memo очищается и TreeView тоже должно очищаться, но из-за TreeView1.Items.Clear несколько раз срабатывает TreeView1Change. И я не пойму почему. Смотрела описание метода Clear, ничего подозрительного там не увидела...
← →
{RASkov} © (2007-05-15 20:24) [15]> [14] Lakshmy © (15.05.07 20:10)
перед очисткой отключи обработчик:
TreeView.OnChange:=nil;
TreeView.Items.Clear;
TreeView.OnChange:=TreeViewChange;
А вообще... что то ты не так делаешь.... покажи свой TreeView1Change....
← →
Lakshmy © (2007-05-15 20:51) [16]Эээ... А каким образом показать? Сделала как ты сказал, заработало. Но это же криво, так ведь не должно быть...
← →
{RASkov} © (2007-05-15 22:04) [17]> [16] Lakshmy © (15.05.07 20:51)
> Эээ... А каким образом показать?
Ну то что в [8] это ж не "настоящий".... правда? Вот и хотел посмотреть на "настоящий" OnChange.
> Но это же криво, так ведь не должно быть...
Ну почему..... иногда это облегчает при написании кода, все зависит, от того, правильно ли ты делаешь.....
← →
Lakshmy © (2007-05-15 22:11) [18]
> Ну то что в [8] это ж не "настоящий".... правда?
Как это не настоящий? А какой настоящий? Я не понимаю...
> Ну почему..... иногда это облегчает при написании кода,
> все зависит, от того, правильно ли ты делаешь.....
Ну а почему неправильно-то? Все вроде верно, неужели ни у кого такого не бывало?
← →
{RASkov} © (2007-05-15 22:15) [19]> [18] Lakshmy © (15.05.07 22:11)
> Как это не настоящий?
Не смеши..... неужели в твоей программе код OnChange TreeView это и есть весь в [8] :)
> Ну а почему неправильно-то?
А кто сказал, что не правильно? Я вот и не знаю, что у тебя там, да как......
← →
{RASkov} © (2007-05-15 22:16) [20]> Не смеши..... неужели в твоей программе код OnChange TreeView
> это и есть весь в [8] :)
И если это так, то смело делай как в [15].....
← →
{RASkov} © (2007-05-15 22:18) [21]> [18] Lakshmy © (15.05.07 22:11)
> Все вроде верно, неужели ни у кого такого не бывало?
Ну событие генериться OnChange при Clear.... что не понятного-то?
← →
Lakshmy © (2007-05-15 22:30) [22]Не, ну пока только этот код, я же для теста это сделала, просто никогда не работала с TreeView, вот и решила опробовать, а дальше там много чего будет.
> Ну событие генериться OnChange при Clear.... что не понятного-
> то?
Ну понятно, а почему? Как это нормально обойти-то? Как в [15] будет достаточно? Или все же это не совсем корректно?
← →
{RASkov} © (2007-05-15 22:47) [23]> Как в [15] будет достаточно?
Я думаю - да, но смотря, что будет в OnChange... просто учитывай, этот код(OnChange) не выполнится при отключенном обработчике и все.
← →
Lakshmy © (2007-05-15 23:43) [24]Честно говоря впервые вижу, чтобы вот так проблема решалась. Но все равно спасибо.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.056 c