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

Вниз

Изменение цвета ячеек grid-а   Найти похожие ветки 

 
Юлия   (2002-10-26 17:51) [0]

Уважаемые мастера, помогите пожалуйста сделать такую вещь: на экране – таблица, состоящая из кнопок, как в сапере. При нажатии на любую ячейку меняется ее цвет. Совсем необязательно, чтобы были кнопки, главное, чтобы на щелчки мыши реагировали. Как такое сделать? Какой метод использовать?


 
down   (2002-10-26 18:33) [1]

обрабатывать события OnMouseDown, OnDrawCell


 
Юлия   (2002-10-26 19:48) [2]

Как поменять цвет ячейки grid-а? (string/draw/RXDraw)?
Какая команда?


 
777 ©   (2002-10-26 20:26) [3]


var P:Tpoint;

.......

procedure TForm1.FormCreate(Sender: TObject);
begin
P.X:=-1;
P.Y:=-1;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (ACol=P.X)and(ARow=P.Y)then
begin
StringGrid1.Canvas.Brush.Color:=clred;
StringGrid1.Canvas.FillRect(rect);
end;
end;

procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
P.X:=StringGrid1.Col;
P.Y:=StringGrid1.Row;
StringGrid1.Refresh;
end;


 
Юлия   (2002-10-26 20:50) [4]

Спасибо, А как узнать цвет ячейки, по которой "кликнули"?


 
777 ©   (2002-10-26 21:00) [5]

Если я правильно понял, уже нажатые кнопки так закрашенными и остаются.
Можно объявить глобальную переменную в указанном коде,
например CurrColor:TColor, и присваивать ей значение в обработчике
OnMouseDown
...
CurrColor:=StringGrid1.Canvas.Pixels[x,y];
...
потом при StringGrid1DrawCell
...
if (ACol=P.X)and(ARow=P.Y) and(CurrColor<>clRed)then
...




 
TTCustomDelphiMaster ©   (2002-10-26 21:01) [6]


> А как узнать цвет ячейки, по которой "кликнули"?


Хранить его где нибуть. Можно и в самом TStringGrid:

StringGrid1.Objects[i,j] := Pointer(Color);

Color := integer(StringGrid1.Objects[i,j]))



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
3-21403
ppcat
2002-10-18 09:56
2002.11.07
MS SQL поле с флагом IDENTITY


14-21762
Сатир
2002-10-18 17:02
2002.11.07
хе-хе, конхвуз


14-21740
dimonf
2002-10-17 17:26
2002.11.07
Народ, подскажите как вытащить данные из базы данных.


1-21532
nick_sniper
2002-10-29 08:13
2002.11.07
Как проверить правильность записанной дискеты?


1-21643
Strumpf
2002-10-27 09:10
2002.11.07
Как изменить расстояние между узлами TTreeView?