mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-08 05:17:24 +01:00
LCL, made dbgrid's DrawIndicator a virtual method so it an be overriden
git-svn-id: trunk@24523 -
This commit is contained in:
parent
134f1531f1
commit
178c26c4d6
117
lcl/dbgrids.pas
117
lcl/dbgrids.pas
@ -382,6 +382,7 @@ type
|
||||
procedure DrawCheckboxBitmaps(aCol: Integer; aRect: TRect; F: TField);
|
||||
procedure DrawFixedText(aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState);
|
||||
procedure DrawColumnText(aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState); override;
|
||||
procedure DrawIndicator(ACanvas: TCanvas; R: TRect; Opt: TDataSetState; MultiSel: boolean); virtual;
|
||||
procedure EditingColumn(aCol: Integer; Ok: boolean);
|
||||
procedure EditorCancelEditing;
|
||||
procedure EditorDoGetValue; override;
|
||||
@ -577,64 +578,6 @@ begin
|
||||
RegisterComponents('Data Controls',[TDBGrid]);
|
||||
end;
|
||||
|
||||
procedure DrawIndicator(Canvas: TCanvas; R: TRect; Opt: TDataSetState;
|
||||
MultiSel: boolean);
|
||||
var
|
||||
dx,dy, x, y: Integer;
|
||||
procedure CenterY;
|
||||
begin
|
||||
y := R.Top + (R.Bottom-R.Top) div 2;
|
||||
end;
|
||||
procedure CenterX;
|
||||
begin
|
||||
X := R.Left + (R.Right-R.Left) div 2;
|
||||
end;
|
||||
procedure DrawEdit(clr: Tcolor);
|
||||
begin
|
||||
Canvas.Pen.Color := clr;
|
||||
CenterY;
|
||||
CenterX;
|
||||
Canvas.MoveTo(X-2, Y-Dy);
|
||||
Canvas.LineTo(X+3, Y-Dy);
|
||||
Canvas.MoveTo(X, Y-Dy);
|
||||
Canvas.LineTo(X, Y+Dy);
|
||||
Canvas.MoveTo(X-2, Y+Dy);
|
||||
Canvas.LineTo(X+3, Y+Dy);
|
||||
end;
|
||||
begin
|
||||
dx := 6;
|
||||
dy := 6;
|
||||
case Opt of
|
||||
dsBrowse:
|
||||
begin //
|
||||
Canvas.Brush.Color:=clBlack;
|
||||
Canvas.Pen.Color:=clBlack;
|
||||
CenterY;
|
||||
x:= R.Left+3;
|
||||
if MultiSel then begin
|
||||
Canvas.Polyline([point(x,y-dy), point(x+dx,y),point(x,y+dy), point(x,y+dy-1)]);
|
||||
Canvas.Polyline([point(x,y-dy+1),point(x+dx-1,y),point(x, y+dy-1), point(x,y+dy-2)]);
|
||||
CenterX;
|
||||
Dec(X,3);
|
||||
Canvas.Ellipse(Rect(X-2,Y-2,X+2,Y+2));
|
||||
end else
|
||||
Canvas.Polygon([point(x,y-dy),point(x+dx,y),point(x, y+dy),point(x,y-dy)]);
|
||||
end;
|
||||
dsEdit:
|
||||
DrawEdit(clBlack);
|
||||
dsInsert:
|
||||
DrawEdit(clGreen);
|
||||
else
|
||||
if MultiSel then begin
|
||||
Canvas.Brush.Color:=clBlack;
|
||||
Canvas.Pen.Color:=clBlack;
|
||||
CenterX;
|
||||
CenterY;
|
||||
Canvas.Ellipse(Rect(X-3,Y-3,X+3,Y+3));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function CalcCanvasCharWidth(Canvas:TCanvas): integer;
|
||||
begin
|
||||
if Canvas.HandleAllocated then
|
||||
@ -2689,6 +2632,64 @@ begin
|
||||
end;//End if ((gdFixed in aState) and (aCol >= FirstGridColumn))
|
||||
end;
|
||||
|
||||
procedure TCustomDBGrid.DrawIndicator(ACanvas: TCanvas; R: TRect;
|
||||
Opt: TDataSetState; MultiSel: boolean);
|
||||
var
|
||||
dx,dy, x, y: Integer;
|
||||
procedure CenterY;
|
||||
begin
|
||||
y := R.Top + (R.Bottom-R.Top) div 2;
|
||||
end;
|
||||
procedure CenterX;
|
||||
begin
|
||||
X := R.Left + (R.Right-R.Left) div 2;
|
||||
end;
|
||||
procedure DrawEdit(clr: Tcolor);
|
||||
begin
|
||||
ACanvas.Pen.Color := clr;
|
||||
CenterY;
|
||||
CenterX;
|
||||
ACanvas.MoveTo(X-2, Y-Dy);
|
||||
ACanvas.LineTo(X+3, Y-Dy);
|
||||
ACanvas.MoveTo(X, Y-Dy);
|
||||
ACanvas.LineTo(X, Y+Dy);
|
||||
ACanvas.MoveTo(X-2, Y+Dy);
|
||||
ACanvas.LineTo(X+3, Y+Dy);
|
||||
end;
|
||||
begin
|
||||
dx := 6;
|
||||
dy := 6;
|
||||
case Opt of
|
||||
dsBrowse:
|
||||
begin //
|
||||
ACanvas.Brush.Color:=clBlack;
|
||||
ACanvas.Pen.Color:=clBlack;
|
||||
CenterY;
|
||||
x:= R.Left+3;
|
||||
if MultiSel then begin
|
||||
ACanvas.Polyline([point(x,y-dy), point(x+dx,y),point(x,y+dy), point(x,y+dy-1)]);
|
||||
ACanvas.Polyline([point(x,y-dy+1),point(x+dx-1,y),point(x, y+dy-1), point(x,y+dy-2)]);
|
||||
CenterX;
|
||||
Dec(X,3);
|
||||
ACanvas.Ellipse(Rect(X-2,Y-2,X+2,Y+2));
|
||||
end else
|
||||
ACanvas.Polygon([point(x,y-dy),point(x+dx,y),point(x, y+dy),point(x,y-dy)]);
|
||||
end;
|
||||
dsEdit:
|
||||
DrawEdit(clBlack);
|
||||
dsInsert:
|
||||
DrawEdit(clGreen);
|
||||
else
|
||||
if MultiSel then begin
|
||||
ACanvas.Brush.Color:=clBlack;
|
||||
ACanvas.Pen.Color:=clBlack;
|
||||
CenterX;
|
||||
CenterY;
|
||||
ACanvas.Ellipse(Rect(X-3,Y-3,X+3,Y+3));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TCustomDBGrid.EditorCanAcceptKey(const ch: TUTF8Char): boolean;
|
||||
var
|
||||
aField: TField;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user