Текущий архив: 2003.09.11;
Скачать: CL | DM;
Вниз
Прослема с treeview Найти похожие ветки
← →
Юлия (2003-08-30 06:57) [0]Используется treeview c флагом TVS_CHECKBOXES. Некоторые узлы должны быть программно отмечены (checked). Используется процедура:
Procedure TVSetCheck(Node: TTreeNode);
Var Item: TTVItem;
Begin
With Item Do
Begin
hItem:=Node.ItemId;
mask:=TVIF_STATE;
State:=$2000;
Form1.TreeView1.Perform(TVM_SETITEM,0,Integer(@Item));
End; {With}
End;
Если вызывать процедуру по нажатию какой-нибудь клавиши (например Button1), все работает:
procedure TFReklama.Button3Click(Sender: TObject);
;
begin
TVSetCheck(treeview1.Items.Item[0]);
end
Необходимо то же самое надо сделать при перемещении по таблице:
procedure TFReklama.Table1AfterScroll(DataSet: TDataSet);
begin
TVSetCheck(treeview1.Items.Item[0]);
end;
то рядом с требуемым узлом пропадает CheckBox вообще! Либо, в лучшем случае, ничего не происходит. В худшем, узлы сами по себе размножаются.
Почему так происходит? Какая связь между treeview u table? Как с этим бороться? Может, подскажете обходные пути?
← →
Zergling (2003-08-30 07:37) [1]>> Какая связь между treeview u table?
Вот именно, что свзи никакой нет. Тебе надо искать компонент типа TDBTreeView, что выбранный узел соответствовал выбранной записи в таблице. В инете такого рода компоненты есть, даже с исходниками.
← →
Юлия (2003-08-30 07:45) [2]У меня не жесткое соответствие между таблицей и treeview. Точнее, в treeview собираются данные из двух таблиц (в одной - папки, в другой - элементы).
Почему так не работает? Разве Должно иметь значение, откуда вызывается процедура?
← →
Zergling (2003-08-30 07:57) [3]Тогда меня смущает это:
procedure TFReklama.Table1AfterScroll(DataSet: TDataSet);
begin
TVSetCheck(treeview1.Items.Item[0]);
end;
По какому принципу ты определяещь в какой Item в treeview1 залепить CheckBox. Я подозреваю должно быть так: если некая запись соотвествует некоемуему условию, то отметь CheckBox определенный Item в treeview1. Я верно понял? Если нет, то разжуй подробнее.
← →
Song (2003-08-30 10:17) [4]Ну и Юлия... :)
http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=di splay;num=1061793430
Стыдитесь, молодой человек, я свой синтаксис отличу легко :)
← →
Юлия (2003-08-31 15:30) [5]Song:
А чего, собственно, я должна стыдиться? Я же не претендую на то, что это написала я? Именно вы помогли разобраться с компонентом. Или то, что вы подсказали sanik мог испольлзовать только он? Извиняюсь, если так.
Zergling:
Ну это к примеру! Не хотелось вставлять полный текст. Не работает даже в таком виде.
← →
Song (2003-08-31 15:35) [6]Юлия, извините, конечно, просто первая мысль была, что Юлия - это sanik. К тому же если пример взяли с Sources.ru, чего там же вопрос не стали задавать? А так как sanik - очень линевый молодой человек, которому исключительно нужны только примеры, своими руками у него ничего не получается сделать, то после того как я ему написал последний пример и сказал, что больше не буду, то что он пошёл в другую конференцию после этого - вполне закономерно, да ещё и под другим именем.
← →
Юлия (2003-08-31 15:37) [7]Ну раз я не sanik, то, может, подскажете? Почему такая ерунда творится?
← →
Song (2003-08-31 15:40) [8]А почему ты всегда чекаешь только первую ветвь (Items[0]) ?
← →
Юлия (2003-08-31 15:43) [9]Для проверки. Я же говорю, не охота было весь текст приводить
← →
Zergling (2003-09-01 06:36) [10]Юлия (31.08.03 15:43) [9]
Вот и приведи весь. А то как мы тебе поможем? Из твоего примера ни чего не ясно. И цель задачи разжуй, как написано выше.
Страницы: 1 вся ветка
Текущий архив: 2003.09.11;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.011 c