Конференция "Базы" » Закрасить строку в ListView [D7, IB6.x]
 
  • Finjy (01.09.08 09:24) [0]
    Имеется функция, которая содержит запрос и выполняет заполнение ListView. Вот код
    function TFrame1.Sel: Boolean;
    begin
        Result := True;
        ListView1.Items.Clear;
        with DataModule1.IBQShared do
        begin
              SQL.Clear;
              SQL.Add('select name,note from Table1' +
                      'left join Table2 on Table2.name_id = Table1.note_id);
                      Open;
                      while not Eof do
                      begin
                           with ListView1.Items.Add do
                           begin
                                      Caption :=FieldByName('
    name').AsString;
                                      with SubItems do
                                      begin
                                           Add(FieldByName('
    note').AsString);
                                      end;
                             end;

                           Next;
                      end;
                      Close;
        end;
             if result then DataModule1.IBT.CommitRetaining
             else DataModule1.IBT.RollbackRetaining;
             inherited;
    end;


    В итоге получается следующая таблица
    Name    Note
    n1       2  
    n2    
    n3       4
    n4
    n5       3
    Нужно сделать проверку: если для элемента столбца Name  не существует  значения в столбце Note, то всю строку окрасить в красный цвет.
    Прчем желательно все это сделать в этой функции.
  • Johnmen © (01.09.08 09:52) [1]
    См. OnDrawItem

    PS
    0. Что значит "все это сделать в этой функции"?
    1. Зачем if result then, если result не меняется?
    2. К чему здесь inherited?
    3. Какой смысл в CommitRetaining/RollbackRetaining в данном контексте?
    И последнее - чем не устроили DataAware компоненты типа DBGrid'ов?
 
Конференция "Базы" » Закрасить строку в ListView [D7, IB6.x]
Есть новые Нет новых   [134477   +43][b:0][p:0.001]