Unit1.pas
上传用户:lmk588
上传日期:2013-04-16
资源大小:5120k
文件大小:7k
源码类别:

按钮控件

开发平台:

Delphi

  1. unit Unit1;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  5.   Dialogs, ComCtrls, StdCtrls, Menus, WinSkinForm, WinSkinData,
  6.    Buttons, Grids, ToolWin, ExtCtrls, ImgList, ExtDlgs,inifiles,
  7.    WinSkinStore;
  8. const
  9.   ininame= 'Config.ini';
  10. type
  11.   TForm1 = class(TForm)
  12.     PageControl1: TPageControl;
  13.     TabSheet1: TTabSheet;
  14.     TabSheet2: TTabSheet;
  15.     CheckBox1: TCheckBox;
  16.     CheckBox2: TCheckBox;
  17.     RadioButton1: TRadioButton;
  18.     RadioButton2: TRadioButton;
  19.     StatusBar1: TStatusBar;
  20.     MainMenu1: TMainMenu;
  21.     File1: TMenuItem;
  22.     DialogM: TMenuItem;
  23.     Help1: TMenuItem;
  24.     Open1: TMenuItem;
  25.     Save1: TMenuItem;
  26.     Close1: TMenuItem;
  27.     N1: TMenuItem;
  28.     Exit1: TMenuItem;
  29.     Skin11: TMenuItem;
  30.     Skin21: TMenuItem;
  31.     Skin31: TMenuItem;
  32.     Content1: TMenuItem;
  33.     Homepage1: TMenuItem;
  34.     About1: TMenuItem;
  35.     sd1: TSkinData;
  36.     ComboBox1: TComboBox;
  37.     Label1: TLabel;
  38.     LoadBtn: TButton;
  39.     Button4: TButton;
  40.     TabSheet3: TTabSheet;
  41.     ListBox1: TListBox;
  42.     BitBtn1: TBitBtn;
  43.     TabSheet4: TTabSheet;
  44.     StringGrid1: TStringGrid;
  45.     SpeedButton1: TSpeedButton;
  46.     Edit1: TEdit;
  47.     ExceptionBtn: TButton;
  48.     MessageBtn: TButton;
  49.     Dialog1: TOpenDialog;
  50.     Panel1: TPanel;
  51.     ProgressBar1: TProgressBar;
  52.     Dialog2: TFontDialog;
  53.     Dialog3: TColorDialog;
  54.     Dialog4: TPrintDialog;
  55.     PrintDialog2: TMenuItem;
  56.     BuildinSkins1: TMenuItem;
  57.     Skin12: TMenuItem;
  58.     Skin22: TMenuItem;
  59.     Skin32: TMenuItem;
  60.     RichEdit1: TRichEdit;
  61.     ImageList1: TImageList;
  62.     Dialog5: TOpenPictureDialog;
  63.     SkinStore1: TSkinStore;
  64.     Button1: TButton;
  65.     Timer1: TTimer;
  66.     procedure Exit1Click(Sender: TObject);
  67.     procedure Button2Click(Sender: TObject);
  68.     procedure FormCreate(Sender: TObject);
  69.     procedure ComboBox1Click(Sender: TObject);
  70.     procedure sf1CaptionBtnClick(Sender: TObject; action: Integer);
  71.     procedure SpeedButton1Click(Sender: TObject);
  72.     procedure LoadBtnClick(Sender: TObject);
  73.     procedure ExceptionBtnClick(Sender: TObject);
  74.     procedure MessageBtnClick(Sender: TObject);
  75.     procedure Skin21Click(Sender: TObject);
  76.     procedure Skin31Click(Sender: TObject);
  77.     procedure PrintDialog2Click(Sender: TObject);
  78.     procedure Skin12Click(Sender: TObject);
  79.     procedure Button1Click(Sender: TObject);
  80.     procedure Timer1Timer(Sender: TObject);
  81.     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  82.   private
  83.     { Private declarations }
  84.     procedure ReadSkinfile( apath : string );
  85.     procedure Loadskin(aname:string);
  86.     procedure Readini;
  87.     procedure Writeini;
  88.   public
  89.     { Public declarations }
  90.     Ep:integer;
  91.   end;
  92. var
  93.   Form1: TForm1;
  94.   root:string;
  95. implementation
  96. uses Unit2;
  97. {$R *.dfm}
  98. procedure TForm1.Exit1Click(Sender: TObject);
  99. begin
  100.   close;
  101. end;
  102. procedure TForm1.Button2Click(Sender: TObject);
  103. begin
  104.    sd1.active:= not sd1.active;
  105.    if sd1.active then button4.caption:='Unskin'
  106.    else button4.caption:='Skin';
  107. end;
  108. procedure TForm1.ReadSkinfile( apath : string );
  109. var
  110.   sts: Integer ;
  111.   SR: TSearchRec;
  112.   list: Tstringlist;
  113.   procedure AddFile;
  114.   begin
  115.     list.add(sr.name);
  116.   end;
  117. begin
  118.   list:=Tstringlist.create;
  119.   sts := FindFirst( apath + '*.skn' , faAnyFile , SR );
  120.   if sts = 0 then begin
  121.       if ( SR.Name <> '.' ) and ( SR.Name <> '..' ) then begin
  122.           if pos('.', SR.Name) <> 0 then
  123.             Addfile;
  124.       end;
  125.       while FindNext( SR ) = 0 do begin
  126.           if ( SR.Name <> '.' ) and ( SR.Name <> '..' ) then begin
  127.               //Put User Feedback here if desired
  128. //              Application.ProcessMessages;
  129.               if Pos('.', SR.Name) <> 0 then  Addfile;
  130.           end;
  131.       end;
  132.   end ;
  133.   FindClose( SR ) ;
  134.   list.sort;
  135.   combobox1.items.assign(list);
  136.   list.free;
  137. end;
  138. procedure TForm1.FormCreate(Sender: TObject);
  139. var i,j:integer;
  140. begin
  141.     root:= ExtractFilePath(ParamStr(0));
  142.     readskinfile('....skins');
  143. //   load skin file from TSkinStore
  144.    Sd1.LoadFromCollection(skinstore1,3);
  145.    if not sd1.active then sd1.active:=true;
  146.     with stringgrid1 do begin
  147.        rowcount:=combobox1.items.count+1;
  148.        colcount:=7;
  149.        for i:= 0 to colcount-1 do
  150.          cells[i,0]:=format('column%1d',[i]);
  151.        for i:= 1 to rowcount-1 do begin
  152.          cells[0,i]:=format('skin file%1d',[i]);
  153.          cells[1,i]:=combobox1.items[i-1];
  154.        end;
  155.        fixedcolor:=sd1.colors[csButtonFace];
  156.     end;
  157.     Readini;
  158. end;
  159. procedure TForm1.ComboBox1Click(Sender: TObject);
  160. begin
  161.    sd1.skinfile:='....skins'+combobox1.text;
  162.    stringgrid1.fixedcolor:=sd1.colors[csButtonFace];
  163.    if not sd1.active then sd1.active:=true;
  164. end;
  165. procedure TForm1.sf1CaptionBtnClick(Sender: TObject; action: Integer);
  166. begin
  167.      showmessage('Custom Caption Button Click No:'+inttostr(action));
  168. end;
  169. procedure TForm1.SpeedButton1Click(Sender: TObject);
  170. begin
  171. //   sd1.skinfile:='..skins'+combobox1.items[1];
  172. //   stringgrid1.fixedcolor:=sd1.colors[csButtonFace];
  173. //    skinaddlog('****************************');
  174.    timer1.enabled:= not timer1.enabled;
  175. end;
  176. procedure TForm1.LoadBtnClick(Sender: TObject);
  177. begin
  178.   Dialog1.filter:='Skin files (*.skn)|*.SKN';
  179.   Dialog1.initialdir:='....skins';
  180.   if Dialog1.execute then
  181.      sd1.skinfile:=dialog1.filename;
  182.   if not sd1.Active then
  183.    sd1.Active:=true;
  184. end;
  185. procedure TForm1.ExceptionBtnClick(Sender: TObject);
  186. var i:integer;
  187. begin
  188.     i:=1;
  189.     Ep:= 100 div (i-1);
  190. end;
  191. procedure TForm1.MessageBtnClick(Sender: TObject);
  192. begin
  193.    MessageDlg('VclSkin2.0 Demo !'#13'Message Window Skin Demo.',
  194.         mtInformation,[mbOk], 0);
  195. end;
  196. procedure TForm1.Skin21Click(Sender: TObject);
  197. begin
  198.    Dialog2.execute;
  199. end;
  200. procedure TForm1.Skin31Click(Sender: TObject);
  201. begin
  202.   Dialog3.execute;
  203. end;
  204. procedure TForm1.PrintDialog2Click(Sender: TObject);
  205. begin
  206.   Dialog4.execute;
  207. end;
  208. procedure TForm1.Loadskin(aname:string);
  209. var  RS: TResourceStream;
  210. begin
  211.     RS := TResourceStream.Create(HInstance,aname,RT_RCDATA);
  212.     sd1.loadfromstream(rs);
  213.     rs.free;
  214. end;
  215. procedure TForm1.Skin12Click(Sender: TObject);
  216. var i:integer;
  217. begin
  218.    i:=Tcomponent(sender).tag;
  219.    Sd1.LoadFromCollection(skinstore1,i);
  220. end;
  221. procedure TForm1.Button1Click(Sender: TObject);
  222. begin
  223.    if form2=nil then
  224.      Application.CreateForm(TForm2, Form2);
  225.    form2.show;
  226. end;
  227. procedure TForm1.Timer1Timer(Sender: TObject);
  228. begin
  229.    ProgressBar1.position:=ProgressBar1.position+1;
  230.    if ProgressBar1.position>99 then
  231.       ProgressBar1.position:=0;
  232. end;
  233. procedure TForm1.Readini;
  234. var ini3:Tinifile;
  235. begin
  236.    ini3 := TIniFile.Create(root+ininame);
  237.    ClientHeight:=ini3.readinteger('Path','height',400);
  238.    ClientWidth:=ini3.readinteger('Path','width',400);
  239.    top:=ini3.readinteger('Path','top',0);
  240.    left:=ini3.readinteger('Path','left',0);
  241.    ini3.free;
  242. end;
  243. procedure TForm1.Writeini;
  244. var ini3:Tinifile;
  245. begin
  246.    ini3 := TIniFile.Create(root+ininame);
  247.    ini3.writeinteger('Path','Width',ClientWidth);
  248.    ini3.writeinteger('Path','Height',ClientHeight);
  249.    ini3.writeinteger('Path','Left',left);
  250.    ini3.writeinteger('Path','Top',top);
  251.    ini3.free;
  252. end;
  253. procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  254. begin
  255.     Writeini;
  256. end;
  257. end.