📄 advofficetabset.pas
字号:
begin
graphics.FillRectangle(linGrBrush, r.Left + 1,r.Top + 1, w - 1, h2);
linGrBrush.Free;
end;
path.Free;
end;
tpBottom:
begin
// down ellips brush
Canvas.Brush.Color := cfb;
Canvas.FillRect(rect(r.Left , r.top, r.Right , r.top + h2));
// Create a path that consists of a single ellipse.
path := TGPGraphicsPath.Create;
// path.AddRectangle(MakeRect(r.Left, r.Top + (h div 2), w , h));
path.AddEllipse(r.Left, r.Top, w , h2);
pthGrBrush := nil;
linGrBrush := nil;
case GradientB of
ggRadial: pthGrBrush := TGPPathGradientBrush.Create(path);
ggVertical: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top,w,h2),ColorToARGB(CTB),ColorToARGB(CFB), LinearGradientModeVertical);
ggDiagonalForward: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top,w,h2),ColorToARGB(CTB),ColorToARGB(CFB), LinearGradientModeForwardDiagonal);
ggDiagonalBackward: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top,w,h2),ColorToARGB(CTB),ColorToARGB(CFB), LinearGradientModeBackwardDiagonal);
end;
if GradientB = ggRadial then
begin
pthGrBrush.SetCenterPoint(MakePoint(r.Left + w2, r.Top));
// Set the color at the center point to blue.
pthGrBrush.SetCenterColor(ColorToARGB(CTB));
colors[0] := ColorToARGB(CFB);
count := 1;
pthGrBrush.SetSurroundColors(@colors, count);
graphics.FillRectangle(pthGrBrush, r.Left + 1,r.Top, w - 1, h2+1);
pthGrBrush.Free;
end
else
begin
graphics.FillRectangle(linGrBrush, r.Left + 1,r.Top + 1, w - 1, h2 + 1);
linGrBrush.Free;
end;
path.Free;
Canvas.Brush.Color := cfu;
Canvas.FillRect(rect(r.Left , r.top + h2, r.Right , r.Bottom));
// Create a path that consists of a single ellipse.
path := TGPGraphicsPath.Create;
path.AddEllipse(r.Left, r.Bottom - h2 , w , h);
case GradientU of
ggRadial: pthGrBrush := TGPPathGradientBrush.Create(path); // FF: Gradient fix here replace h by h2
ggVertical: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top + h2-1,w,h2),ColorToARGB(CTU),ColorToARGB(CFU), LinearGradientModeVertical);
ggDiagonalForward: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top + h2,w,h),ColorToARGB(CTU),ColorToARGB(CFU), LinearGradientModeForwardDiagonal);
ggDiagonalBackward: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top + h2,w,h),ColorToARGB(CTU),ColorToARGB(CFU), LinearGradientModeBackwardDiagonal);
end;
if GradientU = ggRadial then
begin
pthGrBrush.SetCenterPoint(MakePoint(r.Left + w2, r.Bottom));
// Set the color at the center point to blue.
pthGrBrush.SetCenterColor(ColorToARGB(CTU));
colors[0] := ColorToARGB(CFU);
count := 1;
pthGrBrush.SetSurroundColors(@colors, count);
graphics.FillRectangle(pthGrBrush, r.Left + 1,r.Top + h2 + 1, w - 1, h2 - 1);
pthGrBrush.Free;
end
else
begin
graphics.FillRectangle(linGrBrush, r.Left + 1,r.Top + h2, w - 1, h2 - 1);
linGrBrush.Free;
end;
path.Free;
end;
tpLeft:
begin
// down ellips brush
Canvas.Brush.Color := cfb;
Canvas.FillRect(rect(r.Left + w2, r.top, r.Right , r.Bottom));
// Create a path that consists of a single ellipse.
path := TGPGraphicsPath.Create;
// path.AddRectangle(MakeRect(r.Left, r.Top + (h div 2), w , h));
path.AddEllipse(r.Left + w2, r.Top, w , h);
pthGrBrush := nil;
linGrBrush := nil;
case GradientB of
ggRadial: pthGrBrush := TGPPathGradientBrush.Create(path);
ggVertical: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left + w2,r.Top,w2,h),ColorToARGB(CFB),ColorToARGB(CTB), LinearGradientModeHorizontal);
ggDiagonalForward: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left + w2,r.Top,w2,h),ColorToARGB(CFB),ColorToARGB(CTB), LinearGradientModeForwardDiagonal);
ggDiagonalBackward: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left + w2,r.Top,w2,h),ColorToARGB(CFB),ColorToARGB(CTB), LinearGradientModeBackwardDiagonal);
end;
if GradientB = ggRadial then
begin
pthGrBrush.SetCenterPoint(MakePoint(r.Right, r.Top + h2));
// Set the color at the center point to blue.
pthGrBrush.SetCenterColor(ColorToARGB(CTB));
colors[0] := ColorToARGB(CFB);
count := 1;
pthGrBrush.SetSurroundColors(@colors, count);
graphics.FillRectangle(pthGrBrush, r.Left + w2, r.Top, w2 + 1, h-1);
pthGrBrush.Free;
end
else
begin
graphics.FillRectangle(linGrBrush, r.Left + w2 + 1,r.Top, w2 + 1, h - 1);
linGrBrush.Free;
end;
path.Free;
Canvas.Brush.Color := cfu;
//Canvas.FillRect(rect(r.Left + 1, r.Top + 2, r.Right - 1, r.top + h2));
Canvas.FillRect(rect(r.Left , r.Top , r.Left + w2 , r.Bottom));
// Create a path that consists of a single ellipse.
path := TGPGraphicsPath.Create;
path.AddEllipse(r.Left - w2, r.Top, w , h);
case GradientU of
ggRadial: pthGrBrush := TGPPathGradientBrush.Create(path); // FF: Gradient fix here replace h by h2
ggVertical: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top,w2,h),ColorToARGB(CFU),ColorToARGB(CTU), LinearGradientModeHorizontal);
ggDiagonalForward: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top,w,h),ColorToARGB(CFU),ColorToARGB(CTU), LinearGradientModeForwardDiagonal);
ggDiagonalBackward: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top,w,h),ColorToARGB(CFU),ColorToARGB(CTU), LinearGradientModeBackwardDiagonal);
end;
if GradientU = ggRadial then
begin
pthGrBrush.SetCenterPoint(MakePoint(r.Left, r.top + h2));
// Set the color at the center point to blue.
pthGrBrush.SetCenterColor(ColorToARGB(CTU));
colors[0] := ColorToARGB(CFU);
count := 1;
pthGrBrush.SetSurroundColors(@colors, count);
graphics.FillRectangle(pthGrBrush, r.Left + 1,r.Top + 1, w2 - 1, h - 1);
pthGrBrush.Free;
end
else
begin
graphics.FillRectangle(linGrBrush, r.Left + 1,r.Top + 1, w2 - 1, h - 1);
linGrBrush.Free;
end;
path.Free;
end;
tpRight:
begin
Canvas.Brush.Color := cfu;
Canvas.FillRect(rect(r.Right - w2 , r.Top , r.Right ,r.Bottom));
// Create a path that consists of a single ellipse.
path := TGPGraphicsPath.Create;
path.AddEllipse(r.Right - w2, r.Top, w, h);
pthGrBrush := nil;
linGrBrush := nil;
case GradientU of
ggRadial: pthGrBrush := TGPPathGradientBrush.Create(path); // FF: Gradient fix here replace h by h2
ggVertical: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Right-w2,r.Top,w2,h),ColorToARGB(CTU),ColorToARGB(CFU), LinearGradientModeHorizontal);
ggDiagonalForward: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Right-w2,r.Top,w,h),ColorToARGB(CTU),ColorToARGB(CFU), LinearGradientModeForwardDiagonal);
ggDiagonalBackward: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Right-w2,r.Top,w,h),ColorToARGB(CTU),ColorToARGB(CFU), LinearGradientModeBackwardDiagonal);
end;
if GradientU = ggRadial then
begin
pthGrBrush.SetCenterPoint(MakePoint(r.Right, r.top + h2));
// Set the color at the center point to blue.
pthGrBrush.SetCenterColor(ColorToARGB(CTU));
colors[0] := ColorToARGB(CFU);
count := 1;
pthGrBrush.SetSurroundColors(@colors, count);
graphics.FillRectangle(pthGrBrush, r.Right - w2 + 1,r.Top + 1, w2 - 1, h - 1);
pthGrBrush.Free;
end
else
begin
graphics.FillRectangle(linGrBrush, r.Right - w2, r.Top + 1, w2, h - 1);
linGrBrush.Free;
end;
path.Free;
// down ellips brush
Canvas.Brush.Color := cfb;
Canvas.FillRect(rect(r.Left , r.top, r.Left + w2, r.Bottom ));
// Create a path that consists of a single ellipse.
path := TGPGraphicsPath.Create;
// path.AddRectangle(MakeRect(r.Left, r.Top + (h div 2), w , h));
path.AddEllipse(r.Left - w2, r.Top, w , h);
pthGrBrush := nil;
linGrBrush := nil;
case GradientB of
ggRadial: pthGrBrush := TGPPathGradientBrush.Create(path);
ggVertical: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top,w2+2,h),ColorToARGB(CTB),ColorToARGB(CFB), LinearGradientModeHorizontal);
ggDiagonalForward: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top,w2,h),ColorToARGB(CTB),ColorToARGB(CFB), LinearGradientModeForwardDiagonal);
ggDiagonalBackward: linGrBrush := TGPLinearGradientBrush.Create(MakeRect(r.Left,r.Top,w2,h),ColorToARGB(CTB),ColorToARGB(CFB), LinearGradientModeBackwardDiagonal);
end;
if GradientB = ggRadial then
begin
pthGrBrush.SetCenterPoint(MakePoint(r.Left, r.Top + h2));
// Set the color at the center point to blue.
pthGrBrush.SetCenterColor(ColorToARGB(CTB));
colors[0] := ColorToARGB(CFB);
count := 1;
pthGrBrush.SetSurroundColors(@colors, count);
graphics.FillRectangle(pthGrBrush, r.Left,r.Top, w2 + 1, h-1);
pthGrBrush.Free;
end
else
begin
graphics.FillRectangle(linGrBrush, r.Left,r.Top, w2 + 2, h - 1);
linGrBrush.Free;
end;
path.Free;
end;
end;
gppen := tgppen.Create(ColorToARGB(PC),1);
graphics.SetSmoothingMode(SmoothingModeAntiAlias);
if (PC <> clNone) then
begin
if not RoundEdges then
DrawRect(graphics, gppen,r.Left,r.Top, w - 1, h - 1)
else
DrawRoundRect(graphics, gppen,r.Left,r.Top, w - 1, h - 1, 3);
end;
gppen.Free;
if Focus then
begin
gppen := tgppen.Create(ColorToARGB($E4AD89),1);
graphics.SetSmoothingMode(SmoothingModeAntiAlias);
DrawRoundRect(graphics, gppen,r.Left + 1,r.Top + 1, r.Right - 3, r.Bottom - 3, 3);
gppen.Free;
gppen := tgppen.Create(ColorToARGB(clgray),1);
gppen.SetDashStyle(DashStyleDot);
graphics.SetSmoothingMode(SmoothingModeAntiAlias);
DrawRoundRect(graphics, gppen,r.Left + 2,r.Top + 2, r.Right - 5, r.Bottom - 5, 3);
gppen.Free;
end;
fontFamily:= TGPFontFamily.Create(AFont.Name);
fs := 0;
ImgH := 0;
ImgW := 0;
if (fsBold in AFont.Style) then
fs := fs + 1;
if (fsItalic in AFont.Style) then
fs := fs + 2;
if (fsUnderline in AFont.Style) then
fs := fs + 4;
if Assigned(Picture) and not Picture.Empty then
begin
Picture.GetImageSizes;
ImgW := Picture.Width;
ImgH := Picture.Height;
end
else
begin
if (ImageIndex > -1) and Assigned(Images) then
begin
ImgW := Images.Width;
ImgH := Images.Height;
end;
end;
if (Caption <> '') then
begin
font := TGPFont.Create(fontFamily, AFont.Size , fs, UnitPoint);
w := BtnR.Right - BtnR.Left;
h := BtnR.Bottom - BtnR.Top;
x1 := r.Left;
y1 := r.Top;
x2 := w;
y2 := h;
rectf := MakeRect(x1,y1,x2,y2);
stringFormat := TGPStringFormat.Create;
if Enabled then
solidBrush := TGPSolidBrush.Create(ColorToARGB(AFont.Color))
else
solidBrush := TGPSolidBrush.Create(ColorToARGB(clGray));
// Center-justify each line of text.
stringFormat.SetAlignment(StringAlignmentCenter);
// Center the block of text (top to bottom) in the rectangle.
stringFormat.SetLineAlignment(StringAlignmentCenter);
stringFormat.SetHotkeyPrefix(HotkeyPrefixShow);
case AntiAlias of
aaClearType:graphics.SetTextRenderingHint(TextRenderingHintClearTypeGridFit);
aaAntiAlias:graphics.SetTextRenderingHint(TextRenderingHintAntiAlias);
end;
//graphics.MeasureString(Caption, Length(Caption), font, rectf, stringFormat, sizerect);
if AntiAlias = aaNone then
begin
szRect.Left := round(rectf.X);
szRect.Top := round(rectf.Y);
szRect.Right := szRect.Left + 2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -