Конференция "KOL" » процедура для TreeView [Delphi, Windows]
 
  • RusSun © (17.12.09 18:11) [0]
    Добрый день, уважаемые мастера.

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


    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:?
    Спасибо.
  • Дмитрий К © (17.12.09 21:05) [1]
    OnTVSelChanging
    TVItemData
  • RusSun © (18.12.09 15:30) [2]
    Дмитрий К Спасибо за быстрый ответ.
    реализовал так:

    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, то есть сразу появляется.
    А не должно.:(
  • RusSun © (19.12.09 23:12) [3]
    Доброе время суток.

    Вопрос  по процедуре.
    Почему при вызове в другом окне
    процедура не  выводит картинки в ListView???
  • RusSun © (20.12.09 01:05) [4]
    Всё, поправил;)
 
Конференция "KOL" » процедура для TreeView [Delphi, Windows]
Есть новые Нет новых   [134431   +13][b:0][p:0.002]