Вниз
Скачать: 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.47 MB
Время: 0.024 c
11-1071471133
DSP
2003-12-15 09:52
2004.05.23
перемещение курсора в 1 позицию CheckBox


1-1083928124
Tomkat
2004-05-07 15:08
2004.05.23
Модульное приложение в Delphi


6-1080849403
csr
2004-04-01 23:56
2004.05.23
HTTP и FTP upload


7-1081868205
Paladin
2004-04-13 18:56
2004.05.23
Выключение компа


4-1080844579
Tack83
2004-04-01 22:36
2004.05.23
Как вывести Hint в произвольном месте экрана?




   Наверх