![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Цвет ячейки StringGrid по условию [D7, XP]
Laguna © (2011-11-25 12:34:00)Необходимо по определенным условиям присвоить цвет ячейке. Делаю так :
InfoStringGrid.Cells[X, Y] := S;
if S <> 'бла' then
InfoStringGrid.Objects[X, Y] := Pointer(1);
...
procedure TMainFrm.InfoStringGridDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
A_Col: longint absolute ACol;
A_Row: longint absolute ARow;
Buf: array[byte] of char;
begin
with (Sender as TStringGrid), Canvas do
begin
StrPCopy(Buf, Cells[A_Col, A_Row]);
if Objects[ARow, ACol] <> nil then
Brush.Color := clAqua
else
Brush.Color := clBtnFace;
FillRect(Rect);
DrawText(Handle, Buf, -1, Rect, DT_CENTER or DT_SINGLELINE or DT_VCENTER or DT_NOCLIP);
end;
end;
Не работает так как нужно, точнее один раз ячейка самая верхняя левая зарисовывается и все на этом.
Германн (2011-11-25 13:28:00) [41]
> Код как раз таки работает прекрасно
А понимания все равно нет.
Anatoly Podgoretsky (2011-11-25 13:27:00) [42]Работает говоришь.
Laguna (2011-11-25 13:23:00) [43]
> Откуда не важно, а вот понимания о Дельфи как не было, так
> и нет
Код как раз таки работает прекрасно. Проблема с присвоением объету данных, которая впринципе уже решена.
И. Павел (2011-11-25 13:14:00) [44]> [4] И. Павел © (25.11.11 13:14)
Хотя нет. Но в любом случае нужно использовать Canvas стринг грида, а вы используете канвас формы.
И. Павел (2011-11-25 13:14:00) [45]> [0] Laguna © (25.11.11 12:34)
with (Sender as TStringGrid), Canvas do
Скорее всего запятую на точку нужно поменять :)
RWolf (2011-11-25 13:12:00) [46]неправильный порядок индексов в Objects[].
Anatoly Podgoretsky (2011-11-25 13:03:00) [47]Откуда не важно, а вот понимания о Дельфи как не было, так и нет
Германн (2011-11-25 13:01:00) [48]Откуда содран сей код?