Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

процедура для TreeView [Delphi, Windows]


RusSun ©   (2009-12-17 18:11:00) 

Добрый день, уважаемые мастера.

Имеется структура,


type
 PQuestion=^TQuestion;
 TQuestion=record
  Name: String[255];
  ResultQCount:Integer;
  ResultCount:Integer;
  ResiltText: array[0..10] of String[255];
  ResiltValue: array[0..10] of boolean;
 end;

Заполняю ... и загружаю в


with QuestionTreeView^ do begin
 TVInsert( 0, 0,NewQuest.Name);
 Font.FontStyle:=[fsunderline];
                          end;


У меня в начале была версия 1.91 kol'а потом. Потом установил 2.88.
В первой Node'ы есть. Во второй нет.
Вопрос как реализовать следующую процедуру для 2.88

Процедура при событии Change должна подгружать
в ListView  (в моём ResultView) с QuestionTreeView
соответствующие data.

Вариант на VCL:
QuestionTreeViewChange(Sender: TObject;
 Node: TTreeNode);
var
i:Integer;
begin
ResultView.Items.Clear;
if Node=nil then exit;

for i:=0 to PQuestion(node.Data).ResultCount-1 do
 with ResultView.Items.Add do
  begin
   Caption:=PQuestion(node.Data).ResiltText[i];
   if PQuestion(node.Data).ResiltValue[i]=true then
    begin
     SubItems.Add('Да');
     ImageIndex:=2;
    end
   else
    begin
     SubItems.Add('Нет');
     ImageIndex:=1;
    end;
  end;
end;

Вариант на Kol:?
Спасибо.


RusSun   (2009-12-20 01:05:00) [1]

Всё, поправил;)


RusSun   (2009-12-19 23:12:00) [2]

Доброе время суток.

Вопрос  по процедуре.
Почему при вызове в другом окне
процедура не  выводит картинки в ListView???


RusSun   (2009-12-18 15:30:00) [3]

Дмитрий К Спасибо за быстрый ответ.
реализовал так:

procedure QuestionTreeViewSelChange(Sender:pcontrol);
var i:integer;
begin
ResultView.Clear;
//провека на пустые поля
      index:=QuestionTreeView.TVSelected;//showmessage(int2str(index));
      for i:=0 to PQuestion(QuestionTreeView.TVItemData[index]).ResultCount-1 do begin
if  PQuestion(QuestionTreeView.TVItemData[index]).ResiltValue[i]=true then begin
ResultView.LVItemAdd('');
ResultView.LVItems[i,1]:='Да';
ResultView.LVSetItem(i,0,PQuestion(QuestionTreeView.TVItemData[index]).ResiltTex t[i],2, [], 0, 0, 0);
           end else begin
           ResultView.LVItemAdd('');
ResultView.LVItems[i,1]:='Нет';
ResultView.LVSetItem(i,0,PQuestion(QuestionTreeView.TVItemData[index]).ResiltTex t[i],1, [], 0, 0, 0);
                     end;
           end;

end;


Вот только меня смущает что событие SelChange
происходит раньше чем кликнуть на TVItem, то есть сразу появляется.
А не должно.:(


Дмитрий К   (2009-12-17 21:05:00) [4]

OnTVSelChanging
TVItemData


Наверх

Титульная страница Поиск, карта сайта Написать письмо