Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.027 c
3-1083063540
GIL
2004-04-27 14:59
2004.05.23
Сервер в IBDataBase


14-1083347554
gn
2004-04-30 21:52
2004.05.23
Microsoft будет давать всплывающие уроки по безопасности


4-1080637039
Hkr
2004-03-30 12:57
2004.05.23
Сведения по хендлу


14-1083323999
AlexKniga
2004-04-30 15:19
2004.05.23
Про катушку ниток.


1-1082922779
Shopot
2004-04-25 23:52
2004.05.23
Form1.VertScrollBar.




   Наверх