⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 layoutunit.pas

📁 冒险岛吸怪源码UCE的制作材料 用于冒险岛游戏的外挂
💻 PAS
字号:
unit LayoutUnit;

interface

uses
  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 + -