dxskininfo.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,197 行 · 第 1/4 页
PAS
1,197 行
sdxTextColorNormal);
RibbonStatusBarTextHot := GetElementColorProperty(RibbonStatusBarButton,
sdxTextColorHot);
RibbonStatusBarTextDisabled := GetElementColorProperty(RibbonStatusBarButton,
sdxTextColorDisabled);
RibbonButtonText[False] := GetElementTextColor(RibbonSmallButton);
RibbonButtonText[True] := GetElementColorProperty(Group_Ribbon,
sdxRibbonButtonDisabledText);
end;
procedure TdxSkinInfo.InitializeRibbonElements;
begin
RibbonApplicationButton := GetElementByName(Group_Ribbon, sdxRibbonApplicationButton);
RibbonApplicationMenuBorders[False] := GetElementByName(Group_Ribbon,
sdxRibbonAppMenuHeaderBackground);
RibbonApplicationMenuBorders[True] := GetElementByName(Group_Ribbon,
sdxRibbonAppMenuFooterBackground);
RibbonCollapsedToolBarBackground := GetElementByName(Group_Ribbon, sdxRibbonCollapsedToolBarBackground);
RibbonCollapsedToolBarGlyphBackground := GetElementByName(Group_Ribbon, sdxRibbonCollapsedToolBarGlyphBackground);
RibbonFormCaption := GetElementByName(Group_Ribbon, sdxRibbonFormCaption);
RibbonFormBottom[False] := GetElementByName(Group_Ribbon, sdxRibbonFormBottom);
RibbonFormBottom[True] := GetElementByName(Group_Ribbon, sdxRibbonDialogFrameBottom);
RibbonFormLeft[False] := GetElementByName(Group_Ribbon, sdxRibbonFormFrameLeft);
RibbonFormLeft[True] := GetElementByName(Group_Ribbon, sdxRibbonDialogFrameLeft);
RibbonFormRight[False] := GetElementByName(Group_Ribbon, sdxRibbonFormFrameRight);
RibbonFormRight[True] := GetElementByName(Group_Ribbon, sdxRibbonDialogFrameRight);
RibbonTab := GetElementByName(Group_Ribbon, sdxRibbonTabHeaderPage);
RibbonTabPanel := GetElementByName(Group_Ribbon, sdxRibbonTabPanel);
RibbonTabPanelGroupButton := GetElementByName(Group_Ribbon, sdxRibbonTabPanelGroupButton);
RibbonTabGroup := GetElementByName(Group_Ribbon, sdxRibbonTabGroup);
RibbonTabGroupHeader := GetElementByName(Group_Ribbon, sdxRibbonTabGroupHeader);
RibbonGalleryBackground := GetElementByName(Group_Ribbon, sdxRibbonGalleryBackground);
RibbonGalleryButtonDown := GetElementByName(Group_Ribbon, sdxRibbonGalleryButtonDown);
RibbonGalleryButtonDropDown := GetElementByName(Group_Ribbon, sdxRibbonGalleryButtonDropDown);
RibbonGalleryButtonUp := GetElementByName(Group_Ribbon, sdxRibbonGalleryButtonUp);
RibbonGalleryGroupCaption := GetElementByName(Group_Ribbon, sdxRibbonGalleryGroupCaption);
RibbonGalleryPane := GetElementByName(Group_Ribbon, sdxRibbonGalleryPane);
RibbonGallerySizingPanel := GetElementByName(Group_Ribbon, sdxRibbonGallerySizingPanel);
RibbonGallerySizeGrips := GetElementByName(Group_Ribbon, sdxRibbonGallerySizeGrips);
RibbonHeaderBackground := GetElementByName(Group_Ribbon, sdxRibbonHeaderBackground);
RibbonSmallButton := GetElementByName(Group_Ribbon, sdxRibbonSmallButton);
RibbonSplitButtonLeft := GetElementByName(Group_Ribbon, sdxRibbonSplitButtonLeft);
RibbonSplitButtonRight := GetElementByName(Group_Ribbon, sdxRibbonSplitButtonRight);
RibbonLargeButton := GetElementByName(Group_Ribbon, sdxRibbonLargeButton);
RibbonLargeSplitButtonTop := GetElementByName(Group_Ribbon, sdxRibbonLargeSplitButtonTop);
RibbonLargeSplitButtonBottom := GetElementByName(Group_Ribbon, sdxRibbonLargeSplitButtonBottom);
RibbonButtonArrow := GetElementByName(Group_Ribbon, sdxRibbonButtonArrow);
RibbonButtonGroup := GetElementByName(Group_Ribbon, sdxRibbonButtonGroup);
RibbonStatusBarBackground := GetElementByName(Group_Ribbon, sdxRibbonStatusBarBackground);
RibbonStatusBarButton := GetElementByName(Group_Ribbon, sdxRibbonStatusBarButton);
RibbonStatusBarSeparator := GetElementByName(Group_Ribbon, sdxRibbonStatusBarSeparator);
RibbonQuickToolbar[True] := GetElementByName(Group_Ribbon, sdxRibbonQuickToolbarInCaption);
RibbonQuickToolbar[False] := GetElementByName(Group_Ribbon, sdxRibbonQuickToolbarAbove);
RibbonQuickToolbarBelow := GetElementByName(Group_Ribbon, sdxRibbonQuickToolbarBelow);
RibbonQuickToolbarButtonGlyph := GetElementByName(Group_Ribbon, sdxRibbonQuickToolbarButtonGlyph);
RibbonQuickToolbarDropDown := GetElementByName(Group_Ribbon, sdxRibbonQuickToolbarDropDown);
RibbonQuickToolbarGlyph := GetElementByName(Group_Ribbon, sdxRibbonQuickToolbarGlyph);
RibbonButtonGroupButton := GetElementByName(Group_Ribbon, sdxRibbonButtonGroupButton);
RibbonButtonGroupSeparator := GetElementByName(Group_Ribbon, sdxRibbonButtonGroupSeparator);
RibbonGroupScroll[True] := GetElementByName(Group_Ribbon, sdxRibbonTabGroupLeftScroll);
RibbonGroupScroll[False] := GetElementByName(Group_Ribbon, sdxRibbonTabGroupRightScroll);
InitializeRibbonProperties;
InitializeRibbonColors;
end;
procedure TdxSkinInfo.InitializeRibbonProperties;
var
AIndex: Boolean;
begin
for AIndex := False to True do
if RibbonQuickToolbar[AIndex] <> nil then
with RibbonQuickToolbar[AIndex] do
begin
RibbonQATCustomizeButtonOutsizeQAT[AIndex] :=
GetPropertyByName(sdxRibbonQATCustomizeButtonOutsideQAT) as TdxSkinBooleanProperty;
RibbonQATIndentBeforeCustomizeButton[AIndex] :=
GetPropertyByName(sdxRibbonQATIndentBeforeCustomizeItem) as TdxSkinIntegerProperty;
end;
RibbonCaptionFontDelta := GetIntPropertyByName(RibbonFormCaption, sdxCaptionFontDelta);
if Group_Ribbon = nil then
FillChar(RibbonIndents, SizeOf(RibbonIndents), 0)
else
begin
RibbonIndents[0] := GetElementIntProperty(RibbonApplicationButton,
sdxRibbonAppButtonRightIndent);
RibbonIndents[1] := GetElementIntProperty(RibbonQuickToolbar[True],
sdxRibbonQuickAccessToolbarOffset);
RibbonIndents[2] := GetElementIntProperty(Group_Ribbon, sdxRibbonTabHeaderDownGrowIndent);
end;
end;
procedure TdxSkinInfo.InitializeScrollBarElements;
procedure SetInfo(AHorz: Boolean; APart: TcxScrollBarPart;
AElement: TdxSkinElement; AImageIndex: Integer = 0);
begin
FreeAndNil(ScrollBar_Elements[AHorz, APart]);
if Skin <> nil then
ScrollBar_Elements[AHorz, APart] :=
TdxSkinScrollInfo.Create(AElement, AImageIndex, APart);
end;
var
AElement: TdxSkinElement;
begin
// buttons
AElement := GetElementByName(Group_Common, sdxScrollButton);
if FormContent <> nil then
AElement.Color := FormContent.Color; //todo: transparent elements bug
SetInfo(False, sbpLineUp, AElement);
SetInfo(False, sbpLineDown, AElement, 1);
SetInfo(True, sbpLineUp, AElement, 2);
SetInfo(True, sbpLineDown, AElement, 3);
// Thumbnail
SetInfo(False, sbpThumbnail,
GetElementByName(Group_Common, sdxScrollThumbButtonVert));
SetInfo(True, sbpThumbnail,
GetElementByName(Group_Common, sdxScrollThumbButtonHorz));
// Page
AElement := GetElementByName(Group_Common, sdxScrollContentVert);
SetInfo(False, sbpPageUp, AElement);
SetInfo(False, sbpPageDown, AElement);
AElement := GetElementByName(Group_Common, sdxScrollContentHorz);
SetInfo(True, sbpPageUp, AElement);
SetInfo(True, sbpPageDown, AElement);
end;
procedure TdxSkinInfo.InitializeSchedulerElements;
procedure HideElementUsage(AElement: TdxSkinElement);
begin
if AElement <> nil then
AElement.Tag := 0;
end;
begin
SchedulerTimeGridHeader[False] := GetElementByName(Group_Scheduler,
sdxSchedulerTimeGridHeader);
SchedulerTimeGridHeader[True] := GetElementByName(Group_Scheduler,
sdxSchedulerTimeGridHeaderSelected);
SchedulerTimeLine := GetElementByName(Group_Scheduler, sdxSchedulerTimeLine);
SchedulerTimeRuler := GetElementByName(Group_Scheduler, sdxSchedulerTimeRuler);
SchedulerMoreButton := GetElementByName(Group_Scheduler, sdxSchedulerMoreButton);
SchedulerAppointment[False] := GetElementByName(Group_Scheduler, sdxSchedulerAppointmentRight);
SchedulerAppointment[True] := GetElementByName(Group_Scheduler, sdxSchedulerAppointment);
SchedulerAllDayArea[False] := GetElementByName(Group_Scheduler, sdxSchedulerAllDayArea);
SchedulerAllDayArea[True] := GetElementByName(Group_Scheduler, sdxSchedulerAllDayAreaSelected);
SchedulerCurrentTimeIndicator := GetElementByName(Group_Scheduler,
sdxSchedulerCurrentTimeIndicator);
SchedulerAppointmentShadow[False] := GetElementByName(Group_Scheduler,
sdxSchedulerAppointmentBottomShadow);
SchedulerAppointmentShadow[True] := GetElementByName(Group_Scheduler,
sdxSchedulerAppointmentRightShadow);
SchedulerAppointmentBorderSize := GetIntPropertyByName(SchedulerAppointment[True],
sdxSchedulerAppointmentBorderSize);
SchedulerAppointmentMask := GetElementByName(Group_Scheduler, sdxSchedulerAppointmentMask);
SchedulerAppointmentBorder := GetColorByName(SchedulerAppointment[True],
sdxSchedulerSeparatorColor);
SchedulerNavigationButtons[False] := GetElementByName(Group_Scheduler, sdxSchedulerNavButtonPrev);
SchedulerNavigationButtons[True] := GetElementByName(Group_Scheduler, sdxSchedulerNavButtonNext);
SchedulerNavigationButtonsArrow[False] := GetElementByName(Group_Scheduler,
sdxSchedulerNavButtonPrevArrow);
SchedulerNavigationButtonsArrow[True] := GetElementByName(Group_Scheduler,
sdxSchedulerNavButtonNextArrow);
// TODO: Its a scheduler3 element - ACreateIfEmpty = False
SchedulerTimeGridCurrentTimeIndicator := GetElementByName(Group_Scheduler,
sdxSchedulerTimeGridCurrentTimeIndicator, False);
end;
procedure TdxSkinInfo.InitializeSizeGripElements;
begin
SizeGrip := GetElementByName(Group_Common, sdxSizeGrip);
end;
procedure TdxSkinInfo.InitializeSplitterElements;
begin
Splitter[False] := GetElementByName(Group_Common, sdxSplitterVert);
Splitter[True] := GetElementByName(Group_Common, sdxSplitterHorz);
end;
procedure TdxSkinInfo.InitializeToolTipElements;
begin
ScreenTipWindow := GetElementByName(Group_Bars, sdxScreenTipWindow);
ScreenTipItem := GetColorByName(ScreenTipWindow, sdxScreenTipItem);
ScreenTipSeparator := GetElementByName(Group_Bars, sdxScreenTipSeparator);
ScreenTipTitleItem := GetColorByName(ScreenTipWindow, sdxScreenTipTitleItem);
end;
procedure TdxSkinInfo.InitializeTrackBarElements;
begin
TrackBarTrack[True] := GetElementByName(Group_Editors, sdxTrackBarTrack);
TrackBarTrack[False] := GetElementByName(Group_Editors, sdxTrackBarTrackVert);
TrackBarThumb[True, tbtaDown] := GetElementByName(Group_Editors, sdxTrackBarThumb);
TrackBarThumb[True, tbtaUp] := GetElementByName(Group_Editors, sdxTrackBarThumbUp);
TrackBarThumb[True, tbtaBoth] := GetElementByName(Group_Editors, sdxTrackBarThumbBoth);
TrackBarThumb[False, tbtaDown] := GetElementByName(Group_Editors, sdxTrackBarThumbVert);
TrackBarThumb[False, tbtaUp] := GetElementByName(Group_Editors, sdxTrackBarThumbVertUp);
TrackBarThumb[False, tbtaBoth] := GetElementByName(Group_Editors, sdxTrackBarThumbVertBoth);
end;
procedure TdxSkinInfo.InitializeSkinInfo;
begin
InitializeGroups;
InitializeBarElements;
InitializeFormElements;
InitializeDockControlElements;
InitializeButtonElements;
InitializeFooterElements;
InitializeCheckboxElements;
InitializeClockElements;
InitializeEditButtonElements;
InitializeGroupBoxElements;
InitializeGridElements;
InitializeIndicatorImages;
InitializeNavBarElements;
InitializeNavigatorElements;
InitializeSchedulerElements;
InitializeHeaderElements;
InitializeFilterElements;
InitializePageControlElements;
InitializeProgressBarElements;
InitializeRadioGroupElements;
InitializeScrollBarElements;
InitializeRibbonElements;
InitializeSizeGripElements;
InitializeSplitterElements;
InitializeTrackBarElements;
InitializeToolTipElements;
InitializeColors;
end;
procedure TdxSkinInfo.FinalizeScrollBarElements;
var
AHorz: Boolean;
APart: TcxScrollBarPart;
begin
for AHorz := False to True do
for APart := Low(TcxScrollBarPart) to High(TcxScrollBarPart) do
FreeAndNil(ScrollBar_Elements[AHorz, APart]);
end;
procedure TdxSkinInfo.FinalizeSkinInfo;
begin
FinalizeScrollBarElements;
end;
function TdxSkinInfo.GetSkin: TdxSkin;
begin
Result := Skin;
end;
procedure TdxSkinInfo.SkinChanged(Sender: TdxSkin);
begin
FinalizeSkinInfo;
InitializeSkinInfo;
end;
procedure TdxSkinInfo.SetSkin(ASkin: TdxSkin);
begin
if ASkin <> Skin then
begin
if Skin <> nil then
begin
FinalizeSkinInfo;
Skin.RemoveListener(Self);
end;
FSkin := ASkin;
if Skin <> nil then
Skin.AddListener(Self);
InitializeSkinInfo;
end;
end;
{ TdxSkinScrollInfo }
constructor TdxSkinScrollInfo.Create(AElement: TdxSkinElement;
AImageIndex: Integer; APart: TcxScrollBarPart);
begin
FElement := AElement;
FImageIndex := AImageIndex;
end;
function TdxSkinScrollInfo.Draw(DC: HDC; const R: TRect; AImageIndex: Integer;
AState: TdxSkinElementState): Boolean;
begin
Result := Element <> nil;
if Result then
Element.Draw(DC, R, AImageIndex, AState);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?