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.     sd2: TSkinData;
  64.     SkinStore1: TSkinStore;
  65.     Button1: TButton;
  66.     Timer1: TTimer;
  67.     procedure Exit1Click(Sender: TObject);
  68.     procedure Button2Click(Sender: TObject);
  69.     procedure FormCreate(Sender: TObject);
  70.     procedure ComboBox1Click(Sender: TObject);
  71.     procedure sf1CaptionBtnClick(Sender: TObject; action: Integer);
  72.     procedure SpeedButton1Click(Sender: TObject);
  73.     procedure LoadBtnClick(Sender: TObject);
  74.     procedure ExceptionBtnClick(Sender: TObject);
  75.     procedure MessageBtnClick(Sender: TObject);
  76.     procedure Skin21Click(Sender: TObject);
  77.     procedure Skin31Click(Sender: TObject);
  78.     procedure PrintDialog2Click(Sender: TObject);
  79.     procedure Skin12Click(Sender: TObject);
  80.     procedure Button1Click(Sender: TObject);
  81.     procedure Timer1Timer(Sender: TObject);
  82.     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  83.   private
  84.     { Private declarations }
  85.     procedure ReadSkinfile( apath : string );
  86.     procedure Loadskin(aname:string);
  87.     procedure Readini;
  88.     procedure Writeini;
  89.   public
  90.     { Public declarations }
  91.     Ep:integer;
  92.   end;
  93. var
  94.   Form1: TForm1;
  95.   root:string;
  96. implementation
  97. uses Unit2;
  98. {$R *.dfm}
  99. procedure TForm1.Exit1Click(Sender: TObject);
  100. begin
  101.   close;
  102. end;
  103. procedure TForm1.Button2Click(Sender: TObject);
  104. begin
  105.    sd1.active:= not sd1.active;
  106.    if sd1.active then button4.caption:='Unskin'
  107.    else button4.caption:='Skin';
  108. end;
  109. procedure TForm1.ReadSkinfile( apath : string );
  110. var
  111.   sts: Integer ;
  112.   SR: TSearchRec;
  113.   list: Tstringlist;
  114.   procedure AddFile;
  115.   begin
  116.     list.add(sr.name);
  117.   end;
  118. begin
  119.   list:=Tstringlist.create;
  120.   sts := FindFirst( apath + '*.skn' , faAnyFile , SR );
  121.   if sts = 0 then begin
  122.       if ( SR.Name <> '.' ) and ( SR.Name <> '..' ) then begin
  123.           if pos('.', SR.Name) <> 0 then
  124.             Addfile;
  125.       end;
  126.       while FindNext( SR ) = 0 do begin
  127.           if ( SR.Name <> '.' ) and ( SR.Name <> '..' ) then begin
  128.               //Put User Feedback here if desired
  129. //              Application.ProcessMessages;
  130.               if Pos('.', SR.Name) <> 0 then  Addfile;
  131.           end;
  132.       end;
  133.   end ;
  134.   FindClose( SR ) ;
  135.   list.sort;
  136.   combobox1.items.assign(list);
  137.   list.free;
  138. end;
  139. procedure TForm1.FormCreate(Sender: TObject);
  140. var i,j:integer;
  141. begin
  142.     root:= ExtractFilePath(ParamStr(0));
  143.     readskinfile('....skins');
  144. //   load skin file from TSkinStore
  145.    Sd1.LoadFromCollection(skinstore1,2);
  146.    Sd2.LoadFromCollection(skinstore1,1);
  147.    if not sd1.active then sd1.active:=true;
  148.     with stringgrid1 do begin
  149.        rowcount:=combobox1.items.count+1;
  150.        colcount:=7;
  151.        for i:= 0 to colcount-1 do
  152.          cells[i,0]:=format('column%1d',[i]);
  153.        for i:= 1 to rowcount-1 do begin
  154.          cells[0,i]:=format('skin file%1d',[i]);
  155.          cells[1,i]:=combobox1.items[i-1];
  156.        end;
  157.        fixedcolor:=sd1.colors[csButtonFace];
  158.     end;
  159.     Readini;
  160. end;
  161. procedure TForm1.ComboBox1Click(Sender: TObject);
  162. begin
  163.    sd1.skinfile:='....skins'+combobox1.text;
  164.    stringgrid1.fixedcolor:=sd1.colors[csButtonFace];
  165.    if not sd1.active then sd1.active:=true;
  166. end;
  167. procedure TForm1.sf1CaptionBtnClick(Sender: TObject; action: Integer);
  168. begin
  169.      showmessage('Custom Caption Button Click No:'+inttostr(action));
  170. end;
  171. procedure TForm1.SpeedButton1Click(Sender: TObject);
  172. begin
  173. //   sd1.skinfile:='..skins'+combobox1.items[1];
  174. //   stringgrid1.fixedcolor:=sd1.colors[csButtonFace];
  175. //    skinaddlog('****************************');
  176.    timer1.enabled:= not timer1.enabled;
  177. end;
  178. procedure TForm1.LoadBtnClick(Sender: TObject);
  179. begin
  180.   Dialog1.filter:='Skin files (*.skn)|*.SKN';
  181.   Dialog1.initialdir:='....skins';
  182.   if Dialog1.execute then
  183.      sd1.skinfile:=dialog1.filename;
  184.   if not sd1.Active then
  185.    sd1.Active:=true;
  186. end;
  187. procedure TForm1.ExceptionBtnClick(Sender: TObject);
  188. var i:integer;
  189. begin
  190.     i:=1;
  191.     Ep:= 100 div (i-1);
  192. end;
  193. procedure TForm1.MessageBtnClick(Sender: TObject);
  194. begin
  195.    MessageDlg('VclSkin2.0 Demo !'#13'Message Window Skin Demo.',
  196.         mtInformation,[mbOk], 0);
  197. end;
  198. procedure TForm1.Skin21Click(Sender: TObject);
  199. begin
  200.    Dialog2.execute;
  201. end;
  202. procedure TForm1.Skin31Click(Sender: TObject);
  203. begin
  204.   Dialog3.execute;
  205. end;
  206. procedure TForm1.PrintDialog2Click(Sender: TObject);
  207. begin
  208.   Dialog4.execute;
  209. end;
  210. procedure TForm1.Loadskin(aname:string);
  211. var  RS: TResourceStream;
  212. begin
  213.     RS := TResourceStream.Create(HInstance,aname,RT_RCDATA);
  214.     sd1.loadfromstream(rs);
  215.     rs.free;
  216. end;
  217. procedure TForm1.Skin12Click(Sender: TObject);
  218. var i:integer;
  219. begin
  220.    i:=Tcomponent(sender).tag;
  221.    Sd1.LoadFromCollection(skinstore1,i);
  222. end;
  223. procedure TForm1.Button1Click(Sender: TObject);
  224. begin
  225.    if form2=nil then
  226.      Application.CreateForm(TForm2, Form2);
  227.    form2.show;
  228. end;
  229. procedure TForm1.Timer1Timer(Sender: TObject);
  230. begin
  231.    ProgressBar1.position:=ProgressBar1.position+1;
  232.    if ProgressBar1.position>99 then
  233.       ProgressBar1.position:=0;
  234. end;
  235. procedure TForm1.Readini;
  236. var ini3:Tinifile;
  237. begin
  238.    ini3 := TIniFile.Create(root+ininame);
  239.    ClientHeight:=ini3.readinteger('Path','height',400);
  240.    ClientWidth:=ini3.readinteger('Path','width',400);
  241.    top:=ini3.readinteger('Path','top',0);
  242.    left:=ini3.readinteger('Path','left',0);
  243.    ini3.free;
  244. end;
  245. procedure TForm1.Writeini;
  246. var ini3:Tinifile;
  247. begin
  248.    ini3 := TIniFile.Create(root+ininame);
  249.    ini3.writeinteger('Path','Width',ClientWidth);
  250.    ini3.writeinteger('Path','Height',ClientHeight);
  251.    ini3.writeinteger('Path','Left',left);
  252.    ini3.writeinteger('Path','Top',top);
  253.    ini3.free;
  254. end;
  255. procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  256. begin
  257.     Writeini;
  258. end;
  259. end.