![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Закрасить строку в ListView [D7, IB6.x]
Finjy © (2008-09-01 09:24:00)Имеется функция, которая содержит запрос и выполняет заполнение 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, то всю строку окрасить в красный цвет.
Прчем желательно все это сделать в этой функции.
(2009-03-20 15:15:00) [1]Удалено модератором
(2009-03-20 15:14:00) [2]Удалено модератором
Johnmen (2008-09-01 09:52:00) [3]См. OnDrawItem
PS
0. Что значит "все это сделать в этой функции"?
1. Зачем if result then, если result не меняется?
2. К чему здесь inherited?
3. Какой смысл в CommitRetaining/RollbackRetaining в данном контексте?
И последнее - чем не устроили DataAware компоненты типа DBGrid'ов?