![]() |
![]() ![]() ![]() ![]() |
|
Изменить цвет шрифта выделенной ячейки сеткиDelphi , Графика и Игры , ШрифтыИзменить цвет шрифта выделенной ячейки сетки
Оформил: DeeCo
{
Question:
How do I change the cell font color in a TDBgrid
I only want to change the individual cell that is clicked on!
(while in the edit mode)
Answer:
Since it is the InplaceEditor control that is displayed when the cell
is in edit mode you have to change this controls Color. Getting at it
is a bit ugly since the InplaceEditor property of TCustomGrid
(which TDBGrid inherits) is protected and the Color property of
TCustomMaskedit (from which TInplaceEditor inherits) is also protected.
The following works for a TStrinGrid. I used the grids OnGetEditMask event here
to have a place where the inplace editor is guaranteed to exist.
For a TDBGrid you could probably use OnColEnter.
Frage:
Wie дndere ich die Farbe der aktuellen Zelle eines Stringgrids oder TDBGrids ?
Antwort:
Der InplaceEditor wird angezeit, wenn eine Zelle im Editiermodus ist.
Es muss also dessen Farbe geдndert werden. Dies kann ьber eine "Cracker"-Klasse
erreicht werden.
}
type
TForm1 = class(TForm)
{...}
procedure StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer;
var Value: string);
procedure DBGrid1ColEnter(Sender: TObject);
end;
{...}
uses
Mask;
type
TGridCracker = class(TCustomGrid);
TEditorCracker = class(TCustomMaskEdit);
procedure TForm1.StringGrid1GetEditMask(Sender: TObject; ACol,
ARow: Integer; var Value: String);
var
editor: TEditorCracker;
begin
editor := TEditorCracker(TGridCracker(Sender).InplaceEditor);
if Assigned(editor) then
editor.Color := clYellow;
end;
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
var
editor: TEditorCracker;
begin
editor := TGridCracker(TGridCracker(Sender).InplaceEditor);
if Assigned(editor) then
editor.Color := clGreen;
end;
Переведенный текст: Код, предоставленный в этом разделе, изменяет цвет шрифта ячейки в Процедура Вот улучшенный код с комментариями: Обратите внимание, что класс Более элегантное решение - создать custom-класс inplace-редактора, который наследуется от Вы можете использовать этот custom-класс inplace-редактора в свойстве inplace-редактора сетки: В этом случае вам не нужно создавать отдельный класс для inplace-редактора, и вы можете изменить его поведение легко. В статье описывается, как изменить цвет шрифта выделенной ячейки сетки TDBgrid или TStringGrid в режиме редактирования. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||