Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Раскраска StringGrid-а   Найти похожие ветки 

 
killer ©   (2004-05-06 14:13) [0]

В событии StringGrid-а DrawCell раскрашиваю StringGrid... а как мне узнать цвет другой какойнибудь уже прорисованной ячейки (над ней которая)?

StringGrid1.Canvas.Brush.Color:=...;
StringGrid.Canvas.FillRect(Rect);
SetBkMode(Handle, TRANSPARENT);
SetTextAlign(Handle, TA_LEFT);
StringGrid.Canvas.TextOut(Rect.Left+2, Rect.Top+2, StringGrid.Cells[ACol, ARow]);


 
pasha_golub ©   (2004-05-06 14:20) [1]

Так ты ж ее раскрашиваешь. Полосатость нужна?
Если да:

procedure XXX.DrawCell(...);
begin
with Sender as Tstringgrdid do
begin
if Odd(ARow) then
Brush.Canvas.Color := clRed
 else
 Brush.Canvas.Color := clGreen;
...
end;
end;


 
killer ©   (2004-05-06 14:28) [2]

у меня что-то вылетает на строке
Brush.Canvas.Color := clRed;


 
killer ©   (2004-05-06 14:28) [3]

пишет: [Error] Unit1.pas(40): Undeclared identifier: "Canvas"


 
Mim1 ©   (2004-05-06 14:30) [4]

а ты brush и canvas местами поменяй.


 
TUser ©   (2004-05-06 14:31) [5]

Canvas.Brush

Наверное лучше запоминать, какую ячейку ты покрасил в какой цвет.


 
killer ©   (2004-05-06 14:36) [6]

TUser   Мне кажется можно в массиве сохранять... :)))


 
TUser ©   (2004-05-06 14:39) [7]

Это и называется - запомнить.


 
pasha_golub ©   (2004-05-06 14:44) [8]

Ой, да ошибся. :-)


 
killer ©   (2004-05-06 15:07) [9]

pasha_golub а так посмотреть каким цветом ячейка над этой ячейкой нельзя... да?


 
pasha_golub ©   (2004-05-06 15:20) [10]

killer ©   (06.05.04 15:07) [9]
Тебе полосатость нужна? Или нет?

if Odd(ARow) then
showmessage("clRed")
else
showmessage("clGreen")


 
killer ©   (2004-05-06 17:09) [11]

pasha_golub  Да... но в зависимости от данных в таблице... т.е. 1 и 2 и 3 могут быть вподрят быть закрашеными...


 
[lamer]Barmaglot ©   (2004-05-06 17:17) [12]

так в чем проблема?

if uslovie = 1 then Brush.Canvas.Color := clRed;
if uslovie = 2 then Brush.Canvas.Color := clGreen;
и т.д....


 
killer ©   (2004-05-06 17:27) [13]

это-то понятно.. но мне надо какраз закрасить тем цветом который над яцейкой... одну строку... а потом в зависимости от данных следующую... :)))


 
begin...end ©   (2004-05-06 17:38) [14]

> killer

Ну если тебе нужен именно цвет определённой ячейки (хотя я так и не понял, зачем), то попробуй так (за правильность не ручаюсь):

function GetColor(ColNumber, RowNumber: Integer): TColor;
var
 Rect: TRect;
begin
 Rect := StringGridName.CellRect(ColNumber, RowNumber);
 Result := StringGridName.Canvas.Pixels[Rect.Left + 2, Rect.Top + 2];
end;



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
4-1081427159
igornov
2004-04-08 16:25
2004.05.23
Как на чужой форме запретить нажатие кнопок?


14-1083578926
тихий вовочка
2004-05-03 14:08
2004.05.23
Правильное написание для ОВИРа


1-1083326811
BFG9k
2004-04-30 16:06
2004.05.23
Сортировка TCollection


3-1082795753
Сказочник
2004-04-24 12:35
2004.05.23
Почему не работает count(*)


1-1083744538
dimon1979
2004-05-05 12:08
2004.05.23
Цветовая палитра