Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
6-33713
der
2003-07-08 16:39
2003.09.11
Отображение в браузере результата выполнения запроса.


3-33442
frost
2003-08-21 10:40
2003.09.11
TMemoField.Text и присвоение строки String


3-33453
Pavel
2003-08-21 12:50
2003.09.11
ado params


1-33669
Михаил. Т
2003-08-29 16:16
2003.09.11
TAction


4-33852
Th
2003-07-08 11:00
2003.09.11
Искусственный вызов Window Menu приложения





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский