Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизНужно подобие StringGrid с возможностью задавать цвет... Найти похожие ветки
← →
Artur (2004-05-09 20:42) [0]Нужно подобие StringGrid с возможностью задавать цвет отдельным ячейкам.
← →
Anatoly Podgoretsky © (2004-05-09 20:51) [1]Ты хочешь написать или достать?
← →
pasha_golub © (2004-05-09 20:53) [2]TStringGrid.OnDrawCell+F1
а если вспомнить про название конференции, то
type
TMySuperGrid = class(TStringGrid)
...
← →
Artur (2004-05-10 09:24) [3]Мне нужно достать
← →
SergP © (2004-05-10 09:45) [4]>Artur (10.05.04 09:24)
>Мне нужно достать
Зачем? неужели 5-6 строчек кода в OnDrawCell труднее написать чем найти, скачать и поставить новый компонент?
← →
Artur (2004-05-10 11:10) [5]С огромным удовольствием напишу, вы только подскажите как...
← →
TUser © (2004-05-10 11:40) [6]Ну вот у меня завалялось
unit uMyStringGrid;
interface
uses
SysUtils, Classes, Controls, Grids, Graphics, types, windows;
type
TOnCanFill = procedure (Sender:TObject; ACol, ARow:longint; var Fill:boolean) of object;
TMyStringGrid = class(TStringGrid)
private
FFillColor:TColor;
FOnCanFill:TOnCanFill;
protected
procedure DrawCell(ACol, ARow: Longint; ARect: TRect;
AState: TGridDrawState); override;
published
property FillColor:TColor read FFillColor write FFillColor;
property OnCanFill:TOnCanFill read FOnCanFill write FOnCanFill;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents("Aksianov", [TMyStringGrid]);
end;
procedure TMyStringGrid.DrawCell(ACol, ARow: Longint; ARect: TRect;
AState: TGridDrawState);
var CanFill:boolean;
begin
CanFill:=false;
if assigned (FOnCanFill) then
FOnCanFill(Self,ACol,ARow,CanFill);
if CanFill then
with Self.Canvas do
Brush.Color:=FFillColor;
inherited;
if CanFill then
Brush.Color:=clWhite;
end;
end.
← →
Anatoly Podgoretsky © (2004-05-10 11:55) [7]Artur (10.05.04 11:10) [5]
А поиск по слову OnDrawCell хотя бы на этом сайте ты сделал?
На Королевство Дельфи ходил.
Этих двух сайтов достаточно.
← →
Artur (2004-05-10 12:48) [8]TUser - спасибо, попробую разобраться
Anatoly Podgoretsky - хорошая идея :-)
← →
Rouse_ © (2004-05-10 14:54) [9]> TUser © (10.05.04 11:40)
Ну, тогда уж:procedure TMyStringGrid.DrawCell(ACol, ARow: Longint; ARect: TRect;
AState: TGridDrawState);
var CanFill:boolean;
FCurrentColor: TColor;
begin
CanFill:=false;
FCurrentColor := Brush.Color;
if assigned (FOnCanFill) then
FOnCanFill(Self,ACol,ARow,CanFill);
if CanFill then
with Self.Canvas do
Brush.Color:=FFillColor;
inherited;
if CanFill then
Brush.Color:=FCurrentColor;
end;
А то некрасиво получится если цвет по умолчанию не clWhite в цветовой схеме
← →
pasha_golub © (2004-05-10 15:32) [10]Rouse_ © (10.05.04 14:54) [9]
Верно подметил. На этом часто люди валятся.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c