|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите с DrawGrid
Скажите пожалуйста как программно можно закрасить ячейку DrawGrid в чёрный цвет и нажатием на неё мышкой????
|
#2
|
|||
|
|||
Проверяем на нажатие:
Код:
procedure TForm1.StringGrid2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: LongInt); begin try if (X >= StringGrid1.Selection.Left) and (X <= StringGrid1.Selection.Right) and (Y >= StringGrid1.Selection.Top) and (Y <= StringGrid1.Selection.Bottom) then //можно записать в эту ячейку символ, ну или по желанию. Ты сам придумаешь че туда записать ;) except end; end; Допустим нажали... Разрисовываем ячейку в которой, например находятся буквы "ЗЮ" Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if (ACol > 'ЗЮ') and (ARow > 'ЗЮ') then begin //в этой строке мог ошибиться! StringGrid1.Canvas.Brush.color := clblack; //Закрашиваем бэкграунд ячейки StringGrid1.Canvas.FillRect(Rect); //Если надо, то рисуем что-то на ней, например текс, который находится в ячейке. StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]); end; end; Только переделай на DrawGrid Последний раз редактировалось ~ SaM ~, 09.01.2008 в 22:35. |
#3
|
|||
|
|||
Проверяем на нажатие:
Код:
procedure TForm1.StringGrid2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: LongInt); begin try if (X >= StringGrid1.Selection.Left) and (X <= StringGrid1.Selection.Right) and (Y >= StringGrid1.Selection.Top) and (Y <= StringGrid1.Selection.Bottom) then //можно записать в эту ячейку символ, ну или по желанию. Ты сам придумаешь че туда записать ;) except end; end; Допустим нажали... Разрисовываем ячейку в которой, например находятся буквы "ЗЮ" Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if (ACol > 'ЗЮ') and (ARow > 'ЗЮ') then begin //в этой строке мог ошибиться! StringGrid1.Canvas.Brush.color := clblack; //Закрашиваем бэкграунд ячейки StringGrid1.Canvas.FillRect(Rect); //Если надо, то рисуем что-то на ней, например текс, который находится в ячейке. StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]); end; end; Только переделай на DrawGrid Последний раз редактировалось ~ SaM ~, 09.01.2008 в 22:35. |