cxsplitter.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,764 行 · 第 1/5 页
PAS
1,764 行
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Left + 4, ARect.Top),
Point(ARect.Right + 1, ARect.Top));
{Light border}
if AClicked = False then
begin
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 1, ARect.Bottom - 4),
Point(ARect.Left + 1, ARect.Top + 3));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 2, ARect.Top + 2),
Point(ARect.Left + 2, ARect.Top + 4));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 2, ARect.Top + 2),
Point(ARect.Left + 4, ARect.Top + 2));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 4, ARect.Top + 1),
Point(ARect.Right, ARect.Top + 1));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 2, ARect.Bottom - 2),
Point(ARect.Left + 2, ARect.Bottom - 4));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 2, ARect.Bottom - 2),
Point(ARect.Left + 4, ARect.Bottom - 2));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 4, ARect.Bottom - 1),
Point(ARect.Left + 5, ARect.Bottom - 1));
end
else
begin
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Right - 1, ARect.Bottom - 1),
Point(ARect.Right - 1, ARect.Top + 1));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 2, ARect.Bottom - 2),
Point(ARect.Left + 4, ARect.Bottom - 2));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 4, ARect.Bottom - 1),
Point(ARect.Left + 7, ARect.Bottom - 1));
end;
end;
cxsdRightToLeft:
begin
{Shadow border}
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right, ARect.Bottom - 4),
Point(ARect.Right, ARect.Top + 3));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Left, ARect.Bottom),
Point(ARect.Left, ARect.Top));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right - 1, ARect.Bottom - 2),
Point(ARect.Right - 1, ARect.Bottom - 4));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right - 1, ARect.Top + 2),
Point(ARect.Right - 1, ARect.Top + 4));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right - 2, ARect.Bottom - 1),
Point(ARect.Right - 4, ARect.Bottom - 1));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right - 2, ARect.Top + 1),
Point(ARect.Right - 4, ARect.Top + 1));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right - 4, ARect.Bottom),
Point(ARect.Left, ARect.Bottom));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right - 3, ARect.Top),
Point(ARect.Left - 1, ARect.Top));
{Light border}
if AClicked = False then
begin
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 1, ARect.Bottom - 1),
Point(ARect.Left + 1, ARect.Top + 1));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 1, ARect.Top + 1),
Point(ARect.Left + 4, ARect.Top + 1));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 4, ARect.Top + 2),
Point(ARect.Left + 6, ARect.Top + 2));
end
else
begin
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 3, ARect.Top + 1),
Point(ARect.Left + 4, ARect.Top + 1));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 4, ARect.Top + 2),
Point(ARect.Left + 6, ARect.Top + 2));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 5, ARect.Top + 2),
Point(ARect.Left + 5, ARect.Top + 4));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 6, ARect.Top + 4),
Point(ARect.Left + 6, ARect.Bottom - 3));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 1, ARect.Bottom - 1),
Point(ARect.Left + 4, ARect.Bottom - 1));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 4, ARect.Bottom - 2),
Point(ARect.Left + 6, ARect.Bottom - 2));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 5, ARect.Bottom - 2),
Point(ARect.Left + 5, ARect.Bottom - 4));
end;
end;
cxsdTopToBottom:
begin
{Shadow border}
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Left + 4, ARect.Top),
Point(ARect.Right - 3, ARect.Top));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Left, ARect.Bottom),
Point(ARect.Right, ARect.Bottom));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Left + 2, ARect.Top + 1),
Point(ARect.Left + 4, ARect.Top + 1));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right - 2, ARect.Top + 1),
Point(ARect.Right - 4, ARect.Top + 1 ));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Left + 1, ARect.Top + 2),
Point(ARect.Left + 1, ARect.Top + 4));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right - 1, ARect.Top + 2),
Point(ARect.Right - 1,ARect.Top + 4));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Left, ARect.Top + 4),
Point(ARect.Left, ARect.Bottom));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right, ARect.Top + 4),
Point(ARect.Right, ARect.Bottom + 1));
{Light border}
if AClicked = False then
begin
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 4, ARect.Top + 1),
Point(ARect.Right - 3, ARect.Top + 1));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Right - 2, ARect.Top + 2),
Point(ARect.Right - 4, ARect.Top + 2));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Right - 2, ARect.Top + 2),
Point(ARect.Right - 2, ARect.Top + 4));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Right - 1, ARect.Top + 4),
Point(ARect.Right - 1, ARect.Bottom));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 2, ARect.Top + 2),
Point(ARect.Left + 4, ARect.Top + 2));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 2, ARect.Top + 2),
Point(ARect.Left + 2, ARect.Top + 4));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 1, ARect.Top + 4),
Point(ARect.Left + 1, ARect.Top + 5));
end
else
begin
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 1, ARect.Bottom - 1),
Point(ARect.Right - 1, ARect.Bottom - 1));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 2, ARect.Top + 2),
Point(ARect.Left + 2, ARect.Top + 4));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 1, ARect.Top + 4),
Point(ARect.Left + 1, ARect.Top + 7));
end;
end;
cxsdBottomToTop:
begin
{Shadow border}
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Left + 4, ARect.Bottom),
Point(ARect.Right - 3, ARect.Bottom));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Left, ARect.Top),
Point(ARect.Right, ARect.Top));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Left + 2, ARect.Bottom - 1),
Point(ARect.Left + 4, ARect.Bottom - 1));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right - 2, ARect.Bottom - 1),
Point(ARect.Right - 4, ARect.Bottom - 1 ));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Left + 1, ARect.Bottom - 2),
Point(ARect.Left + 1, ARect.Bottom - 4));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right - 1, ARect.Bottom - 2),
Point(ARect.Right - 1,ARect.Bottom - 4));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Left, ARect.Bottom - 4),
Point(ARect.Left, ARect.Top));
DrawCanvasLine(ACanvas.Canvas, ShadowColor, Point(ARect.Right, ARect.Bottom - 3),
Point(ARect.Right, ARect.Top - 1));
{Light border}
if AClicked = False then
begin
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 1, ARect.Top + 1),
Point(ARect.Right - 1, ARect.Top + 1));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 2, ARect.Bottom - 2),
Point(ARect.Left + 2, ARect.Bottom - 4));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 1, ARect.Bottom - 4),
Point(ARect.Left + 1, ARect.Bottom - 7));
end
else
begin
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 4, ARect.Bottom - 1),
Point(ARect.Right - 3, ARect.Bottom - 1));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Right - 2, ARect.Bottom - 2),
Point(ARect.Right - 4, ARect.Bottom - 2));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Right - 2, ARect.Bottom - 2),
Point(ARect.Right - 2, ARect.Bottom - 4));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Right - 1, ARect.Bottom - 4),
Point(ARect.Right - 1, ARect.Top));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 2, ARect.Bottom - 2),
Point(ARect.Left + 4, ARect.Bottom - 2));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 2, ARect.Bottom - 2),
Point(ARect.Left + 2, ARect.Bottom - 4));
DrawCanvasLine(ACanvas.Canvas, LightColor, Point(ARect.Left + 1, ARect.Bottom - 4),
Point(ARect.Left + 1, ARect.Bottom - 5));
end;
end;
end;
end;
procedure TcxMediaPlayer8Style.DrawArrowRect(ACanvas: TcxCanvas; const ARect: TRect;
const AHighlighted, AClicked: Boolean);
begin
ACanvas.Brush.Color := FOwner.Color;
ACanvas.FillRect(ARect);
if AClicked = False then
DrawBounds(ACanvas, ARect, FShadowColor, FLightColor)
else
DrawBounds(ACanvas, ARect, FLightColor, FShadowColor);
end;
{ TcxMediaPlayer8Style }
{ TcxXPTaskBarStyle }
constructor TcxXPTaskBarStyle.Create(AOwner: TcxCustomSplitter);
begin
inherited Create(AOwner);
FLightColor := clWindow;
FShadowColor := clBtnShadow;
end;
procedure TcxXPTaskBarStyle.Assign(Source: TPersistent);
begin
if (Source is TcxXPTaskBarStyle) then
begin
inherited Assign(Source);
with (Source as TcxXPTaskBarStyle) do
begin
Self.LightColor := LightColor;
Self.ShadowColor := ShadowColor;
end;
end
else
inherited Assign(Source);
end;
procedure TcxXPTaskBarStyle.SetLightColor(Value: TColor);
begin
if FLightColor <> Value then
begin
FLightColor := Value;
Changed;
end;
end;
procedure TcxXPTaskBarStyle.SetShadowColor(Value: TColor);
begin
if FShadowColor <> Value then
begin
FShadowColor := Value;
Changed;
end;
end;
function TcxXPTaskBarStyle.DrawHotZone(ACanvas: TcxCanvas; const ARect: TRect;
const AHighlighted, AClicked: Boolean): TRect;
begin
Result := CalculateHotZoneRect(ARect);
ACanvas.Canvas.Lock;
try
ACanvas.Canvas.Brush.Color := Owner.Color;
DrawBackground(ACanvas, HotZoneRect, AHighlighted, AClicked);
DrawSplitterDots(ACanvas, FLTPointsRect, not AClicked, True, FLightColor,
FShadowColor, SplitterDirection, 4, 0);
DrawSplitterDots(ACanvas, FRBPointsRect, not AClicked, True, FLightColor,
FShadowColor, SplitterDirection, 4, 0);
finally
ACanvas.Canvas.Unlock;
end;
end;
function TcxXPTaskBarStyle.CalculateHotZoneRect(const ABounds: TRect): TRect;
var
FRect : TRect;
FHotZoneRectSize, FPos: Integer;
begin
Result := inherited CalculateHotZoneRect(ABounds);
FRect := ABounds;
case SplitterDirection of
cxsdLeftToRight, cxsdRightToLeft:
begin
FRect.Right := FRect.Left + SplitterDefaultSize - 1;
FHotZoneRectSize := ((FRect.Bottom - FRect.Top) * SizePercent) div 100;
FPos := ((FRect.Bottom - FRect.Top) div 2) - (FHotZoneRectSize div 2);
Result := Rect(FRect.Left, FPos, FRect.Right, FPos + FHotZoneRectSize);
FLTPointsRect := Rect(Result.Left + 1, Result.Top,
(Result.Right div 2), Result.Bottom);
FRBPointsRect := Rect((Result.Right div 2) + 1, Result.Top + 3,
Result.Right, Result.Bottom);
end;
else
begin
FRect.Bottom := FRect.Top + SplitterDefaultSize - 1;
FHotZoneRectSize := ((FRect.Right - FRect.Left) * SizePercent) div 100;
FPos := ((FRect.Right - FRect.Left) div 2) - (FHotZoneRectSize div 2);
Result := Rect(FPos, FRect.Top, FPos + FHotZoneRectSize, FRect.Bottom);
FLTPointsRect := Rect(Result.Left, Result.Top + 1,
Result.Right, Result.Bottom div 2);
FRBPointsRect := Rect(Result.Left + 3, (Result.Bottom div 2) + 1,
Result.Right, Result.Bottom);
end;
end;
HotZoneRect := Result;
end;
procedure TcxXPTaskBarStyle.DrawBackground(ACanvas: TcxCanvas; const ARect: TRect;
const AHighlighted, AClicked: Boolean);
begin
if AreVisualStylesAvailable and Owner.NativeBackground then
cxDrawThemeParentBackground(Owner, ACanvas, ARect)
else
begin
ACanvas.Brush.Color := Owner.Color;
ACanvas.FillRect(ARect);
end;
end;
{ TcxXPTaskBarStyle }
{ TcxSimpleStyle }
constructor TcxSimpleStyle.Create(AOwner: TcxCustomSplitter);
begin
inherited Create(AOwner);
FLightColor := clWindow;
FShadowColor := clBtnShadow;
FArrowColor := clWindowText;
FArrowHighlightColor := clWindow;
FDotsColor := clHighlight;
FDotsShadowColor := clWindow;
end;
procedure TcxSimpleStyle.Assign(Source: TPersistent);
begin
if (Source is TcxSimpleStyle) then
begin
inherited Assign(Source);
with (Source as TcxSimpleStyle) do
begin
Self.LightColor := LightColor;
Self.ShadowColor := ShadowColor;
Self.ArrowColor := ArrowColor;
Self.ArrowHighlightColor := ArrowHighlightColor;
Self.DotsColor := DotsColor;
Self.DotsShadowColor := DotsShadowColor;
end;
end
else
inherited Assign(Source);
end;
procedure TcxSimpleStyle.SetLightColor(Value: TColor);
begin
if FLightColor <> Value then
begin
FLightColor := Value;
Changed;
end;
end;
procedure TcxSimpleStyle.SetShadowColor(Value: TColor);
begin
if FShadowColor <> Value then
begin
FShadowColor := Value;
Changed;
end;
end;
procedure TcxSimpleStyle.SetArrowColor(Value: TColor);
begin
if FArrowColor <> Value then
begin
FArrowColor := Value;
Changed;
end;
end;
procedure TcxSimpleStyle.SetArrowHighlightColor(Value: TColor);
begin
if FArrowHighlightColor <> Value then
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?