SkinData.pas
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:137k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. {*******************************************************************}
  2. {                                                                   }
  3. {       Almediadev Visual Component Library                         }
  4. {       DynamicSkinForm                                             }
  5. {       Version 4.98                                                }
  6. {                                                                   }
  7. {       Copyright (c) 2000-2002 Almediadev                          }
  8. {       ALL RIGHTS RESERVED                                         }
  9. {                                                                   }
  10. {       Home:  http://www.almdev.com                                }
  11. {       Support: support@almdev.com                                 }
  12. {                                                                   }
  13. {*******************************************************************}
  14. unit SkinData;
  15. {$P+,S-,W-,R-}
  16. {$WARNINGS OFF}
  17. {$HINTS OFF}
  18. interface
  19. uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SPUtils, Forms,
  20.      IniFiles, Dialogs, spZLib;
  21. type
  22.   TStdCommand = (cmClose, cmMaximize, cmMinimize, cmSysMenu, cmDefault, cmRollUp);
  23.   TMorphKind = (mkDefault, mkGradient, mkLeftGradient, mkRightGradient,
  24.                 mkLeftSlide, mkRightSlide, mkPush);
  25.   TFramesPlacement = (fpHorizontal, fpVertical);
  26.   TRegulatorKind = (rkRound, rkHorizontal, rkVertical);
  27.   TspInActiveEffect = (ieBrightness, ieDarkness, ieGrayScale,
  28.                        ieNoise, ieSplitBlur, ieInvert);
  29.   TspDataSkinControl = class(TObject)
  30.   public
  31.     IDName: String;
  32.     PictureIndex: Integer;
  33.     MaskPictureIndex: Integer;
  34.     SkinRect: TRect;
  35.     CursorIndex: Integer;
  36.     constructor Create(AIDName: String);
  37.     procedure LoadFromFile(IniFile: TCustomIniFile); virtual;
  38.     procedure SaveToFile(IniFile: TCustomIniFile); virtual;
  39.   end;
  40.   TspDataSkinBevel = class(TspDataSkinControl)
  41.   public
  42.     LightColor: TColor;
  43.     DarkColor: TColor;
  44.     constructor Create(AIDName: String);
  45.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  46.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  47.   end;
  48.   TspDataSkinSlider = class(TspDataSkinControl)
  49.   public
  50.     HRulerRect: TRect;
  51.     HThumbRect: TRect;
  52.     VRulerRect: TRect;
  53.     VThumbRect: TRect;
  54.     EdgeSize: Integer;
  55.     BGColor: TColor;
  56.     PointsColor: TColor;
  57.     constructor Create(AIDName: String);
  58.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  59.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  60.   end;
  61.   TspDataSkinTreeView = class(TspDataSkinControl)
  62.   public
  63.     FontName: String;
  64.     FontStyle: TFontStyles;
  65.     FontHeight: Integer;
  66.     FontColor: TColor;
  67.     BGColor: TColor;
  68.     constructor Create(AIDName: String);
  69.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  70.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  71.   end;
  72.   TspDataSkinRichEdit = class(TspDataSkinControl)
  73.   public
  74.     FontName: String;
  75.     FontStyle: TFontStyles;
  76.     FontHeight: Integer;
  77.     FontColor: TColor;
  78.     BGColor: TColor;
  79.     constructor Create(AIDName: String);
  80.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  81.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  82.   end;
  83.   TspDataSkinListView = class(TspDataSkinControl)
  84.   public
  85.     FontName: String;
  86.     FontStyle: TFontStyles;
  87.     FontHeight: Integer;
  88.     FontColor: TColor;
  89.     BGColor: TColor;
  90.     constructor Create(AIDName: String);
  91.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  92.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  93.   end;
  94.   TspDataSkinMainMenuBar = class(TspDataSkinControl)
  95.   public
  96.     ItemsRect: TRect;
  97.     MenuBarItem: String;
  98.     CloseButton: String;
  99.     MaxButton: String;
  100.     MinButton: String;
  101.     SysMenuButton: String;
  102.     TrackMarkColor, TrackMarkActiveColor: Integer;
  103.     constructor Create(AIDName: String);
  104.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  105.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  106.   end;
  107.   
  108.   TspDataSkinTabControl = class(TspDataSkinControl)
  109.   public
  110.     TabRect, ActiveTabRect, FocusTabRect, MouseInTabRect: TRect;
  111.     ClRect: TRect;
  112.     TabsBGRect: TRect;
  113.     LTPoint, RTPoint, LBPoint, RBPoint: TPoint;
  114.     TabLeftOffset, TabRightOffset: Integer;
  115.     FontName: String;
  116.     FontStyle: TFontStyles;
  117.     FontHeight: Integer;
  118.     FontColor, ActiveFontColor, FocusFontColor, MouseInFontColor: TColor;
  119.     UpDown: String;
  120.     BGPictureIndex: Integer; 
  121.     constructor Create(AIDName: String);
  122.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  123.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  124.   end;
  125.   TspDataSkinGridControl = class(TspDataSkinControl)
  126.   public
  127.     FixedCellRect, SelectCellRect, FocusCellRect: TRect;
  128.     //
  129.     FixedCellLeftOffset, FixedCellRightOffset: Integer;
  130.     FixedCellTextRect: TRect;
  131.     //
  132.     CellLeftOffset, CellRightOffset: Integer;
  133.     CellTextRect: TRect;
  134.     //
  135.     LinesColor, BGColor: TColor;
  136.     BGPictureIndex: Integer;
  137.     FontName: String;
  138.     FontStyle: TFontStyles;
  139.     FontHeight: Integer;
  140.     FontColor, SelectFontColor, FocusFontColor: TColor;
  141.     FixedFontName: String;
  142.     FixedFontStyle: TFontStyles;
  143.     FixedFontHeight: Integer;
  144.     FixedFontColor: TColor;
  145.     constructor Create(AIDName: String);
  146.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  147.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  148.   end;
  149.   TspDataSkinFrameControl = class(TspDataSkinControl)
  150.   public
  151.     FramesCount: Integer;
  152.     FramesPlacement: TFramesPlacement;
  153.     constructor Create(AIDName: String);
  154.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  155.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  156.   end;
  157.   TspDataSkinAnimateControl = class(TspDataSkinFrameControl);
  158.   TspDataSkinSwitchControl = class(TspDataSkinFrameControl);
  159.   TspDataSkinFrameGauge = class(TspDataSkinFrameControl);
  160.   TspDataSkinFrameRegulator = class(TspDataSkinFrameControl)
  161.   public
  162.     Kind: TRegulatorKind;
  163.     constructor Create(AIDName: String);
  164.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  165.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  166.   end;
  167.   TspDataSkinCustomControl = class(TspDataSkinControl)
  168.   public
  169.     LTPoint, RTPoint, LBPoint, RBPoint: TPoint;
  170.     ClRect: TRect;
  171.     constructor Create(AIDName: String);
  172.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  173.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  174.   end;
  175.   TspDataSkinControlBar = class(TspDataSkinCustomControl)
  176.   public
  177.     ItemRect: TRect;
  178.     BGPictureIndex: Integer;
  179.     constructor Create(AIDName: String);
  180.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  181.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  182.   end;
  183.   TspDataSkinUpDownControl = class(TspDataSkinCustomControl)
  184.   public
  185.     UpButtonRect, ActiveUpButtonRect, DownUpButtonRect: TRect;
  186.     DownButtonRect, ActiveDownButtonRect, DownDownButtonRect: TRect;
  187.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  188.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  189.   end;
  190.   
  191.   TspDataSkinComboBox = class(TspDataSkinCustomControl)
  192.   public
  193.     //
  194.     SItemRect, FocusItemRect: TRect;
  195.     ItemLeftOffset, ItemRightOffset: Integer;
  196.     ItemTextRect: TRect;
  197.     FontName: String;
  198.     FontStyle: TFontStyles;
  199.     FontHeight: Integer;
  200.     FontColor, FocusFontColor: TColor;
  201.     ButtonRect,
  202.     ActiveButtonRect,
  203.     DownButtonRect: TRect;
  204.     UnEnabledButtonRect: TRect;
  205.     //
  206.     ListBoxName: String;
  207.     constructor Create(AIDName: String);
  208.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  209.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  210.   end;
  211.   TspDataSkinListBox = class(TspDataSkinCustomControl)
  212.   public
  213.     //
  214.     SItemRect, ActiveItemRect, FocusItemRect: TRect;
  215.     ItemLeftOffset, ItemRightOffset: Integer;
  216.     ItemTextRect: TRect;
  217.     FontName: String;
  218.     FontStyle: TFontStyles;
  219.     FontHeight: Integer;
  220.     FontColor, ActiveFontColor, FocusFontColor: TColor;
  221.     //
  222.     CaptionRect: TRect;
  223.     CaptionFontName: String;
  224.     CaptionFontStyle: TFontStyles;
  225.     CaptionFontHeight: Integer;
  226.     CaptionFontColor: TColor;
  227.     //
  228.     UpButtonRect, ActiveUpButtonRect, DownUpButtonRect: TRect;
  229.     DownButtonRect, ActiveDownButtonRect, DownDownButtonRect: TRect;
  230.     CheckButtonRect, ActiveCheckButtonRect, DownCheckButtonRect: TRect;
  231.     //
  232.     HScrollBarName: String;
  233.     VScrollBarName: String;
  234.     BothScrollBarName: String;
  235.     constructor Create(AIDName: String);
  236.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  237.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  238.   end;
  239.   TspDataSkinCheckListBox = class(TspDataSkinListBox)
  240.   public
  241.     UnCheckImageRect, CheckImageRect: TRect;
  242.     ItemCheckRect: TRect;
  243.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  244.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  245.   end;
  246.   TspDataSkinScrollBarControl = class(TspDataSkinCustomControl)
  247.   public
  248.     TrackArea: TRect;
  249.     UpButtonRect, ActiveUpButtonRect, DownUpButtonRect: TRect;
  250.     DownButtonRect, ActiveDownButtonRect, DownDownButtonRect: TRect;
  251.     ThumbRect, ActiveThumbRect, DownThumbRect: TRect;
  252.     ThumbOffset1, ThumbOffset2: Integer;
  253.     GlyphRect, ActiveGlyphRect, DownGlyphRect: TRect;
  254.     constructor Create(AIDName: String);
  255.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  256.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  257.  end;
  258.  TspDataSkinSpinEditControl = class(TspDataSkinCustomControl)
  259.  public
  260.    FontName: String;
  261.    FontStyle: TFontStyles;
  262.    FontHeight: Integer;
  263.    FontColor: TColor;
  264.    UpButtonRect, ActiveUpButtonRect, DownUpButtonRect: TRect;
  265.    DownButtonRect, ActiveDownButtonRect, DownDownButtonRect: TRect;
  266.    constructor Create(AIDName: String);
  267.    procedure LoadFromFile(IniFile: TCustomIniFile); override;
  268.    procedure SaveToFile(IniFile: TCustomIniFile); override;
  269.  end;
  270.   TspDataSkinEditControl = class(TspDataSkinCustomControl)
  271.   public
  272.     ActiveSkinRect: TRect;
  273.     FontName: String;
  274.     FontStyle: TFontStyles;
  275.     FontHeight: Integer;
  276.     FontColor, DisabledFontColor: TColor;
  277.     ActiveFontColor: TColor;
  278.     ButtonRect: TRect;
  279.     ActiveButtonRect: TRect;
  280.     DownButtonRect: TRect;
  281.     constructor Create(AIDName: String);
  282.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  283.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  284.   end;
  285.   TspDataSkinMemoControl = class(TspDataSkinEditControl)
  286.   public
  287.     BGColor: TColor;
  288.     ActiveBGColor: TColor;
  289.     constructor Create(AIDName: String);
  290.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  291.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  292.   end;
  293.   TspDataSkinStdLabelControl = class(TspDataSkinControl)
  294.   public
  295.     FontName: String;
  296.     FontStyle: TFontStyles;
  297.     FontHeight: Integer;
  298.     FontColor: TColor;
  299.     ActiveFontColor: TColor;
  300.     constructor Create(AIDName: String);
  301.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  302.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  303.   end;
  304.   TspDataSkinLabelControl = class(TspDataSkinCustomControl)
  305.   public
  306.     FontName: String;
  307.     FontStyle: TFontStyles;
  308.     FontHeight: Integer;
  309.     FontColor: TColor;
  310.     constructor Create(AIDName: String);
  311.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  312.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  313.   end;
  314.   TspDataSkinBitLabelControl = class(TspDataSkinCustomControl)
  315.   public
  316.     SkinTextRect: TRect;
  317.     SymbolWidth: Integer;
  318.     SymbolHeight: Integer;
  319.     Symbols: TStrings;
  320.     constructor Create(AIDName: String);
  321.     destructor Destroy; override;
  322.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  323.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  324.   end;
  325.   TspDataSkinTrackBarControl = class(TspDataSkinCustomControl)
  326.   public
  327.     TrackArea, ButtonRect, ActiveButtonRect: TRect;
  328.     Vertical: Boolean;
  329.     constructor Create(AIDName: String);
  330.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  331.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  332.   end;
  333.   TspDataSkinSplitterControl = class(TspDataSkinCustomControl);
  334.   
  335.   TspDataSkinGaugeControl = class(TspDataSkinCustomControl)
  336.   public
  337.     ProgressArea, ProgressRect: TRect;
  338.     Vertical: Boolean;
  339.     BeginOffset, EndOffset: Integer;
  340.     FontName: String;
  341.     FontStyle: TFontStyles;
  342.     FontHeight: Integer;
  343.     FontColor: TColor;
  344.     constructor Create(AIDName: String);
  345.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  346.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  347.   end;
  348.   TspDataSkinButtonControl = class(TspDataSkinCustomControl)
  349.   public
  350.     FontName: String;
  351.     FontStyle: TFontStyles;
  352.     FontHeight: Integer;
  353.     FontColor, ActiveFontColor, DownFontColor, DisabledFontColor: TColor;
  354.     Morphing: Boolean;
  355.     MorphKind: TMorphKind;
  356.     ActiveSkinRect, DownSkinRect, DisabledSkinRect: TRect;
  357.     constructor Create(AIDName: String);
  358.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  359.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  360.   end;
  361.   TspDataSkinMenuButtonControl = class(TspDataSkinButtonControl)
  362.   public
  363.     TrackButtonRect: TRect;
  364.     constructor Create(AIDName: String);
  365.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  366.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  367.   end;
  368.   TspDataSkinCheckRadioControl = class(TspDataSkinCustomControl)
  369.   public
  370.     FontName: String;
  371.     FontStyle: TFontStyles;
  372.     FontHeight: Integer;
  373.     FontColor, ActiveFontColor, UnEnabledFontColor: TColor;
  374.     Morphing: Boolean;
  375.     MorphKind: TMorphKind;
  376.     ActiveSkinRect: TRect;
  377.     CheckImageArea, TextArea, 
  378.     CheckImageRect, UnCheckImageRect: TRect;
  379.     ActiveCheckImageRect, ActiveUnCheckImageRect: TRect;
  380.     UnEnabledCheckImageRect, UnEnabledUnCheckImageRect: TRect;
  381.     FrameFontColor: TColor;
  382.     constructor Create(AIDName: String);
  383.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  384.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  385.   end;
  386.   TspDataSkinScrollBoxControl = class(TspDataSkinCustomControl)
  387.   public
  388.     BGPictureIndex: Integer;
  389.     constructor Create(AIDName: String);
  390.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  391.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  392.   end;
  393.   TspDataSkinPanelControl = class(TspDataSkinCustomControl)
  394.   public
  395.     CaptionRect: TRect;
  396.     RollUpMarkerRect: TRect;
  397.     RestoreMarkerRect: TRect;
  398.     Alignment: TAlignment;
  399.     FontName: String;
  400.     FontStyle: TFontStyles;
  401.     FontHeight: Integer;
  402.     FontColor: TColor;
  403.     BGPictureIndex: Integer;
  404.     CheckImageRect, UnCheckImageRect: TRect; 
  405.     constructor Create(AIDName: String);
  406.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  407.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  408.   end;
  409.   TspDataSkinExPanelControl = class(TspDataSkinCustomControl)
  410.   public
  411.     //
  412.     RollHSkinRect, RollVSkinRect: TRect;
  413.     RollLeftOffset, RollRightOffset,
  414.     RollTopOffset, RollBottomOffset: Integer;
  415.     RollVCaptionRect, RollHCaptionRect: TRect;
  416.     //
  417.     CloseButtonRect, CloseButtonActiveRect, CloseButtonDownRect: TRect;
  418.     HRollButtonRect, HRollButtonActiveRect, HRollButtonDownRect: TRect;
  419.     HRestoreButtonRect, HRestoreButtonActiveRect, HRestoreButtonDownRect: TRect;
  420.     VRollButtonRect, VRollButtonActiveRect, VRollButtonDownRect: TRect;
  421.     VRestoreButtonRect, VRestoreButtonActiveRect, VRestoreButtonDownRect: TRect;
  422.     //
  423.     CaptionRect: TRect;
  424.     FontName: String;
  425.     FontStyle: TFontStyles;
  426.     FontHeight: Integer;
  427.     FontColor: TColor;
  428.     constructor Create(AIDName: String);
  429.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  430.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  431.   end;
  432.   
  433.   TspDataSkinArea = class(TObject)
  434.   public
  435.     IDName: String;
  436.     AreaRect: TRect;
  437.     constructor Create(AIDName: String; ARect: TRect);
  438.   end;
  439.   TspDataSkinObject = class(TObject)
  440.   public
  441.     IDName: String;
  442.     Hint: String;
  443.     SkinRectInAPicture: Boolean;
  444.     SkinRect: TRect;
  445.     ActiveSkinRect: TRect;
  446.     Morphing: Boolean;
  447.     MorphKind: TMorphKind;
  448.     ActivePictureIndex: Integer;
  449.     CursorIndex: Integer;
  450.     RollUp: Boolean;
  451.     constructor Create(AIDName: String);
  452.     procedure LoadFromFile(IniFile: TCustomIniFile); virtual;
  453.     procedure SaveToFile(IniFile: TCustomIniFile); virtual;
  454.   end;
  455.   TspDataUserObject = class(TspDataSkinObject)
  456.   public
  457.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  458.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  459.   end;
  460.   TspDataSkinBitLabel = class(TspDataSkinObject)
  461.   public
  462.     Symbols: TStrings;
  463.     TextValue: String;
  464.     SymbolWidth, SymbolHeight: Integer;
  465.     constructor Create(AIDName: String);
  466.     destructor Destroy; override;
  467.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  468.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  469.   end;
  470.   TspDataSkinAnimate = class(TspDataSkinObject)
  471.   public
  472.     CountFrames: Integer;
  473.     Cycle: Boolean;
  474.     ButtonStyle: Boolean;
  475.     TimerInterval: Integer;
  476.     Command: TStdCommand;
  477.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  478.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  479.   end;
  480.   TspDataSkinLabel = class(TspDataSkinObject)
  481.   public
  482.     FontName: String;
  483.     FontHeight: Integer;
  484.     FontStyle: TFontStyles;
  485.     FontColor, ActiveFontColor: TColor;
  486.     Alignment: TAlignment;
  487.     TextValue: String;
  488.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  489.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  490.   end;
  491.   TspDataSkinSwitch = class(TspDataSkinObject);
  492.   TGaugeKind = (gkHorizontal, gkVertical);
  493.   TspDataSkinGauge = class(TspDataSkinObject)
  494.   public
  495.     MinValue, MaxValue: Integer;
  496.     Kind: TGaugeKind;
  497.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  498.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  499.   end;
  500.   TspDataSkinFrameRegulatorObject = class(TspDataSkinObject)
  501.   public
  502.     MinValue, MaxValue: Integer;
  503.     CountFrames: Integer;
  504.     FramesPlacement: TFramesPlacement;
  505.     Kind: TRegulatorKind;
  506.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  507.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  508.   end;
  509.   TspDataSkinFrameGaugeObject = class(TspDataSkinObject)
  510.   public
  511.     MinValue, MaxValue: Integer;
  512.     CountFrames: Integer;
  513.     FramesPlacement: TFramesPlacement;
  514.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  515.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  516.   end;
  517.   TTrackKind = (tkHorizontal, tkVertical);
  518.   TspDataSkinTrackBar = class(TspDataSkinObject)
  519.   public
  520.     ButtonRect, ActiveButtonRect: TRect;
  521.     BeginPoint, EndPoint: TPoint;
  522.     MinValue, MaxValue: Integer;
  523.     MouseDownChangeValue: Boolean;
  524.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  525.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  526.   end;
  527.   TspDataSkinButton = class(TspDataSkinObject)
  528.   public
  529.     GroupIndex: Integer;
  530.     DownRect: TRect;
  531.     DisableSkinRect: TRect;
  532.     constructor Create(AIDName: String);
  533.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  534.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  535.   end;
  536.   TspDataSkinStdButton = class(TspDataSkinButton)
  537.   public
  538.     Command: TStdCommand;
  539.     RestoreRect: TRect;
  540.     RestoreActiveRect: TRect;
  541.     RestoreDownRect: TRect;
  542.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  543.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  544.   end;
  545.   TspDataSkinMainMenuBarButton = class(TspDataSkinStdButton);
  546.   TspDataSkinPopupWindow = class(TObject)
  547.   public
  548.     WindowPictureIndex: Integer;
  549.     MaskPictureIndex: Integer;
  550.     LTPoint, RTPoint, LBPoint, RBPoint: TPoint;
  551.     ItemsRect: TRect;
  552.     ScrollMarkerColor, ScrollMarkerActiveColor: Integer;
  553.     CursorIndex: Integer;
  554.     constructor Create;
  555.     procedure LoadFromFile(IniFile: TCustomIniFile);
  556.     procedure SaveToFile(IniFile: TCustomIniFile);
  557.   end;
  558.   TspDataSkinHintWindow = class(TObject)
  559.   public
  560.     WindowPictureIndex: Integer;
  561.     MaskPictureIndex: Integer;
  562.     LTPoint, RTPoint, LBPoint, RBPoint: TPoint;
  563.     ClRect: TRect;
  564.     FontName: String;
  565.     FontStyle: TFontStyles;
  566.     FontHeight: Integer;
  567.     FontColor: TColor;
  568.     constructor Create;
  569.     procedure LoadFromFile(IniFile: TCustomIniFile);
  570.     procedure SaveToFile(IniFile: TCustomIniFile);
  571.   end;
  572.   TspDataSkinMenuItem = class(TspDataSkinObject)
  573.   public
  574.     DividerRect: TRect;
  575.     DividerLO, DividerRO: Integer;
  576.     ItemLO, ItemRO: Integer;
  577.     FontName: String;
  578.     FontHeight: Integer;
  579.     FontStyle: TFontStyles;
  580.     UnEnabledFontColor, FontColor, ActiveFontColor: TColor;
  581.     TextRct: TRect;
  582.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  583.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  584.   end;
  585.   TspDataSkinMainMenuItem = class(TspDataSkinObject)
  586.   public
  587.     DownRect: TRect;
  588.     FontName: String;
  589.     FontHeight: Integer;
  590.     FontStyle: TFontStyles;
  591.     FontColor, ActiveFontColor, DownFontColor, UnEnabledFontColor: TColor;
  592.     TextRct: TRect;
  593.     ItemLO, ItemRO: Integer;
  594.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  595.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  596.   end;
  597.   TspDataSkinMainMenuBarItem = class(TspDataSkinMainMenuItem);
  598.   TspDataSkinCaption = class(TspDataSkinObject)
  599.   public
  600.     FontName: String;
  601.     FontHeight: Integer;
  602.     FontStyle: TFontStyles;
  603.     FontColor, ActiveFontColor: TColor;
  604.     ShadowColor, ActiveShadowColor: TColor;
  605.     Shadow: Boolean;
  606.     Alignment: TAlignment;
  607.     TextRct: TRect;
  608.     DefaultCaption: Boolean;
  609.     FrameRect, ActiveFrameRect: TRect;
  610.     FrameLeftOffset, FrameRightOffset: Integer;
  611.     FrameTextRect: TRect;
  612.     procedure LoadFromFile(IniFile: TCustomIniFile); override;
  613.     procedure SaveToFile(IniFile: TCustomIniFile); override;
  614.   end;
  615.   TspCompressedStoredSkin = class(TComponent)
  616.   private
  617.     FFileName: String;
  618.     FCompressedStream: TMemoryStream;
  619.     procedure SetFileName(Value: String);
  620.     function GetEmpty: Boolean;
  621.   protected
  622.     procedure ReadData(Reader: TStream);
  623.     procedure WriteData(Writer: TStream);
  624.     procedure DefineProperties(Filer: TFiler); override;
  625.   public
  626.     constructor Create(AOwner: TComponent); override;
  627.     destructor Destroy; override;
  628.     procedure LoadFromIniFile(AFileName: String);
  629.     procedure LoadFromCompressFile(AFileName: String);
  630.     procedure SaveToCompressFile(AFileName: String);
  631.     procedure DeCompressToStream(var S: TMemoryStream);
  632.     property Empty: Boolean read GetEmpty;
  633.   published
  634.     property FileName: String read FFileName write SetFileName;
  635.   end;
  636.   TspStoredSkin = class(TComponent)
  637.   protected
  638.     FFileName: String;
  639.     FIniStrings: TStrings;
  640.     procedure ClearBitMaps;
  641.   public
  642.     FPicture, FMask: TBitMap;
  643.     FRollUpPicture, FRollUpMask: TBitMap;
  644.     FActivePictures: TList;
  645.     procedure SetFileName(Value: String);
  646.     procedure SetIniStrings(Value: TStrings);
  647.     constructor Create(AOwner: TComponent); override;
  648.     destructor Destroy; override;
  649.     procedure LoadFromFile(AFileName: String);
  650.     procedure ReadData(Reader: TStream);
  651.     procedure WriteData(Writer: TStream);
  652.     procedure DefineProperties(Filer: TFiler); override;
  653.   published
  654.     property FileName: String read FFileName write SetFileName;
  655.     property IniStrings: TStrings read FIniStrings write SetIniStrings;
  656.   end;
  657.   TspSkinData = class(TComponent)
  658.   protected
  659.     FStoredSkin: TspStoredSkin;
  660.     FCompressedStoredSkin: TspCompressedStoredSkin;
  661.     Names: TStrings;
  662.     procedure SetCompressedStoredSkin(Value: TspCompressedStoredSkin);
  663.     procedure Notification(AComponent: TComponent;
  664.                            Operation: TOperation); override;
  665.     procedure SetStoredSkin(Value: TspStoredSkin);
  666.     procedure LoadNames;
  667.     procedure EraseSections(F: TCustomIniFile);
  668.     procedure WriteFormInfo(F: TCustomIniFile);
  669.     procedure ReadFormInfo(F: TCustomIniFile);
  670.     procedure WriteAreas(F: TCustomIniFile);
  671.     procedure ReadAreas(F: TCustomIniFile);
  672.     procedure WriteObjects(F: TCustomIniFile);
  673.     procedure ReadObjects(F: TCustomIniFile);
  674.     procedure WriteCtrls(F: TCustomIniFile);
  675.     procedure ReadCtrls(F: TCustomIniFile);
  676.     procedure WriteActivePictures(F: TCustomIniFile);
  677.     procedure WriteCursors(F: TCustomIniFile);
  678.     procedure ReadActivePictures(F: TCustomIniFile; Path: String);
  679.     procedure ReadCursors(F: TCustomIniFile; Path: String);
  680.     procedure GetObjectTypeName(S: String; var AName, AType: String);
  681.     procedure GetAreaNameRect(S: String; var AName: String; var ARect: TRect);
  682.   public
  683.     //
  684.     ButtonsRect, CaptionRect: TRect;
  685.     ButtonsOffset: Integer;
  686.     CapButtonsInLeft: Boolean;
  687.     //
  688.     AutoRenderingInActiveImage: Boolean;
  689.     InActiveEffect: TspInActiveEffect;
  690.     StartCursorIndex: Integer;
  691.     CursorIndex: Integer;
  692.     BuildMode: Boolean;
  693.     PopupWindow: TspDataSkinPopupWindow;
  694.     HintWindow: TspDataSkinHintWindow;
  695.     Empty: Boolean;
  696.     FPicture, FMask: TBitMap;
  697.     FRollUpPicture, FRollUpMask: TBitMap;
  698.     FActivePictures: TList;
  699.     FPictureName, FMaskName: String;
  700.     FRollUpPictureName, FRollUpMaskName: String;
  701.     FActivePicturesNames: TStrings;
  702.     FCursorsNames: TStrings;
  703.     ObjectList: TList;
  704.     AreaList: TList;
  705.     CtrlList: TList;
  706.     LTPoint, RTPoint, LBPoint, RBPoint: TPoint;
  707.     BGPictureIndex: Integer;
  708.     MainMenuRect: TRect;
  709.     IconRect: TRect;
  710.     MainMenuPopupUp: Boolean;
  711.     MaskRectArea: TRect;
  712.     HitTestLTPoint,
  713.     HitTestRTPoint,
  714.     HitTestLBPoint,
  715.     HitTestRBPoint: TPoint;
  716.     ClRect: TRect;
  717.     BorderW: Integer;
  718.     RollUpLeftPoint, RollUpRightPoint: TPoint;
  719.     SkinName: String;
  720.     SkinAuthor: String;
  721.     AuthorURL: String;
  722.     AuthorEmail: String;
  723.     SkinComments: String;
  724.     procedure LoadCompressedStoredSkin(AStoredSkin: TspCompressedStoredSkin);
  725.     procedure AddBitMap(FileName: String);
  726.     procedure DeleteBitMap(Index: Integer);
  727.     procedure AddSkinArea(AName: String; ARect: TRect);
  728.     procedure SendSkinDataMessage(M: LongInt);
  729.     function GetIndex(AIDName: String): Integer;
  730.     function GetControlIndex(AIDName: String): Integer;
  731.     function GetAreaIndex(AIDName: String): Integer;
  732.     procedure ClearObjects;
  733.     procedure ClearAll;
  734.     constructor Create(AOwner: TComponent); override;
  735.     destructor Destroy; override;
  736.     procedure LoadFromFile(FileName: String);
  737.     procedure SaveToFile(FileName: String);
  738.     procedure LoadStoredSkin(AStoredSkin: TspStoredSkin);
  739.     procedure ClearSkin;
  740.   published
  741.     property StoredSkin: TspStoredSkin read FStoredSkin write SetStoredSkin;
  742.     property CompressedStoredSkin: TspCompressedStoredSkin
  743.       read FCompressedStoredSkin write SetCompressedStoredSkin;
  744.   end;
  745.   function ReadInActiveEffect(IniFile: TCustomIniFile;
  746.                               Section: String; Ident: String): TspInActiveEffect;
  747.   procedure WriteInActiveEffect(IniFile: TCustomIniFile;
  748.                                 Section: String; Ident: String;
  749.                                 IE: TspInActiveEffect);
  750.   function ReadMorphKind(IniFile: TCustomIniFile;
  751.                      Section: String; Ident: String): TMorphKind;
  752.   procedure WriteMorphKind(IniFile: TCustomIniFile;
  753.                        Section: String; Ident: String; MK: TMorphKind);
  754. // Internal messages
  755. const
  756.   WM_BEFORECHANGESKINDATA = WM_USER + 201;
  757.   WM_CHANGESKINDATA = WM_USER + 202;
  758.   WM_AFTERCHANGESKINDATA = WM_USER + 203;
  759.   
  760. implementation
  761. function CheckSkinFile(F: TCustomIniFile): Boolean;
  762. begin
  763.   Result := F.SectionExists('VERSION') and F.SectionExists('PICTURES') and
  764.             F.SectionExists('FORMINFO') and F.SectionExists('SKINOBJECTS') and
  765.             F.SectionExists('SKINCONTROLS');
  766. end;
  767. function ReadMorphKind;
  768. var
  769.   S: String;
  770. begin
  771.   S := IniFile.ReadString(Section, Ident, 'mkdefault');
  772.   if S = 'mkdefault'
  773.   then Result := mkDefault
  774.   else
  775.   if S = 'mkgradient'
  776.   then Result := mkGradient
  777.   else
  778.   if S = 'mkleftgradient'
  779.   then Result := mkLeftGradient
  780.   else
  781.   if S = 'mkrightgradient'
  782.   then Result := mkRightGradient
  783.   else
  784.   if S = 'mkleftslide'
  785.   then Result := mkLeftSlide
  786.   else
  787.   if S = 'mkrightslide'
  788.   then Result := mkRightSlide
  789.   else
  790.   if S = 'mkpush'
  791.   then Result := mkPush;
  792. end;
  793. procedure WriteMorphKind;
  794. var
  795.   S: String;
  796. begin
  797.   case MK of
  798.     mkDefault: S := 'mkdefault';
  799.     mkGradient: S := 'mkgradient';
  800.     mkLeftGradient: S := 'mkleftgradient';
  801.     mkRightGradient: S := 'mkrightgradient';
  802.     mkLeftSlide: S := 'mkleftslide';
  803.     mkRightSlide: S := 'mkrightslide';
  804.     mkPush: S := 'mkpush';
  805.   end;
  806.   IniFile.WriteString(Section, Ident, S);
  807. end;
  808. procedure WriteInActiveEffect;
  809. var
  810.   S: String;
  811. begin
  812.   case IE of
  813.     ieBrightness: S := 'iebrightness';
  814.     ieDarkness: S := 'iedarkness';
  815.     ieGrayScale: S := 'iegrayscale';
  816.     ieNoise: S := 'ienoise';
  817.     ieSplitBlur: S := 'iesplitblur';
  818.     ieInvert: S := 'ieinvert';
  819.   end;
  820.   IniFile.WriteString(Section, Ident, S);
  821. end;
  822. function ReadInActiveEffect;
  823. var
  824.   S: String;
  825. begin
  826.   S := IniFile.ReadString(Section, Ident, 'iebrightness');
  827.   if S = 'iebrightness'
  828.   then Result := ieBrightness
  829.   else
  830.   if S = 'iedarkness'
  831.   then Result := ieDarkness
  832.   else
  833.   if S = 'iegrayscale'
  834.   then Result := ieGrayScale
  835.   else
  836.   if S = 'ienoise'
  837.   then Result := ieNoise
  838.   else
  839.   if S = 'iesplitblur'
  840.   then Result := ieSplitBlur
  841.   else
  842.   if S = 'ieinvert'
  843.   then Result := ieInvert;
  844. end;
  845. constructor TspDataSkinControl.Create;
  846. begin
  847.   IDName := AIDName;
  848.   PictureIndex := -1;
  849.   MaskPictureIndex := -1;
  850.   SkinRect := Rect(0, 0, 0, 0);
  851.   CursorIndex := -1;
  852. end;
  853. procedure TspDataSkinControl.LoadFromFile;
  854. begin
  855.   PictureIndex := IniFile.ReadInteger(IDName, 'pictureindex', -1);
  856.   MaskPictureIndex := IniFile.ReadInteger(IDName, 'maskpictureindex', -1);
  857.   CursorIndex := IniFile.ReadInteger(IDName, 'cursorindex', -1);
  858.   SkinRect := ReadRect(IniFile, IDName, 'skinrect');
  859. end;
  860. procedure TspDataSkinControl.SaveToFile;
  861. begin
  862.   IniFile.EraseSection(IDName);
  863.   IniFile.WriteInteger(IDName, 'pictureindex', PictureIndex);
  864.   IniFile.WriteInteger(IDName, 'maskpictureindex', MaskPictureIndex);
  865.   IniFile.WriteInteger(IDName, 'cursorindex', CursorIndex);
  866.   WriteRect(IniFile, IDName, 'skinrect', SkinRect);
  867. end;
  868. constructor TspDataSkinMainMenuBar.Create;
  869. begin
  870.   inherited;
  871.   TrackMarkColor := 0;
  872.   TrackMarkActiveColor := 0;
  873. end;
  874. procedure TspDataSkinMainMenuBar.LoadFromFile;
  875. begin
  876.   inherited;
  877.   ItemsRect := ReadRect(IniFile, IDName, 'itemsrect');
  878.   MenuBarItem := IniFile.ReadString(IDName, 'menubaritem', '');
  879.   CloseButton := IniFile.ReadString(IDName, 'closebutton', '');
  880.   MinButton := IniFile.ReadString(IDName, 'minbutton', '');
  881.   MaxButton := IniFile.ReadString(IDName, 'maxbutton', '');
  882.   SysMenuButton := IniFile.ReadString(IDName, 'sysmenubutton', '');
  883.   TrackMarkColor := IniFile.ReadInteger(IDName, 'trackmarkcolor', 0);
  884.   TrackMarkActiveColor := IniFile.ReadInteger(IDName, 'trackmarkactivecolor', 0);
  885. end;
  886. procedure TspDataSkinMainMenuBar.SaveToFile;
  887. begin
  888.   inherited;
  889.   WriteRect(IniFile, IDName, 'itemsrect', ItemsRect);
  890.   IniFile.WriteString(IDName, 'menubaritem', MenuBarItem);
  891.   IniFile.WriteString(IDName, 'closebutton', CloseButton);
  892.   IniFile.WriteString(IDName, 'minbutton', MinButton);
  893.   IniFile.WriteString(IDName, 'maxbutton', MaxButton);
  894.   IniFile.WriteString(IDName, 'sysmenubutton', SysMenuButton);
  895.   IniFile.WriteInteger(IDName, 'trackmarkcolor', TrackMarkColor);
  896.   IniFile.WriteInteger(IDName, 'trackmarkactivecolor', TrackMarkActiveColor);
  897. end;
  898. procedure TspDataSkinUpDownControl.LoadFromFile(IniFile: TCustomIniFile);
  899. begin
  900.   inherited;
  901.   UpButtonRect := ReadRect(IniFile, IDName, 'upbuttonrect');
  902.   ActiveUpButtonRect := ReadRect(IniFile, IDName, 'activeupbuttonrect');
  903.   DownUpButtonRect := ReadRect(IniFile, IDName, 'downupbuttonrect');
  904.   DownButtonRect := ReadRect(IniFile, IDName, 'downbuttonrect');
  905.   ActiveDownButtonRect := ReadRect(IniFile, IDName, 'activedownbuttonrect');
  906.   DownDownButtonRect := ReadRect(IniFile, IDName, 'downdownbuttonrect');
  907.   LTPoint := Point(0, 0);
  908.   RTPoint := Point(0, 0);
  909.   LBPoint := Point(0, 0);
  910.   RBPoint := Point(0, 0);
  911.   ClRect := NullRect;
  912. end;
  913. procedure TspDataSkinUpDownControl.SaveToFile(IniFile: TCustomIniFile);
  914. begin
  915.   LTPoint := Point(0, 0);
  916.   RTPoint := Point(0, 0);
  917.   LBPoint := Point(0, 0);
  918.   RBPoint := Point(0, 0);
  919.   ClRect := NullRect;
  920.   inherited;
  921.   WriteRect(IniFile, IDName, 'upbuttonrect', UpButtonRect);
  922.   WriteRect(IniFile, IDName, 'activeupbuttonrect', ActiveUpButtonRect);
  923.   WriteRect(IniFile, IDName, 'downupbuttonrect', DownUpButtonRect);
  924.   WriteRect(IniFile, IDName, 'downbuttonrect', DownButtonRect);
  925.   WriteRect(IniFile, IDName, 'activedownbuttonrect', ActiveDownButtonRect);
  926.   WriteRect(IniFile, IDName, 'downdownbuttonrect', DownDownButtonRect);
  927. end;
  928. constructor TspDataSkinListBox.Create(AIDName: String);
  929. begin
  930.   inherited;
  931.   FontName := 'Arial';
  932.   FontStyle := [];
  933.   FontHeight := 14;
  934.   FontColor := 0;
  935.   CaptionFontName := 'Arial';
  936.   CaptionFontStyle := [];
  937.   CaptionFontHeight := 14;
  938.   CaptionFontColor := 0;
  939.   HScrollBarName := '';
  940.   VScrollBarName := '';
  941.   BothScrollBarName := '';
  942. end;
  943. procedure TspDataSkinListBox.LoadFromFile;
  944. begin
  945.   inherited;
  946.   //
  947.   SItemRect := ReadRect(IniFile, IDName, 'itemrect');
  948.   ActiveItemRect := ReadRect(IniFile, IDName, 'activeitemrect');
  949.   FocusItemRect := ReadRect(IniFile, IDName, 'focusitemrect');
  950.   ItemLeftOffset := IniFile.ReadInteger(IDName, 'itemleftoffset', 0);
  951.   ItemRightOffset := IniFile.ReadInteger(IDName, 'itemrightoffset', 0);
  952.   ItemTextRect := ReadRect(IniFile, IDName, 'itemtextrect');
  953.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  954.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  955.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  956.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  957.   ActiveFontColor := IniFile.ReadInteger(IDName, 'activefontcolor', 0);
  958.   FocusFontColor := IniFile.ReadInteger(IDName, 'focusfontcolor', 0);
  959.   //
  960.   CaptionRect := ReadRect(IniFile, IDName, 'captionrect');
  961.   CaptionFontName := IniFile.ReadString(IDName, 'captionfontname', 'Arial');
  962.   CaptionFontHeight := IniFile.ReadInteger(IDName, 'captionfontheight', 14);
  963.   CaptionFontStyle := ReadFontStyles(IniFile, IDName, 'captionfontstyle');
  964.   CaptionFontColor := IniFile.ReadInteger(IDName, 'captionfontcolor', 0);
  965.   //
  966.   UpButtonRect := ReadRect(IniFile, IDName, 'upbuttonrect');
  967.   ActiveUpButtonRect := ReadRect(IniFile, IDName, 'activeupbuttonrect');
  968.   DownUpButtonRect := ReadRect(IniFile, IDName, 'downupbuttonrect');
  969.   DownButtonRect := ReadRect(IniFile, IDName, 'downbuttonrect');
  970.   ActiveDownButtonRect := ReadRect(IniFile, IDName, 'activedownbuttonrect');
  971.   DownDownButtonRect := ReadRect(IniFile, IDName, 'downdownbuttonrect');
  972.   CheckButtonRect := ReadRect(IniFile, IDName, 'checkbuttonrect');
  973.   ActiveCheckButtonRect := ReadRect(IniFile, IDName, 'activecheckbuttonrect');
  974.   DownCheckButtonRect := ReadRect(IniFile, IDName, 'downcheckbuttonrect');
  975.   //
  976.   VScrollBarName := IniFile.ReadString(IDName, 'vscrollbarname', 'vscrollbar');
  977.   HScrollBarName := IniFile.ReadString(IDName, 'hscrollbarname', 'hscrollbar');
  978.   BothScrollBarName := IniFile.ReadString(IDName, 'bothhscrollbarname', 'bothhscrollbar');
  979. end;
  980. procedure TspDataSkinListBox.SaveToFile;
  981. begin
  982.   inherited;
  983.   WriteRect(IniFile, IDName, 'itemrect', SItemRect);
  984.   WriteRect(IniFile, IDName, 'activeitemrect', ActiveItemRect);
  985.   WriteRect(IniFile, IDName, 'focusitemrect', FocusItemRect);
  986.   IniFile.WriteInteger(IDName, 'itemleftoffset', ItemLeftOffset);
  987.   IniFile.WriteInteger(IDName, 'itemrightoffset', ItemRightOffset);
  988.   WriteRect(IniFile, IDName, 'itemtextrect', ItemTextRect);
  989.   IniFile.WriteString(IDName, 'fontname', FontName);
  990.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  991.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  992.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  993.   IniFile.WriteInteger(IDName, 'activefontcolor', ActiveFontColor);
  994.   IniFile.WriteInteger(IDName, 'focusfontcolor', FocusFontColor);
  995.   //
  996.   WriteRect(IniFile, IDName, 'captionrect', CaptionRect);
  997.   IniFile.WriteString(IDName, 'captionfontname', CaptionFontName);
  998.   IniFile.WriteInteger(IDName, 'captionfontheight', CaptionFontHeight);
  999.   WriteFontStyles(IniFile, IDName, 'captionfontstyle', CaptionFontStyle);
  1000.   IniFile.WriteInteger(IDName, 'captionfontcolor', CaptionFontColor);
  1001.   //
  1002.   WriteRect(IniFile, IDName, 'upbuttonrect', UpButtonRect);
  1003.   WriteRect(IniFile, IDName, 'activeupbuttonrect', ActiveUpButtonRect);
  1004.   WriteRect(IniFile, IDName, 'downupbuttonrect', DownUpButtonRect);
  1005.   WriteRect(IniFile, IDName, 'downbuttonrect', DownButtonRect);
  1006.   WriteRect(IniFile, IDName, 'activedownbuttonrect', ActiveDownButtonRect);
  1007.   WriteRect(IniFile, IDName, 'downdownbuttonrect', DownDownButtonRect);
  1008.   WriteRect(IniFile, IDName, 'checkbuttonrect', CheckButtonRect);
  1009.   WriteRect(IniFile, IDName, 'activecheckbuttonrect', ActiveCheckButtonRect);
  1010.   WriteRect(IniFile, IDName, 'downcheckbuttonrect', DownCheckButtonRect);
  1011.   //
  1012.   IniFile.WriteString(IDName, 'vscrollbarname', VScrollBarName);
  1013.   IniFile.WriteString(IDName, 'hscrollbarname', HScrollBarName);
  1014.   IniFile.WriteString(IDName, 'bothhscrollbarname', BothScrollBarName);
  1015. end;
  1016. procedure TspDataSkinCheckListBox.LoadFromFile;
  1017. begin
  1018.   inherited;
  1019.   CheckImageRect := ReadRect(IniFile, IDName, 'checkimagerect');
  1020.   ItemCheckRect := ReadRect(IniFile, IDName, 'itemcheckrect');
  1021.   UnCheckImageRect := ReadRect(IniFile, IDName, 'uncheckimagerect');
  1022. end;
  1023. procedure TspDataSkinCheckListBox.SaveToFile;
  1024. begin
  1025.   inherited;
  1026.   WriteRect(IniFile, IDName, 'itemcheckrect', ItemCheckRect);
  1027.   WriteRect(IniFile, IDName, 'uncheckimagerect', UnCheckImageRect);
  1028.   WriteRect(IniFile, IDName, 'checkimagerect', CheckImageRect);
  1029. end;
  1030. constructor TspDataSkinComboBox.Create(AIDName: String);
  1031. begin
  1032.   inherited;
  1033.   FontName := 'Arial';
  1034.   FontStyle := [];
  1035.   FontHeight := 14;
  1036.   FontColor := 0;
  1037.   FocusFontColor := 0;
  1038.   ListBoxName := '';
  1039. end;
  1040. procedure TspDataSkinComboBox.LoadFromFile;
  1041. begin
  1042.   inherited;
  1043.   //
  1044.   SItemRect := ReadRect(IniFile, IDName, 'itemrect');
  1045.   FocusItemRect := ReadRect(IniFile, IDName, 'focusitemrect');
  1046.   ItemLeftOffset := IniFile.ReadInteger(IDName, 'itemleftoffset', 0);
  1047.   ItemRightOffset := IniFile.ReadInteger(IDName, 'itemrightoffset', 0);
  1048.   ItemTextRect := ReadRect(IniFile, IDName, 'itemtextrect');
  1049.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1050.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1051.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1052.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1053.   FocusFontColor := IniFile.ReadInteger(IDName, 'focusfontcolor', 0);
  1054.   //
  1055.   ListBoxName := IniFile.ReadString(IDName, 'listboxname', '');
  1056.   //
  1057.   ButtonRect := ReadRect(IniFile, IDName, 'buttonrect');
  1058.   ActiveButtonRect := ReadRect(IniFile, IDName, 'activebuttonrect');
  1059.   DownButtonRect := ReadRect(IniFile, IDName, 'downbuttonrect');
  1060.   UnEnabledButtonRect := ReadRect(IniFile, IDName, 'unenabledbuttonrect');
  1061.   //
  1062. end;
  1063. procedure TspDataSkinComboBox.SaveToFile;
  1064. begin
  1065.   inherited;
  1066.   WriteRect(IniFile, IDName, 'itemrect', SItemRect);
  1067.   WriteRect(IniFile, IDName, 'focusitemrect', FocusItemRect);
  1068.   IniFile.WriteInteger(IDName, 'itemleftoffset', ItemLeftOffset);
  1069.   IniFile.WriteInteger(IDName, 'itemrightoffset', ItemRightOffset);
  1070.   WriteRect(IniFile, IDName, 'itemtextrect', ItemTextRect);
  1071.   IniFile.WriteString(IDName, 'fontname', FontName);
  1072.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1073.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1074.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1075.   IniFile.WriteInteger(IDName, 'focusfontcolor', FocusFontColor);
  1076.   //
  1077.   WriteRect(IniFile, IDName, 'buttonrect', ButtonRect);
  1078.   WriteRect(IniFile, IDName, 'activebuttonrect', ActiveButtonRect);
  1079.   WriteRect(IniFile, IDName, 'downbuttonrect', DownButtonRect);
  1080.   WriteRect(IniFile, IDName, 'unenabledbuttonrect', UnEnabledButtonRect);
  1081.   //
  1082.   IniFile.WriteString(IDName, 'listboxname', ListBoxName);
  1083. end;
  1084. constructor TspDataSkinControlBar.Create(AIDName: String);
  1085. begin
  1086.   inherited;
  1087.   BGPictureIndex := -1;
  1088. end;
  1089. procedure TspDataSkinControlBar.LoadFromFile;
  1090. begin
  1091.   inherited;
  1092.   ItemRect := ReadRect(IniFile, IDName, 'itemrect');
  1093.   BGPictureIndex := IniFile.ReadInteger(IDName, 'bgpictureindex', -1);
  1094. end;
  1095. procedure TspDataSkinControlBar.SaveToFile;
  1096. begin
  1097.   inherited;
  1098.   WriteRect(IniFile, IDName, 'itemrect', ItemRect);
  1099.   IniFile.WriteInteger(IDName, 'bgpictureindex', BGPictureIndex);
  1100. end;
  1101. constructor TspDataSkinTreeView.Create;
  1102. begin
  1103.   inherited;
  1104.   FontName := 'Arial';
  1105.   FontStyle := [];
  1106.   FontHeight := 14;
  1107.   FontColor := 0;
  1108.   BGColor := clWhite;
  1109. end;
  1110. procedure TspDataSkinTreeView.LoadFromFile;
  1111. begin
  1112.   inherited;
  1113.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1114.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1115.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1116.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1117.   BGColor := IniFile.ReadInteger(IDName, 'bgcolor', 0);
  1118. end;
  1119. procedure TspDataSkinTreeView.SaveToFile;
  1120. begin
  1121.   inherited;
  1122.   IniFile.WriteString(IDName, 'fontname', FontName);
  1123.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1124.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1125.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1126.   IniFile.WriteInteger(IDName, 'bgcolor', BGColor);
  1127. end;
  1128. constructor TspDataSkinListView.Create;
  1129. begin
  1130.   inherited;
  1131.   FontName := 'Arial';
  1132.   FontStyle := [];
  1133.   FontHeight := 14;
  1134.   FontColor := 0;
  1135.   BGColor := clWhite;
  1136. end;
  1137. procedure TspDataSkinListView.LoadFromFile;
  1138. begin
  1139.   inherited;
  1140.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1141.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1142.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1143.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1144.   BGColor := IniFile.ReadInteger(IDName, 'bgcolor', 0);
  1145. end;
  1146. procedure TspDataSkinListView.SaveToFile;
  1147. begin
  1148.   inherited;
  1149.   IniFile.WriteString(IDName, 'fontname', FontName);
  1150.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1151.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1152.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1153.   IniFile.WriteInteger(IDName, 'bgcolor', BGColor);
  1154. end;
  1155. constructor TspDataSkinRichEdit.Create;
  1156. begin
  1157.   inherited;
  1158.   FontName := 'Arial';
  1159.   FontStyle := [];
  1160.   FontHeight := 14;
  1161.   FontColor := 0;
  1162.   BGColor := clWhite;
  1163. end;
  1164. procedure TspDataSkinRichEdit.LoadFromFile;
  1165. begin
  1166.   inherited;
  1167.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1168.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1169.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1170.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1171.   BGColor := IniFile.ReadInteger(IDName, 'bgcolor', 0);
  1172. end;
  1173. procedure TspDataSkinRichEdit.SaveToFile;
  1174. begin
  1175.   inherited;
  1176.   IniFile.WriteString(IDName, 'fontname', FontName);
  1177.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1178.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1179.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1180.   IniFile.WriteInteger(IDName, 'bgcolor', BGColor);
  1181. end;
  1182. constructor TspDataSkinSlider.Create;
  1183. begin
  1184.   inherited;
  1185.   BGColor := 0;
  1186. end;
  1187. procedure TspDataSkinSlider.LoadFromFile;
  1188. begin
  1189.   inherited;
  1190.   BGColor := IniFile.ReadInteger(IDName, 'bgcolor', 0);
  1191.   HRulerRect := ReadRect(IniFile, IDName, 'hrulerrect');
  1192.   HThumbRect := ReadRect(IniFile, IDName, 'hthumbrect');
  1193.   VRulerRect := ReadRect(IniFile, IDName, 'vrulerrect');
  1194.   VThumbRect := ReadRect(IniFile, IDName, 'vthumbrect');
  1195.   EdgeSize := IniFile.ReadInteger(IDName, 'edgesize', 0);
  1196.   PointsColor := IniFile.ReadInteger(IDName, 'pointscolor', 0);
  1197. end;
  1198. procedure TspDataSkinSlider.SaveToFile;
  1199. begin
  1200.   inherited;
  1201.   IniFile.WriteInteger(IDName, 'bgcolor', BGColor);
  1202.   WriteRect(IniFile, IDName, 'hrulerrect', HRulerRect);
  1203.   WriteRect(IniFile, IDName, 'hthumbrect', HThumbRect);
  1204.   WriteRect(IniFile, IDName, 'vrulerrect', VRulerRect);
  1205.   WriteRect(IniFile, IDName, 'vthumbrect', VThumbRect);
  1206.   IniFile.WriteInteger(IDName, 'edgesize', EdgeSize);
  1207.   IniFile.WriteInteger(IDName, 'pointscolor', PointsColor);
  1208. end;
  1209. constructor TspDataSkinBevel.Create;
  1210. begin
  1211.   inherited;
  1212.   LightColor := 0;
  1213.   DarkColor := 0;
  1214. end;
  1215. procedure TspDataSkinBevel.LoadFromFile;
  1216. begin
  1217.   inherited;
  1218.   LightColor := IniFile.ReadInteger(IDName, 'lightcolor', 0);
  1219.   DarkColor := IniFile.ReadInteger(IDName, 'darkcolor', 0);
  1220. end;
  1221. procedure TspDataSkinBevel.SaveToFile;
  1222. begin
  1223.   inherited;
  1224.   IniFile.WriteInteger(IDName, 'lightcolor', LightColor);
  1225.   IniFile.WriteInteger(IDName, 'darkcolor', DarkColor);
  1226. end;
  1227. constructor TspDataSkinTabControl.Create(AIDName: String);
  1228. begin
  1229.   inherited;
  1230.   FontName := 'Arial';
  1231.   FontStyle := [];
  1232.   FontHeight := 14;
  1233.   FontColor := 0;
  1234.   ActiveFontColor := 0;
  1235.   FocusFontColor := 0;
  1236.   UpDown := '';
  1237.   BGPictureIndex := -1;
  1238. end;
  1239. procedure TspDataSkinTabControl.LoadFromFile;
  1240. begin
  1241.   inherited;
  1242.   TabRect := ReadRect(IniFile, IDName, 'tabrect');
  1243.   ActiveTabRect := ReadRect(IniFile, IDName, 'activetabrect');
  1244.   FocusTabRect := ReadRect(IniFile, IDName, 'focustabrect');
  1245.   MouseInTabRect := ReadRect(IniFile, IDName, 'mouseintabrect');
  1246.   
  1247.   ClRect := ReadRect(IniFile, IDName, 'clientrect');
  1248.   BGPictureIndex := IniFile.ReadInteger(IDName, 'bgpictureindex', -1);
  1249.   LTPoint := ReadPoint(IniFile, IDName, 'lefttoppoint');
  1250.   RTPoint := Readpoint(IniFile, IDName, 'righttoppoint');
  1251.   LBPoint := ReadPoint(IniFile, IDName, 'leftbottompoint');
  1252.   RBPoint := ReadPoint(IniFile, IDName, 'rightbottompoint');
  1253.   TabLeftOffset := IniFile.ReadInteger(IDName, 'tableftoffset', 0);
  1254.   TabRightOffset := IniFile.ReadInteger(IDName, 'tabrightoffset', 0);
  1255.   TabsBGRect := ReadRect(IniFile, IDName, 'tabsbgrect');
  1256.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1257.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1258.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1259.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1260.   ActiveFontColor := IniFile.ReadInteger(IDName, 'activefontcolor', 0);
  1261.   FocusFontColor := IniFile.ReadInteger(IDName, 'focusfontcolor', 0);
  1262.   MouseInFontColor := IniFile.ReadInteger(IDName, 'mouseinfontcolor', 0);
  1263.   UpDown := IniFile.ReadString(IDName, 'updown', '');
  1264. end;
  1265. procedure TspDataSkinTabControl.SaveToFile;
  1266. begin
  1267.   inherited;
  1268.   WriteRect(IniFile, IDName, 'tabrect', TabRect);
  1269.   WriteRect(IniFile, IDName, 'activetabrect', ActiveTabRect);
  1270.   WriteRect(IniFile, IDName, 'focustabrect', FocusTabRect);
  1271.   WriteRect(IniFile, IDName, 'mouseintabrect',  MouseInTabRect);
  1272.   WriteRect(IniFile, IDName, 'clientrect', ClRect);
  1273.   IniFile.WriteInteger(IDName, 'bgpictureindex', BGPictureIndex);
  1274.   WritePoint(IniFile, IDName, 'lefttoppoint', LTPoint);
  1275.   writePoint(IniFile, IDName, 'righttoppoint', RTPoint);
  1276.   WritePoint(IniFile, IDName, 'leftbottompoint', LBPoint);
  1277.   WritePoint(IniFile, IDName, 'rightbottompoint', RBPoint);
  1278.   IniFile.WriteInteger(IDName, 'tableftoffset', TabLeftOffset);
  1279.   IniFile.WriteInteger(IDName, 'tabrightoffset', TabRightOffset);
  1280.   WriteRect(IniFile, IDName, 'tabsbgrect', TabsBGRect);
  1281.   IniFile.WriteString(IDName, 'fontname', FontName);
  1282.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1283.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1284.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1285.   IniFile.WriteInteger(IDName, 'activefontcolor', ActiveFontColor);
  1286.   IniFile.WriteInteger(IDName, 'focusfontcolor', FocusFontColor);
  1287.   IniFile.WriteInteger(IDName, 'mouseinfontcolor', MouseInFontColor);
  1288.   IniFile.WriteString(IDName, 'updown', UpDown);
  1289. end;
  1290. constructor TspDataSkinGridControl.Create;
  1291. begin
  1292.   inherited;
  1293.   FontName := 'Arial';
  1294.   FontStyle := [];
  1295.   FontHeight := 14;
  1296.   FontColor := 0;
  1297.   FixedFontName := 'Arial';
  1298.   FixedFontStyle := [];
  1299.   FixedFontHeight := 14;
  1300.   FixedFontColor := 0;
  1301.   BGPictureIndex := -1;
  1302. end;
  1303. procedure TspDataSkinGridControl.LoadFromFile(IniFile: TCustomIniFile);
  1304. begin
  1305.   inherited;
  1306.   FixedCellRect := ReadRect(IniFile, IDName, 'fixedcellrect');
  1307.   SelectCellRect := ReadRect(IniFile, IDName, 'selectcellrect');
  1308.   FocusCellRect := ReadRect(IniFile, IDName, 'focuscellrect');
  1309.   //
  1310.   FixedCellLeftOffset := IniFile.ReadInteger(IDName, 'fixedcellleftoffset', 0);
  1311.   FixedCellRightOffset := IniFile.ReadInteger(IDName, 'fixedcellrightoffset', 0);
  1312.   FixedCellTextRect := ReadRect(IniFile, IDName, 'fixedcelltextrect');
  1313.   //
  1314.   CellLeftOffset := IniFile.ReadInteger(IDName, 'cellleftoffset', 0);
  1315.   CellRightOffset := IniFile.ReadInteger(IDName, 'cellrightoffset', 0);
  1316.   CellTextRect := ReadRect(IniFile, IDName, 'celltextrect');
  1317.   //
  1318.   LinesColor := IniFile.ReadInteger(IDName, 'linescolor', 0);
  1319.   BGColor := IniFile.ReadInteger(IDName, 'bgcolor', 0);
  1320.   BGPictureIndex := IniFile.ReadInteger(IDName, 'bgpictureindex', -1);
  1321.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1322.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1323.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1324.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1325.   SelectFontColor := IniFile.ReadInteger(IDName, 'selectfontcolor', 0);
  1326.   FocusFontColor := IniFile.ReadInteger(IDName, 'focusfontcolor', 0);
  1327.   //
  1328.   FixedFontName := IniFile.ReadString(IDName, 'fixedfontname', 'Arial');
  1329.   FixedFontHeight := IniFile.ReadInteger(IDName, 'fixedfontheight', 14);
  1330.   FixedFontStyle := ReadFontStyles(IniFile, IDName, 'fixedfontstyle');
  1331.   FixedFontColor := IniFile.ReadInteger(IDName, 'fixedfontcolor', 0);
  1332. end;
  1333. procedure TspDataSkinGridControl.SaveToFile(IniFile: TCustomIniFile);
  1334. begin
  1335.   inherited;
  1336.   WriteRect(IniFile, IDName, 'fixedcellrect', FixedCellRect);
  1337.   WriteRect(IniFile, IDName, 'selectcellrect', SelectCellRect);
  1338.   WriteRect(IniFile, IDName, 'focuscellrect', FocusCellRect);
  1339.   //
  1340.   IniFile.WriteInteger(IDName, 'fixedcellleftoffset', FixedCellLeftOffset);
  1341.   IniFile.WriteInteger(IDName, 'fixedcellrightoffset', FixedCellRightOffset);
  1342.   WriteRect(IniFile, IDName, 'fixedcelltextrect', FixedCellTextRect);
  1343.   //
  1344.   IniFile.WriteInteger(IDName, 'cellleftoffset', CellLeftOffset);
  1345.   IniFile.WriteInteger(IDName, 'cellrightoffset', CellRightOffset);
  1346.   WriteRect(IniFile, IDName, 'celltextrect', CellTextRect);
  1347.   //
  1348.   IniFile.WriteInteger(IDName, 'linescolor', LinesColor);
  1349.   IniFile.WriteInteger(IDName, 'bgcolor', BGColor);
  1350.   IniFile.WriteInteger(IDName, 'bgpictureindex', BGPictureIndex);
  1351.   IniFile.WriteString(IDName, 'fontname', FontName);
  1352.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1353.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1354.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1355.   IniFile.WriteInteger(IDName, 'selectfontcolor', SelectFontColor);
  1356.   IniFile.WriteInteger(IDName, 'focusfontcolor', FocusFontColor);
  1357.   //
  1358.   IniFile.WriteString(IDName, 'fixedfontname', FixedFontName);
  1359.   IniFile.WriteInteger(IDName, 'fixedfontheight', FixedFontHeight);
  1360.   WriteFontStyles(IniFile, IDName, 'fixedfontstyle', FixedFontStyle);
  1361.   IniFile.WriteInteger(IDName, 'fixedfontcolor', FixedFontColor);
  1362. end;
  1363. constructor TspDataSkinFrameControl.Create;
  1364. begin
  1365.   inherited;
  1366.   FramesCount := 1;
  1367.   FramesPlacement := fpHorizontal;
  1368. end;
  1369. procedure TspDataSkinFrameControl.LoadFromFile;
  1370. var
  1371.   S: String;
  1372. begin
  1373.   inherited;
  1374.   FramesCount := IniFile.ReadInteger(IDName, 'framescount', 1);
  1375.   if FramesCount < 1 then FramesCount := 1;
  1376.   S := IniFile.ReadString(IDName, 'framesplacement', 'fphorizontal');
  1377.   if S = 'fphorizontal'
  1378.   then FramesPlacement := fpHorizontal
  1379.   else FramesPlacement := fpVertical;
  1380. end;
  1381. procedure TspDataSkinFrameControl.SaveToFile;
  1382. var
  1383.   S: String;
  1384. begin
  1385.   inherited;
  1386.   IniFile.WriteInteger(IDName, 'framescount', FramesCount);
  1387.   if FramesPlacement = fpHorizontal
  1388.   then S := 'fphorizontal'
  1389.   else S := 'fpvertical';
  1390.   IniFile.WriteString(IDName, 'framesplacement', S);
  1391. end;
  1392. constructor TspDataSkinFrameRegulator.Create;
  1393. begin
  1394.   inherited;
  1395.   Kind := rkRound;
  1396. end;
  1397. procedure TspDataSkinFrameRegulator.LoadFromFile;
  1398. var
  1399.   S: String;
  1400. begin
  1401.   inherited;
  1402.   Kind := rkRound;
  1403.   S := IniFile.ReadString(IDName, 'kind', 'rkround');
  1404.   if S = 'rkround'
  1405.   then Kind := rkRound
  1406.   else
  1407.   if S = 'rkhorizontal'
  1408.   then Kind := rkHorizontal
  1409.   else Kind := rkVertical;
  1410. end;
  1411. procedure TspDataSkinFrameRegulator.SaveToFile;
  1412. var
  1413.   S: String;
  1414. begin
  1415.   inherited;
  1416.   if Kind = rkRound
  1417.   then S := 'rkround'
  1418.   else
  1419.   if Kind = rkHorizontal
  1420.   then S := 'rkhorizontal'
  1421.   else S := 'rkvertical';
  1422.   IniFile.WriteString(IDName, 'kind', S);
  1423. end;
  1424. constructor TspDataSkinCustomControl.Create;
  1425. begin
  1426.   inherited;
  1427.   LTPoint := Point(0, 0);
  1428.   RBPoint := Point(0, 0);
  1429.   LBPoint := Point(0, 0);
  1430.   RTPoint := Point(0, 0);
  1431.   ClRect := Rect(0, 0, 0, 0);
  1432.   MaskPictureIndex := -1;
  1433. end;
  1434. procedure TspDataSkinCustomControl.LoadFromFile;
  1435. begin
  1436.   inherited;
  1437.   LTPoint := ReadPoint(IniFile, IDName, 'lefttoppoint');
  1438.   RTPoint := ReadPoint(IniFile, IDName, 'righttoppoint');
  1439.   LBPoint := ReadPoint(IniFile, IDName, 'leftbottompoint');
  1440.   RBPoint := ReadPoint(IniFile, IDName, 'rightbottompoint');
  1441.   ClRect := ReadRect(IniFile, IDName, 'clientrect');
  1442. end;
  1443. procedure TspDataSkinCustomControl.SaveToFile;
  1444. begin
  1445.   inherited;
  1446.   WritePoint(IniFile, IDName, 'lefttoppoint', LTPoint);
  1447.   WritePoint(IniFile, IDName, 'righttoppoint', RTPoint);
  1448.   WritePoint(IniFile, IDName, 'leftbottompoint', LBPoint);
  1449.   WritePoint(IniFile, IDName, 'rightbottompoint', RBPoint);
  1450.   WriteRect(IniFile, IDName, 'clientrect', ClRect);
  1451. end;
  1452. constructor TspDataSkinSpinEditControl.Create;
  1453. begin
  1454.   inherited;
  1455.   FontName := 'Arial';
  1456.   FontStyle := [];
  1457.   FontHeight := 12;
  1458.   FontColor := 0;
  1459. end;
  1460. procedure TspDataSkinSpinEditControl.LoadFromFile;
  1461. begin
  1462.   inherited;
  1463.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1464.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1465.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1466.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1467.   UpButtonRect := ReadRect(IniFile, IDName, 'upbuttonrect');
  1468.   ActiveUpButtonRect := ReadRect(IniFile, IDName, 'activeupbuttonrect');
  1469.   DownUpButtonRect := ReadRect(IniFile, IDName, 'downupbuttonrect');
  1470.   DownButtonRect := ReadRect(IniFile, IDName, 'downbuttonrect');
  1471.   ActiveDownButtonRect := ReadRect(IniFile, IDName, 'activedownbuttonrect');
  1472.   DownDownButtonRect := ReadRect(IniFile, IDName, 'downdownbuttonrect');
  1473. end;
  1474. procedure TspDataSkinSpinEditControl.SaveToFile;
  1475. begin
  1476.   inherited;
  1477.   IniFile.WriteString(IDName, 'fontname', FontName);
  1478.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1479.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1480.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1481.   WriteRect(IniFile, IDName, 'upbuttonrect', UpButtonRect);
  1482.   WriteRect(IniFile, IDName, 'activeupbuttonrect', ActiveUpButtonRect);
  1483.   WriteRect(IniFile, IDName, 'downupbuttonrect', DownUpButtonRect);
  1484.   WriteRect(IniFile, IDName, 'downbuttonrect', DownButtonRect);
  1485.   WriteRect(IniFile, IDName, 'activedownbuttonrect', ActiveDownButtonRect);
  1486.   WriteRect(IniFile, IDName, 'downdownbuttonrect', DownDownButtonRect);
  1487. end;
  1488. constructor TspDataSkinEditControl.Create;
  1489. begin
  1490.   inherited;
  1491.   FontName := 'Arial';
  1492.   FontStyle := [];
  1493.   FontHeight := 12;
  1494.   FontColor := 0;
  1495.   ActiveFontColor := 0;
  1496. end;
  1497. procedure TspDataSkinEditControl.LoadFromFile;
  1498. begin
  1499.   inherited;
  1500.   ActiveSkinRect := ReadRect(IniFile, IDName, 'activeskinrect');
  1501.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1502.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1503.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1504.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1505.   DisabledFontColor := IniFile.ReadInteger(IDName, 'disabledfontcolor', 0);
  1506.   ActiveFontColor := IniFile.ReadInteger(IDName, 'activefontcolor', 0);
  1507.   ButtonRect := ReadRect(IniFile, IDName, 'buttonrect');
  1508.   ActiveButtonRect := ReadRect(IniFile, IDName, 'activebuttonrect');
  1509.   DownButtonRect := ReadRect(IniFile, IDName, 'downbuttonrect');
  1510. end;
  1511. procedure TspDataSkinEditControl.SaveToFile;
  1512. begin
  1513.   inherited;
  1514.   WriteRect(IniFile, IDName, 'activeskinrect', ActiveSkinRect);
  1515.   IniFile.WriteString(IDName, 'fontname', FontName);
  1516.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1517.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1518.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1519.   IniFile.WriteInteger(IDName, 'activefontcolor', ActiveFontColor);
  1520.   IniFile.WriteInteger(IDName, 'disabledfontcolor', DisabledFontColor);
  1521.   WriteRect(IniFile, IDName, 'buttonrect', ButtonRect);
  1522.   WriteRect(IniFile, IDName, 'activebuttonrect', ActiveButtonRect);
  1523.   WriteRect(IniFile, IDName, 'downbuttonrect', DownButtonRect);
  1524. end;
  1525. constructor TspDataSkinMemoControl.Create(AIDName: String);
  1526. begin
  1527.   inherited;
  1528. end;
  1529. procedure TspDataSkinMemoControl.LoadFromFile;
  1530. begin
  1531.   inherited;
  1532.   BGColor := IniFile.ReadInteger(IDName, 'bgcolor', 0);
  1533.   ActiveBGColor := IniFile.ReadInteger(IDName, 'activebgcolor', 0);
  1534. end;
  1535. procedure TspDataSkinMemoControl.SaveToFile;
  1536. begin
  1537.   inherited;
  1538.   IniFile.WriteInteger(IDName, 'bgcolor', BGColor);
  1539.   IniFile.WriteInteger(IDName, 'activebgcolor', ActiveBGColor);
  1540. end;
  1541. constructor TspDataSkinStdLabelControl.Create;
  1542. begin
  1543.   inherited;
  1544.   FontName := 'Arial';
  1545.   FontStyle := [];
  1546.   FontHeight := 12;
  1547.   FontColor := 0;
  1548.   ActiveFontColor := clBlue;
  1549. end;
  1550. procedure TspDataSkinStdLabelControl.LoadFromFile;
  1551. begin
  1552.   inherited;
  1553.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1554.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1555.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1556.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1557.   ActiveFontColor := IniFile.ReadInteger(IDName, 'activefontcolor', clBlue);
  1558. end;
  1559. procedure TspDataSkinStdLabelControl.SaveToFile;
  1560. begin
  1561.   inherited;
  1562.   IniFile.WriteString(IDName, 'fontname', FontName);
  1563.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1564.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1565.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1566.   IniFile.WriteInteger(IDName, 'activefontcolor', ActiveFontColor);
  1567. end;
  1568. constructor TspDataSkinBitLabelControl.Create;
  1569. begin
  1570.   inherited;
  1571.   Symbols := TStringList.Create;
  1572.   SymbolWidth := 0;
  1573.   SymbolHeight := 0;
  1574. end;
  1575. destructor TspDataSkinBitLabelControl.Destroy;
  1576. begin
  1577.   Symbols.Clear;
  1578.   Symbols.Free;
  1579.   inherited;
  1580. end;
  1581. procedure TspDataSkinBitLabelControl.LoadFromFile;
  1582. begin
  1583.   inherited;
  1584.   SkinTextRect := ReadRect(IniFile, IDName, 'skintextrect');
  1585.   SymbolWidth := IniFile.ReadInteger(IDName, 'symbolwidth', 0);
  1586.   SymbolHeight := IniFile.ReadInteger(IDName, 'symbolheight', 0);
  1587.   ReadStrings(IniFile, IDName, 'symbols', Symbols);
  1588. end;
  1589. procedure TspDataSkinBitLabelControl.SaveToFile;
  1590. begin
  1591.   inherited;
  1592.   WriteRect(IniFile, IDName, 'skintextrect', SkinTextRect);
  1593.   IniFile.WriteInteger(IDName, 'symbolwidth', SymbolWidth);
  1594.   IniFile.WriteInteger(IDName, 'symbolheight', SymbolHeight);
  1595.   WriteStrings(IniFile, IDName, 'symbols', Symbols);
  1596. end;
  1597. constructor TspDataSkinLabelControl.Create;
  1598. begin
  1599.   inherited;
  1600.   FontName := 'Arial';
  1601.   FontStyle := [];
  1602.   FontHeight := 12;
  1603.   FontColor := 0;
  1604. end;
  1605. procedure TspDataSkinLabelControl.LoadFromFile;
  1606. begin
  1607.   inherited;
  1608.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1609.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1610.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1611.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1612. end;
  1613. procedure TspDataSkinLabelControl.SaveToFile;
  1614. begin
  1615.   inherited;
  1616.   IniFile.WriteString(IDName, 'fontname', FontName);
  1617.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1618.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1619.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1620. end;
  1621. constructor TspDataSkinScrollBarControl.Create;
  1622. begin
  1623.   inherited;
  1624.   ThumbOffset1 := 0;
  1625.   ThumbOffset2 := 0;
  1626. end;
  1627. procedure TspDataSkinScrollBarControl.LoadFromFile;
  1628. begin
  1629.   inherited;
  1630.   TrackArea := ReadRect(IniFile, IDName, 'trackarea');
  1631.   UpButtonRect := ReadRect(IniFile, IDName, 'upbuttonrect');
  1632.   ActiveUpButtonRect := ReadRect(IniFile, IDName, 'activeupbuttonrect');
  1633.   DownUpButtonRect := ReadRect(IniFile, IDName, 'downupbuttonrect');
  1634.   DownButtonRect := ReadRect(IniFile, IDName, 'downbuttonrect');
  1635.   ActiveDownButtonRect := ReadRect(IniFile, IDName, 'activedownbuttonrect');
  1636.   DownDownButtonRect := ReadRect(IniFile, IDName, 'downdownbuttonrect');
  1637.   ThumbRect := ReadRect(IniFile, IDName, 'thumbrect');
  1638.   ActiveThumbRect := ReadRect(IniFile, IDName, 'activethumbrect');
  1639.   DownThumbRect := ReadRect(IniFile, IDName, 'downthumbrect');
  1640.   ThumbOffset1 := IniFile.ReadInteger(IDName, 'thumboffset1', 0);
  1641.   ThumbOffset2 := IniFile.ReadInteger(IDName, 'thumboffset2', 0);
  1642.   GlyphRect := ReadRect(IniFile, IDName, 'glyphrect');
  1643.   ActiveGlyphRect := ReadRect(IniFile, IDName, 'activeglyphrect');
  1644.   DownGlyphRect := ReadRect(IniFile, IDName, 'downglyphrect');
  1645. end;
  1646. procedure TspDataSkinScrollBarControl.SaveToFile;
  1647. begin
  1648.   inherited;
  1649.   WriteRect(IniFile, IDName, 'trackarea', TrackArea);
  1650.   WriteRect(IniFile, IDName, 'upbuttonrect', UpButtonRect);
  1651.   WriteRect(IniFile, IDName, 'activeupbuttonrect', ActiveUpButtonRect);
  1652.   WriteRect(IniFile, IDName, 'downupbuttonrect', DownUpButtonRect);
  1653.   WriteRect(IniFile, IDName, 'downbuttonrect', DownButtonRect);
  1654.   WriteRect(IniFile, IDName, 'activedownbuttonrect', ActiveDownButtonRect);
  1655.   WriteRect(IniFile, IDName, 'downdownbuttonrect', DownDownButtonRect);
  1656.   WriteRect(IniFile, IDName, 'thumbrect', ThumbRect);
  1657.   WriteRect(IniFile, IDName, 'activethumbrect', ActiveThumbRect);
  1658.   WriteRect(IniFile, IDName, 'downthumbrect', DownThumbRect);
  1659.   IniFile.WriteInteger(IDName, 'thumboffset1', ThumbOffset1);
  1660.   IniFile.WriteInteger(IDName, 'thumboffset2', ThumbOffset2);
  1661.   WriteRect(IniFile, IDName, 'glyphrect', GlyphRect);
  1662.   WriteRect(IniFile, IDName, 'activeglyphrect', ActiveGlyphRect);
  1663.   WriteRect(IniFile, IDName, 'downglyphrect', DownGlyphRect);
  1664. end;
  1665. constructor TspDataSkinTrackBarControl.Create;
  1666. begin
  1667.   inherited;
  1668.   TrackArea := NullRect;
  1669.   ButtonRect := NullRect;
  1670.   ActiveButtonRect := NullRect;
  1671.   Vertical := False;
  1672. end;
  1673. procedure TspDataSkinTrackBarControl.LoadFromFile;
  1674. begin
  1675.   inherited;
  1676.   TrackArea := ReadRect(IniFile, IDName, 'trackarea');
  1677.   ButtonRect := ReadRect(IniFile, IDName, 'buttonrect');
  1678.   ActiveButtonRect := ReadRect(IniFile, IDName, 'activebuttonrect');
  1679.   Vertical := ReadBoolean(IniFile, IDName, 'vertical');
  1680. end;
  1681. procedure TspDataSkinTrackBarControl.SaveToFile;
  1682. begin
  1683.   inherited;
  1684.   WriteRect(IniFile, IDName, 'trackarea', TrackArea);
  1685.   WriteRect(IniFile, IDName, 'buttonrect', ButtonRect);
  1686.   WriteRect(IniFile, IDName, 'activebuttonrect', ActiveButtonRect);
  1687.   WriteBoolean(IniFile, IDName, 'vertical', Vertical);
  1688. end;
  1689. constructor TspDataSkinGaugeControl.Create;
  1690. begin
  1691.   inherited;
  1692.   ProgressArea := NullRect;
  1693.   ProgressRect := NullRect;
  1694.   Vertical := False;
  1695.   BeginOffset := 0;
  1696.   EndOffset := 0;
  1697.   FontName := 'Arial';
  1698.   FontStyle := [];
  1699.   FontHeight := 14;
  1700.   FontColor := 0;
  1701. end;
  1702. procedure TspDataSkinGaugeControl.LoadFromFile;
  1703. begin
  1704.   inherited;
  1705.   ProgressArea := ReadRect(IniFile, IDName, 'progressarea');
  1706.   ProgressRect := ReadRect(IniFile, IDName, 'progressrect');
  1707.   BeginOffset := IniFile.ReadInteger(IDName, 'beginoffset', 0);
  1708.   EndOffset := IniFile.ReadInteger(IDName, 'endoffset', 0);
  1709.   Vertical := ReadBoolean(IniFile, IDName, 'vertical');
  1710.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1711.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1712.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1713.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1714. end;
  1715. procedure TspDataSkinGaugeControl.SaveToFile;
  1716. begin
  1717.   inherited;
  1718.   WriteRect(IniFile, IDName, 'progressarea', ProgressArea);
  1719.   WriteRect(IniFile, IDName, 'progressrect', ProgressRect);
  1720.   IniFile.WriteInteger(IDName, 'beginoffset', BeginOffset);
  1721.   IniFile.WriteInteger(IDName, 'endoffset', EndOffset);
  1722.   WriteBoolean(IniFile, IDName, 'vertical', Vertical);
  1723.   IniFile.WriteString(IDName, 'fontname', FontName);
  1724.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1725.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1726.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1727. end;
  1728. constructor TspDataSkinScrollBoxControl.Create(AIDName: String);
  1729. begin
  1730.   inherited;
  1731.   BGPictureIndex := -1;
  1732. end;
  1733. procedure TspDataSkinScrollBoxControl.LoadFromFile(IniFile: TCustomIniFile);
  1734. begin
  1735.   inherited;
  1736.   BGPictureIndex := IniFile.ReadInteger(IDName, 'bgpictureindex', -1);
  1737. end;
  1738. procedure TspDataSkinScrollBoxControl.SaveToFile(IniFile: TCustomIniFile);
  1739. begin
  1740.   inherited;
  1741.   IniFile.WriteInteger(IDName, 'bgpictureindex', BGPictureIndex);
  1742. end;
  1743. constructor TspDataSkinPanelControl.Create;
  1744. begin
  1745.   inherited;
  1746.   CaptionRect := NullRect;
  1747.   RollUpMarkerRect := NullRect;
  1748.   RestoreMarkerRect := NullRect;
  1749.   FontName := 'Arial';
  1750.   FontStyle := [];
  1751.   FontHeight := 12;
  1752.   FontColor := 0;
  1753.   Alignment := taCenter;
  1754.   BGPictureIndex := -1;
  1755. end;
  1756. procedure TspDataSkinPanelControl.LoadFromFile;
  1757. begin
  1758.   inherited;
  1759.   BGPictureIndex := IniFile.ReadInteger(IDName, 'bgpictureindex', -1);
  1760.   CaptionRect := ReadRect(IniFile, IDName, 'captionrect');
  1761.   RollUpMarkerRect := ReadRect(IniFile, IDName, 'rollupmarkerrect');
  1762.   RestoreMarkerRect := ReadRect(IniFile, IDName, 'restoremarkerrect');
  1763.   Alignment := ReadAlignment(IniFile, IDName, 'alignment');
  1764.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1765.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1766.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1767.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1768.   CheckImageRect := ReadRect(IniFile, IDName, 'checkimagerect');
  1769.   UnCheckImageRect := ReadRect(IniFile, IDName, 'uncheckimagerect');
  1770. end;
  1771. procedure TspDataSkinPanelControl.SaveToFile;
  1772. begin
  1773.   inherited;
  1774.   IniFile.WriteInteger(IDName, 'bgpictureindex', BGPictureIndex);
  1775.   WriteRect(IniFile, IDName, 'captionrect', CaptionRect);
  1776.   WriteRect(IniFile, IDName, 'rollupmarkerrect', RollUpMarkerRect);
  1777.   WriteRect(IniFile, IDName, 'restoremarkerrect', RestoreMarkerRect);
  1778.   WriteAlignment(IniFile, IDName, 'alignment', Alignment);
  1779.   IniFile.WriteString(IDName, 'fontname', FontName);
  1780.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1781.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1782.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1783.   WriteRect(IniFile, IDName, 'checkimagerect', CheckImageRect);
  1784.   WriteRect(IniFile, IDName, 'uncheckimagerect', UnCheckImageRect);
  1785. end;
  1786. constructor TspDataSkinExPanelControl.Create(AIDName: String);
  1787. begin
  1788.   inherited;
  1789.   FontName := 'Arial';
  1790.   FontStyle := [];
  1791.   FontHeight := 12;
  1792.   FontColor := 0;
  1793. end;
  1794. procedure TspDataSkinExPanelControl.LoadFromFile(IniFile: TCustomIniFile);
  1795. begin
  1796.   inherited;
  1797.   RollHSkinRect := ReadRect(IniFile, IDName, 'rollhskinrect');
  1798.   RollVSkinRect := ReadRect(IniFile, IDName, 'rollvskinrect');
  1799.   RollLeftOffset := IniFile.ReadInteger(IDName, 'rollleftoffset', 0);
  1800.   RollRightOffset := IniFile.ReadInteger(IDName, 'rollrightoffset', 0);
  1801.   RollTopOffset := IniFile.ReadInteger(IDName, 'rolltopoffset', 0);
  1802.   RollBottomOffset := IniFile.ReadInteger(IDName, 'rollbottomoffset', 0);
  1803.   RollVCaptionRect := ReadRect(IniFile, IDName, 'rollvcaptionrect');
  1804.   RollHCaptionRect := ReadRect(IniFile, IDName, 'rollhcaptionrect');
  1805.   //
  1806.   CloseButtonRect := ReadRect(IniFile, IDName, 'closebuttonrect');
  1807.   CloseButtonActiveRect := ReadRect(IniFile, IDName, 'closebuttonactiverect');
  1808.   CloseButtonDownRect := ReadRect(IniFile, IDName, 'closebuttondownrect');
  1809.   HRollButtonRect := ReadRect(IniFile, IDName, 'hrollbuttonrect');
  1810.   HRollButtonActiveRect := ReadRect(IniFile, IDName, 'hrollbuttonactiverect');
  1811.   HRollButtonDownRect := ReadRect(IniFile, IDName, 'hrollbuttondownrect');
  1812.   HRestoreButtonRect := ReadRect(IniFile, IDName, 'hrestorebuttonrect');
  1813.   HRestoreButtonActiveRect := ReadRect(IniFile, IDName, 'hrestorebuttonactiverect');
  1814.   HRestoreButtonDownRect := ReadRect(IniFile, IDName, 'hrestorebuttondownrect');
  1815.   VRollButtonRect := ReadRect(IniFile, IDName, 'vrollbuttonrect');
  1816.   VRollButtonActiveRect := ReadRect(IniFile, IDName, 'vrollbuttonactiverect');
  1817.   VRollButtonDownRect := ReadRect(IniFile, IDName, 'vrollbuttondownrect');
  1818.   VRestoreButtonRect := ReadRect(IniFile, IDName, 'vrestorebuttonrect');
  1819.   VRestoreButtonActiveRect := ReadRect(IniFile, IDName, 'vrestorebuttonactiverect');
  1820.   VRestoreButtonDownRect := ReadRect(IniFile, IDName, 'vrestorebuttondownrect');
  1821.   //
  1822.   CaptionRect := ReadRect(IniFile, IDName, 'captionrect');
  1823.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1824.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1825.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1826.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1827. end;
  1828. procedure TspDataSkinExPanelControl.SaveToFile(IniFile: TCustomIniFile);
  1829. begin
  1830.   inherited;
  1831.   WriteRect(IniFile, IDName, 'rollhskinrect', RollHSkinRect);
  1832.   WriteRect(IniFile, IDName, 'rollvskinrect', RollVSkinRect);
  1833.   IniFile.WriteInteger(IDName, 'rollleftoffset', RollLeftOffset);
  1834.   IniFile.WriteInteger(IDName, 'rollrightoffset', RollRightOffset);
  1835.   IniFile.WriteInteger(IDName, 'rolltopoffset', RollTopOffset);
  1836.   IniFile.WriteInteger(IDName, 'rollbottomoffset', RollBottomOffset);
  1837.   WriteRect(IniFile, IDName, 'rollvcaptionrect', RollVCaptionRect);
  1838.   WriteRect(IniFile, IDName, 'rollhcaptionrect', RollHCaptionRect);
  1839.   //
  1840.   WriteRect(IniFile, IDName, 'closebuttonrect', CloseButtonRect);
  1841.   WriteRect(IniFile, IDName, 'closebuttonactiverect', CloseButtonActiveRect);
  1842.   WriteRect(IniFile, IDName, 'closebuttondownrect', CloseButtonDownRect);
  1843.   WriteRect(IniFile, IDName, 'hrollbuttonrect', HRollButtonRect);
  1844.   WriteRect(IniFile, IDName, 'hrollbuttonactiverect', HRollButtonActiveRect);
  1845.   WriteRect(IniFile, IDName, 'hrollbuttondownrect', HRollButtonDownRect);
  1846.   WriteRect(IniFile, IDName, 'hrestorebuttonrect', HRestoreButtonRect);
  1847.   WriteRect(IniFile, IDName, 'hrestorebuttonactiverect', HRestoreButtonActiveRect);
  1848.   WriteRect(IniFile, IDName, 'hrestorebuttondownrect', HRestoreButtonDownRect);
  1849.   WriteRect(IniFile, IDName, 'vrollbuttonrect', VRollButtonRect);
  1850.   WriteRect(IniFile, IDName, 'vrollbuttonactiverect', VRollButtonActiveRect);
  1851.   WriteRect(IniFile, IDName, 'vrollbuttondownrect', VRollButtonDownRect);
  1852.   WriteRect(IniFile, IDName, 'vrestorebuttonrect', VRestoreButtonRect);
  1853.   WriteRect(IniFile, IDName, 'vrestorebuttonactiverect', VRestoreButtonActiveRect);
  1854.   WriteRect(IniFile, IDName, 'vrestorebuttondownrect', VRestoreButtonDownRect);
  1855.   //
  1856.   WriteRect(IniFile, IDName, 'captionrect', CaptionRect);
  1857.   IniFile.WriteString(IDName, 'fontname', FontName);
  1858.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1859.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);
  1860.   IniFile.WriteInteger(IDName, 'fontcolor', FontColor);
  1861. end;
  1862. constructor TspDataSkinCheckRadioControl.Create;
  1863. begin
  1864.   inherited;
  1865.   FontName := 'Arial';
  1866.   FontStyle := [];
  1867.   FontHeight := 12;
  1868.   FontColor := 0;
  1869.   ActiveFontColor := 0;
  1870.   FontColor := 0;
  1871.   CheckImageArea := NullRect;
  1872.   TextArea := NullRect;
  1873.   ActiveSkinRect := NullRect;
  1874.   CheckImageRect := NullRect;
  1875.   UnCheckImageRect := NullRect;
  1876.   MorphKind := mkDefault;
  1877. end;
  1878. procedure TspDataSkinCheckRadioControl.LoadFromFile;
  1879. begin
  1880.   inherited;
  1881.   FontName := IniFile.ReadString(IDName, 'fontname', 'Arial');
  1882.   FontHeight := IniFile.ReadInteger(IDName, 'fontheight', 14);
  1883.   FontStyle := ReadFontStyles(IniFile, IDName, 'fontstyle');
  1884.   FontColor := IniFile.ReadInteger(IDName, 'fontcolor', 0);
  1885.   ActiveFontColor := IniFile.ReadInteger(IDName, 'activefontcolor', 0);
  1886.   UnEnabledFontColor := IniFile.ReadInteger(IDName, 'unenabledfontcolor', 0);
  1887.   FrameFontColor := IniFile.ReadInteger(IDName, 'framefontcolor', 0);
  1888.   Morphing := ReadBoolean(IniFile, IDName, 'morphing');
  1889.   MorphKind := ReadMorphKind(IniFile, IDName, 'morphkind');
  1890.   ActiveSkinRect := ReadRect(IniFile, IDName, 'activeskinrect');
  1891.   CheckImageArea := ReadRect(IniFile, IDName, 'checkimagearea');
  1892.   TextArea := ReadRect(IniFile, IDName, 'textarea');
  1893.   CheckImageRect := ReadRect(IniFile, IDName, 'checkimagerect');
  1894.   UnCheckImageRect := ReadRect(IniFile, IDName, 'uncheckimagerect');
  1895.   ActiveCheckImageRect := ReadRect(IniFile, IDName, 'activecheckimagerect');
  1896.   ActiveUnCheckImageRect := ReadRect(IniFile, IDName, 'activeuncheckimagerect');
  1897.   UnEnabledCheckImageRect := ReadRect(IniFile, IDName, 'unenabledcheckimagerect');
  1898.   UnEnabledUnCheckImageRect := ReadRect(IniFile, IDName, 'unenableduncheckimagerect');
  1899. end;
  1900. procedure TspDataSkinCheckRadioControl.SaveToFile;
  1901. begin
  1902.   inherited;
  1903.   IniFile.WriteString(IDName, 'fontname', FontName);
  1904.   IniFile.WriteInteger(IDName, 'fontheight', FontHeight);
  1905.   WriteFontStyles(IniFile, IDName, 'fontstyle', FontStyle);