📄 layoutunit.pas.svn-base
字号:
unit LayoutUnit;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ExtDlgs, Buttons, Menus,unit2;type TLayout = class(TForm) OpenPictureDialog1: TOpenPictureDialog; GroupBox1: TGroupBox; Backgroundimage: TImage; ColorDialog1: TColorDialog; GroupBox2: TGroupBox; Button3: TButton; Button4: TButton; Label1: TLabel; Button6: TButton; Label2: TLabel; Button7: TButton; Processnamecolor: TLabel; Edit1: TEdit; SpeedButton1: TSpeedButton; Normaltextcolor: TLabel; SpeedButton2: TSpeedButton; Edit2: TEdit; ShowHelp: TCheckBox; MainMenu1: TMainMenu; Load1: TMenuItem; Open1: TMenuItem; Save1: TMenuItem; Saveas1: TMenuItem; N1: TMenuItem; Close1: TMenuItem; Label4: TLabel; Edit4: TEdit; SpeedButton4: TSpeedButton; Panel1: TPanel; Panel4: TPanel; Panel2: TPanel; Button1: TButton; Panel3: TPanel; Edit3: TEdit; SpeedButton3: TSpeedButton; Label3: TLabel; Edit7: TEdit; SpeedButton7: TSpeedButton; Panel7: TPanel; Label7: TLabel; SpeedButton8: TSpeedButton; Edit8: TEdit; Label8: TLabel; Panel8: TPanel; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Button2: TButton; Edit5: TEdit; SpeedButton5: TSpeedButton; Panel5: TPanel; Label5: TLabel; Saveasdefault1: TMenuItem; procedure Button7Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure Edit1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); procedure BackgroundimageStartDrag(Sender: TObject; var DragObject: TDragObject); procedure BackgroundimageEndDrag(Sender, Target: TObject; X, Y: Integer); procedure Button6Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure Close1Click(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Edit2Change(Sender: TObject); procedure Edit3Change(Sender: TObject); procedure Edit4Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure SpeedButton7Click(Sender: TObject); procedure Edit7Change(Sender: TObject); procedure SpeedButton8Click(Sender: TObject); procedure Edit8Change(Sender: TObject); procedure Save1Click(Sender: TObject); procedure Saveas1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ShowHelpClick(Sender: TObject); procedure Open1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Edit5Change(Sender: TObject); procedure Saveasdefault1Click(Sender: TObject); private { Private declarations } X2,Y2: Integer; DragColor: Dword; Changed: Boolean; tempskin: TSkin; Procedure ApplySettings; procedure SaveSkin(filename: String); public { Public declarations } memimage2: TMemorystream; procedure Openskin(filename: string); end;var Layout: TLayout;implementation{$R *.dfm}procedure TLayout.Openskin(filename: String);var skinfile: Tfilestream; newskin: TSkin;begin skinfile:=TFilestream.Create(FileName,fmOpenRead); skinfile.ReadBuffer(newskin,sizeof(newskin)); mainform.memimage.CopyFrom(skinfile,skinfile.Size-skinfile.Position); mainform.memimage.Seek(0,soFromBeginning); backgroundimage.Picture.Bitmap.LoadFromStream(mainform.memimage); backgroundimage.visible:=newskin.backgroundimage; skinfile.free;end;procedure TLayout.SaveSkin(filename: String);var newskin: unit2.TSkin; skinfile: TFileStream;begin skinfile:=TFilestream.Create(filename,fmCreate); newskin:=tempskin; newskin.Marker:='CES1.0'; skinfile.WriteBuffer(newskin,sizeof(newskin)); if newskin.backgroundimage then backgroundimage.Picture.Bitmap.SaveToStream(skinfile); skinfile.free;end;procedure TLayout.ApplySettings;//var Color: Tcolor;begin//end;procedure TLayout.Button7Click(Sender: TObject);var a: String;begin a:=OpenPictureDialog1.FileName; if OpenPictureDialog1.Execute then begin if uppercase(extractfileext(openpicturedialog1.FileName))<>'.BMP' then raise exception.Create('You may only load BMP files'); if fileexists(OpenPictureDialog1.FileName) then begin backgroundimage.Picture.LoadFromFile(OpenPictureDialog1.FileName); Backgroundimage.visible:=true; tempskin.backgroundimage:=true; changed:=true; end else openpicturedialog1.FileName:=a; end;end;procedure TLayout.SpeedButton1Click(Sender: TObject);begin ColorDialog1.color:=Panel1.Color; if Colordialog1.Execute then begin edit1.text:=IntTohex(Colordialog1.color,6); end;end;procedure TLayout.Edit1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);begin If Source is TImage then Accept:=true else Accept:=false;end;procedure TLayout.BackgroundimageStartDrag(Sender: TObject; var DragObject: TDragObject);var q: TCanvas; r: hDC;begin x2:=mouse.cursorpos.X; y2:=mouse.CursorPos.Y; r:=getDC(0); q:=TCanvas.Create; q.Handle:=r; dragcolor:=q.Pixels[x2,y2]; q.free; releasedc(0,r);end;procedure TLayout.BackgroundimageEndDrag(Sender, Target: TObject; X, Y: Integer);begin if (Target is TEdit) then (Target as TEdit).Text:=IntToHex(dragcolor,6);end;procedure TLayout.Button6Click(Sender: TObject);begin tempskin.backgroundimage:=false; Backgroundimage.visible:=false;end;procedure TLayout.Button3Click(Sender: TObject);begin Changed:=false; Close;end;procedure TLayout.Button4Click(Sender: TObject);begin Applysettings; Close;end;procedure TLayout.SpeedButton2Click(Sender: TObject);begin ColorDialog1.color:=panel2.color; if Colordialog1.Execute then begin edit2.Text:=IntTohex(Colordialog1.color,6); end;end;procedure TLayout.FormShow(Sender: TObject);begin tempskin:=mainform.Skin; Edit1.Text:=IntToHex(Mainform.Skin.ProcessTextColor,6); Panel1.color:=Mainform.Skin.ProcessTextColor; Edit2.Text:=IntToHex(Mainform.Skin.Normaltextcolor,6); Panel2.color:=MainForm.Skin.Normaltextcolor; Edit4.Text:=IntToHex(Mainform.Skin.Backgroundcolor,6); panel4.color:=Mainform.skin.Backgroundcolor; Edit3.Text:=IntToHex(Mainform.Skin.GroupBoxcolor,6); Panel3.color:=Mainform.Skin.Groupboxcolor; Edit7.Text:=IntToHex(Mainform.Skin.Textfieldcolor,6); Panel7.Color:=Mainform.Skin.Textfieldcolor; Edit8.Text:=IntToHex(Mainform.Skin.Textfieldbackgroundcolor,6); Panel8.Color:=Mainform.Skin.Textfieldbackgroundcolor; edit5.Text:=IntToHex(Mainform.Skin.Selectedrecordcolor,6); panel5.color:=Mainform.Skin.Selectedrecordcolor; showhelp.checked:=mainform.skin.showHelp;end;procedure TLayout.Close1Click(Sender: TObject);begin Close;end;procedure TLayout.FormCloseQuery(Sender: TObject; var CanClose: Boolean);var res: Integer;begin if changed then begin res:=MessageDlg('Apply your changes?',mtConfirmation, [mbYes,mbNo,mbCancel], 0); if res=mrCancel then begin canclose:=false; exit; end; if res=mrYes then applysettings; changed:=false; canclose:=true; end;end;procedure TLayout.SpeedButton3Click(Sender: TObject);begin ColorDialog1.color:=panel3.color; if Colordialog1.Execute then begin edit3.Text:=IntTohex(Colordialog1.color,6); end;end;procedure TLayout.SpeedButton4Click(Sender: TObject);begin ColorDialog1.color:=panel4.color; if Colordialog1.Execute then begin edit4.Text:=IntTohex(Colordialog1.color,6); end;end;procedure TLayout.Edit1Change(Sender: TObject);var i: Integer; c: Dword;begin val('$'+edit1.text,c,i); if i=0 then panel1.Color:=c; Changed:=true; tempskin.ProcessTextColor:=panel1.color;end;procedure TLayout.Edit1KeyPress(Sender: TObject; var Key: Char);begin case key of chr(65)..chr(70) : ; chr(97)..chr(102) : ; chr(8) : ; chr(16) : ; chr(48)..chr(57) : ; else key:=chr(0); end;end;procedure TLayout.Edit2Change(Sender: TObject);var i: Integer; c: Dword;begin val('$'+edit2.text,c,i); if i=0 then panel2.Color:=c; Changed:=true; tempskin.Normaltextcolor:=panel2.color; end;procedure TLayout.Edit3Change(Sender: TObject);var i: Integer; c: Dword;begin val('$'+edit3.text,c,i); if i=0 then panel3.Color:=c; Changed:=true; tempskin.Groupboxcolor:=panel3.color;end;procedure TLayout.Edit4Change(Sender: TObject);var i: Integer; c: Dword;begin val('$'+edit4.text,c,i); if i=0 then panel4.Color:=c; Changed:=true; tempskin.Backgroundcolor:=panel4.color;end;procedure TLayout.Button1Click(Sender: TObject);begin Applysettings;end;procedure TLayout.SpeedButton7Click(Sender: TObject);begin ColorDialog1.color:=panel7.color; if Colordialog1.Execute then begin edit7.Text:=IntTohex(Colordialog1.color,6); end;end;procedure TLayout.Edit7Change(Sender: TObject);var i: Integer; c: Dword;begin val('$'+edit7.text,c,i); if i=0 then panel7.Color:=c; Changed:=true; tempskin.Textfieldcolor:=panel7.color;end;procedure TLayout.SpeedButton8Click(Sender: TObject);begin ColorDialog1.color:=panel8.color; if Colordialog1.Execute then begin edit8.Text:=IntTohex(Colordialog1.color,6); end;end;procedure TLayout.Edit8Change(Sender: TObject);var i: Integer; c: Dword;begin val('$'+edit8.text,c,i); if i=0 then panel8.Color:=c; Changed:=true; tempskin.Textfieldbackgroundcolor:=panel8.Color;end;procedure TLayout.Save1Click(Sender: TObject);begin if savedialog1.FileName<>'' then SaveSkin(savedialog1.filename) else saveas1.Click; end;procedure TLayout.Saveas1Click(Sender: TObject);begin if savedialog1.Execute then begin saveskin(savedialog1.FileName); end;end;procedure TLayout.FormCreate(Sender: TObject);begin savedialog1.FileName:=''; Memimage2:=TMemorystream.Create; if mainform.Skin.backgroundimage then begin layout.Backgroundimage.Visible:=true; mainform.memimage.Seek(0,soFromBeginning); layout.Backgroundimage.Picture.Bitmap.LoadFromStream(mainform.memimage); end;end;procedure TLayout.ShowHelpClick(Sender: TObject);begin changed:=true; tempskin.showHelp:=showhelp.Checked;end;procedure TLayout.Open1Click(Sender: TObject);begin if opendialog1.execute then begin openskin(opendialog1.FileName); Edit1.Text:=IntToHex(tempskin.ProcessTextColor,6); Panel1.color:=tempskin.ProcessTextColor; Edit2.Text:=IntToHex(tempskin.Normaltextcolor,6); Panel2.color:=tempskin.Normaltextcolor; Edit4.Text:=IntToHex(tempskin.Backgroundcolor,6); panel4.color:=tempskin.Backgroundcolor; Edit3.Text:=IntToHex(tempskin.GroupBoxcolor,6); Panel3.color:=tempskin.Groupboxcolor; Edit7.Text:=IntToHex(tempskin.Textfieldcolor,6); Panel7.Color:=tempskin.Textfieldcolor; Edit8.Text:=IntToHex(tempskin.Textfieldbackgroundcolor,6); Panel8.Color:=tempskin.Textfieldbackgroundcolor; edit5.Text:=IntToHex(tempskin.Selectedrecordcolor,6); panel5.color:=tempskin.Selectedrecordcolor; showhelp.checked:=tempskin.showHelp; end;end;procedure TLayout.Button2Click(Sender: TObject);begin tempskin.backgroundimage:=false; tempskin.ProcessTextColor:=clMenuText; tempskin.Normaltextcolor:=clMenuText; tempskin.InvertedNormalTextColor:=clWhite; tempskin.Groupboxcolor:=clBtnFace; tempskin.Backgroundcolor:=clBtnFace; //clSilver; tempskin.Selectedrecordcolor:=clBlack; tempskin.Selectedrecordcolor2:=clHighlight; tempskin.Textfieldcolor:=clWindowText; tempskin.Textfieldbackgroundcolor:=clWindow; tempskin.showHelp:=true; edit1.Text:=IntToHex(tempskin.ProcessTextColor,6); edit2.Text:=IntToHex(tempskin.Normaltextcolor,6); edit4.Text:=IntToHex(tempskin.Backgroundcolor,6); edit3.Text:=IntToHex(tempskin.Groupboxcolor,6); edit7.Text:=IntToHex(tempskin.Textfieldcolor,6); edit8.Text:=IntToHex(tempskin.Textfieldbackgroundcolor,6); edit5.Text:=IntToHex(tempskin.Selectedrecordcolor,6); backgroundimage.Visible:=false; changed:=true;end;procedure TLayout.Edit5Change(Sender: TObject);var c: dword; i: Integer;begin val('$'+edit5.text,c,i); if i=0 then panel5.Color:=c; Changed:=true; tempskin.Selectedrecordcolor:=panel5.color;end;procedure TLayout.Saveasdefault1Click(Sender: TObject);begin saveskin('default.CES');end;end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -