Всем доброго времени суток.
Мне нужно покрасить ячейки в StringGriad под разные значения которые были заведомо занесены в БД я использую код такого вида:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | procedure TCalendar_cadr . AdvStringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer ; Rect: TRect; State: TGridDrawState);
var
txtWidth: Integer ;
begin
if AdvStringGrid1 . Cells[ACol,ARow] = DataModule1 . ADOQuery12 . FieldByName( 'Обозначение' ).AsString
then begin
AdvStringGrid1 . Canvas . Brush . Color := DataModule1 . ADOQuery12 . FieldByName( 'Цвет' ).AsInteger;
AdvStringGrid1 . Canvas . FillRect (Rect);
AdvStringGrid1 . Canvas . TextRect (Rect, Rect . Left + 2 , Rect . Top + 2 , AdvStringGrid1 . Cells[ACol,ARow]);
with (Sender as TStringGrid) do
begin
txtWidth := Canvas . TextWidth(Cells[ACol, ARow]);
if ColWidths[ACol] < txtWidth then ColWidths[ACol] := txtWidth + 3 ;
end ;
end ;
end ;
|
Но этот код позволяет окрашивать только какое то одно значение, в тот момент когда мне нужно несколько разных.
И ещё вопрос.
Как в StringGrid сохранять значения ячеек чтобы открыл программу а там он уже был бы заполнен.
Заранее благодарен.