📄 skinpas.pas
字号:
unit skinpas;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons, DBCtrls, ExtDlgs, DB, ADODB,
ieview, imageenview, dbimageen,jpeg,IniFiles;
type
Tfrmskin = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
GroupBox1: TGroupBox;
DBImage1: TDBImage;
ListBox1: TListBox;
GroupBox2: TGroupBox;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
ListBox2: TListBox;
Button1: TButton;
Button2: TButton;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
Label3: TLabel;
Edit3: TEdit;
dlgOpenSkinFile: TOpenDialog;
qrySkin: TADOQuery;
dlgOpenPicSkin: TOpenDialog;
procedure FormCreate(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ListBox2Click(Sender: TObject);
private
{ Private declarations }
procedure readjpg;//读图形文件
procedure addskinlist;//添加皮肤列表
procedure writeskin;//写SKIN的过程
public
{ Public declarations }
end;
var
frmskin: Tfrmskin;
StrSelectname:String;//选定皮肤的内容
StrDelString:String;//删除内容
implementation
uses datalink, mainpas;
{$R *.dfm}
procedure Tfrmskin.FormCreate(Sender: TObject);
begin
Self.Left:=(Screen.DesktopWidth -Self.Width) div 2;
Self.Top:=(Screen.DesktopHeight -Self.Height) div 2;
addskinlist;
readjpg;
end;
procedure Tfrmskin.BitBtn3Click(Sender: TObject);
begin
Self.Close;
end;
procedure Tfrmskin.BitBtn4Click(Sender: TObject);
begin
if dlgOpenSkinFile.Execute then
Edit1.Text:=dlgOpenSkinFile.FileName;
end;
procedure Tfrmskin.BitBtn5Click(Sender: TObject);
begin
if dlgOpenPicSkin.Execute then
Edit2.Text:=dlgOpenPicSkin.FileName;
end;
procedure Tfrmskin.Button1Click(Sender: TObject);
var i:Integer;
var SkinSt:TFileStream;//定义文件流
var SkinPicSt:TFileStream;//定义图片流
begin
if (Edit1.Text ='') or (Edit2.Text ='') or (Edit3.Text ='') then
begin
Application.MessageBox('信息部完整!请确认你的输入','提示',MB_ICONEXCLAMATION+MB_OK);
Exit;
end;
i:=Application.MessageBox('确定要添加皮肤吗?','询问',MB_ICONQUESTION+MB_OKCANCEL);
if i=1 then
begin
//开始添加皮肤
qrySkin.Close;
qrySkin.SQL.Clear;
qrySkin.SQL.Add('select * from softSkin');
qrySkin.Open;
SkinSt:=TFileStream.Create(Edit1.Text,fmOpenRead);
SkinSt.Position:=0;
SkinPicSt:=TFileStream.Create(Edit2.Text ,fmOpenRead);
SkinPicSt.Position:=0;
qrySkin.Append;
qrySkin.FieldByName('名称').AsString:=Edit3.Text;
TBlobField(qrySkin.FieldByName('文件')).LoadFromStream(SkinSt);
TBlobField(qrySkin.FieldByName('图片')).LoadFromStream(SkinPicSt);
qrySkin.Post;
SkinSt.Free;
SkinPicSt.Free;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
addskinlist;
Application.MessageBox('皮肤保存成功!','提示',MB_ICONINFORMATION+MB_OK);
end;
end;
//******************************************************************************
//***************************功能说明:读图形文件********************************
//******************************************************************************
procedure Tfrmskin.readjpg;
var tempstream:TStringStream;
tempjpeg:TJPEGImage;
begin
try
tempstream:=TStringStream.Create(' ');
TBlobField(qrySkin.FieldByName('图片')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
DBImage1.Picture.Bitmap.Assign(tempjpeg);
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
//******************************************************************************
//****************************功能说明:添加皮肤列表*****************************
//******************************************************************************
procedure Tfrmskin.addskinlist;
begin
qrySkin.Close;
qrySkin.SQL.Clear;
qrySkin.SQL.Add('select * from softSkin ');
qrySkin.Open;
ListBox1.Items.Clear;
ListBox2.Items.Clear;
ListBox1.Items.Append('[系统默认]');
while not qrySkin.Recordset.EOF do
begin
ListBox1.Items.Append(Trim(qrySkin.Recordset.Fields['名称'].Value));
ListBox2.Items.Append(Trim(qrySkin.Recordset.Fields['名称'].Value));
qrySkin.Recordset.MoveNext;
end;
end;
procedure Tfrmskin.ListBox1Click(Sender: TObject);
var i:Integer;
begin
i:=ListBox1.ItemIndex;
qrySkin.Close;
qrySkin.SQL.Clear;
qrySkin.SQL.Add('select * from softSkin where 名称='+chr(39)+ListBox1.Items.Strings[i]+chr(39));
qrySkin.Open;
StrSelectname:=ListBox1.Items.Strings[i];
if qrySkin.Recordset.RecordCount >0 then
begin
readjpg;
end;
end;
procedure Tfrmskin.BitBtn2Click(Sender: TObject);
var SkinTr:TStream;
begin
if StrSelectname ='[系统默认]'then
begin
writeskin;
frmain.SkinData1.Active:=False;
Exit;
end;
BitBtn2.Cursor:=crHourGlass;
qrySkin.Close;
qrySkin.SQL.Clear;
qrySkin.SQL.Add('select * from softskin where 名称='+chr(39)+StrSelectname +chr(39));
qrySkin.Open;
if qrySkin.Recordset.RecordCount >0 then
begin
SkinTr:=qrySkin.CreateBlobStream(qrySkin.FieldByName('文件'),bmRead);
frmain.SkinData1.LoadFromStream(SkinTr);
frmain.SkinData1.Active:=True;
writeskin;
SkinTr.Free;
end;
BitBtn2.Cursor:=crDefault;
end;
procedure Tfrmskin.BitBtn1Click(Sender: TObject);
begin
BitBtn2.Click;
Self.Close;
end;
//******************************************************************************
//**************************写配置文件的过程************************************
//******************************************************************************
procedure Tfrmskin.writeskin;
var skinFile:TIniFile;
begin
skinFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'skinconfig.ini');
skinFile.WriteString('skin','name',StrSelectname);
skinFile.Free;
end;
procedure Tfrmskin.Button2Click(Sender: TObject);
var i:Integer;
begin
i:=Application.MessageBox('确定要删除吗?','提示',MB_ICONQUESTION+MB_OKCANCEL);
if i=1 then
begin
//删除皮肤的操作
if StrDelString ='[系统默认]' then
begin
Application.MessageBox('请选择你要删除的皮肤!','提示',MB_ICONEXCLAMATION+MB_OK);
Exit;
end;
//进行删除操作
qrySkin.Close;
qrySkin.SQL.Clear;
qrySkin.SQL.Add('delete from softskin where 名称='+chr(39)+StrDelString +chr(39));
qrySkin.ExecSQL;
Application.MessageBox('操作成功!','提示',MB_ICONINFORMATION+MB_OK);
addskinlist;
end;
end;
procedure Tfrmskin.ListBox2Click(Sender: TObject);
var i:Integer;
begin
i:=ListBox2.ItemIndex;
StrDelString:=ListBox2.Items.Strings[i];
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -