mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-11 08:40:41 +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 DrawCheckboxBitmaps(aCol: Integer; aRect: TRect; F: TField);
|
||||||
procedure DrawFixedText(aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState);
|
procedure DrawFixedText(aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState);
|
||||||
procedure DrawColumnText(aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState); override;
|
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 EditingColumn(aCol: Integer; Ok: boolean);
|
||||||
procedure EditorCancelEditing;
|
procedure EditorCancelEditing;
|
||||||
procedure EditorDoGetValue; override;
|
procedure EditorDoGetValue; override;
|
||||||
@ -577,64 +578,6 @@ begin
|
|||||||
RegisterComponents('Data Controls',[TDBGrid]);
|
RegisterComponents('Data Controls',[TDBGrid]);
|
||||||
end;
|
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;
|
function CalcCanvasCharWidth(Canvas:TCanvas): integer;
|
||||||
begin
|
begin
|
||||||
if Canvas.HandleAllocated then
|
if Canvas.HandleAllocated then
|
||||||
@ -2689,6 +2632,64 @@ begin
|
|||||||
end;//End if ((gdFixed in aState) and (aCol >= FirstGridColumn))
|
end;//End if ((gdFixed in aState) and (aCol >= FirstGridColumn))
|
||||||
end;
|
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;
|
function TCustomDBGrid.EditorCanAcceptKey(const ch: TUTF8Char): boolean;
|
||||||
var
|
var
|
||||||
aField: TField;
|
aField: TField;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user