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

📄 acselectskin.pas

📁 Alpha Controls 5.40,delphi上的alpha开发源码控件包。没有密码。5.40版的最新版。
💻 PAS
字号:
unit acSelectSkin;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, sAlphaListBox, StdCtrls, Buttons, sBitBtn, sSkinProvider,
  ExtCtrls, sPanel, ComCtrls, sTreeView, acShellCtrls, Mask, sMaskEdit,
  sSkinManager, sCustomComboEdit, sTooledit;

type
  TFormSkinSelect = class(TForm)
    sListBox1: TsListBox;
    sBitBtn1: TsBitBtn;
    sBitBtn2: TsBitBtn;
    sPanel1: TsPanel;
    sSkinProvider1: TsSkinProvider;
    sDirectoryEdit1: TsDirectoryEdit;
    procedure sListBox1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sDirectoryEdit1Change(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure sListBox1DblClick(Sender: TObject);
  public
    sName : string;
    SkinTypes : TacSkinTypes;
  end;

var
  FormSkinSelect: TFormSkinSelect;

function SelectSkin(var SkinName : string; var SkinDir : string; SkinTypes : TacSkinTypes = stAllSkins) : boolean;

implementation

uses acntUtils, acSkinPreview;

{$R *.dfm}

function SelectSkin(var SkinName : string; var SkinDir : string; SkinTypes : TacSkinTypes = stAllSkins) : boolean;
begin
  Result := False;
  FormSkinSelect := TFormSkinSelect.Create(Application);
  FormSkinSelect.SkinTypes := SkinTypes;
  FormSkinSelect.sDirectoryEdit1.Text := SkinDir;
  FormSkinSelect.sName := SkinName;
  if FormSkinSelect.ShowModal = mrOk then begin
    SkinName := FormSkinSelect.sListBox1.Items[FormSkinSelect.sListBox1.ItemIndex];
    SkinDir := FormSkinSelect.sDirectoryEdit1.Text;
    Result := True;
  end;
  FreeAndNil(FormSkinSelect);
end;

procedure TFormSkinSelect.sListBox1Click(Sender: TObject);
begin
  FormSkinPreview.PreviewManager.SkinName := FormSkinSelect.sListBox1.Items[FormSkinSelect.sListBox1.ItemIndex];
  FormSkinPreview.PreviewManager.Active := True;

  sBitBtn1.Enabled := FormSkinSelect.sListBox1.ItemIndex > -1;
  FormSkinPreview. Visible := True;
end;

procedure TFormSkinSelect.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if FormSkinPreview <> nil then FreeAndNil(FormSkinPreview);
end;

procedure TFormSkinSelect.sDirectoryEdit1Change(Sender: TObject);
begin
  if Assigned(FormSkinPreview) and Assigned(FormSkinPreview.PreviewManager) then begin
    FormSkinPreview.PreviewManager.SkinDirectory := sDirectoryEdit1.Text;
    sListBox1.Items.Clear;
    FormSkinPreview.PreviewManager.GetExternalSkinNames(sListBox1.Items, SkinTypes);
    sBitBtn1.Enabled := sListBox1.ItemIndex > -1;
    if not sBitBtn1.Enabled then begin
      FormSkinPreview. Visible := False;
      FormSkinPreview.PreviewManager.Active := False;
    end;
  end;
end;

procedure TFormSkinSelect.FormShow(Sender: TObject);
var
  i : integer;
begin
  if FormSkinPreview = nil then begin
    FormSkinPreview := TFormSkinPreview.Create(Application);
    FormSkinPreview.Visible := False;
    FormSkinPreview.Align := alClient;
  end;
  FormSkinPreview.Parent := sPanel1;
  sDirectoryEdit1.OnChange(sDirectoryEdit1);
  if sName <> '' then begin
    i := sListBox1.Items.IndexOf(sName);
    if i > -1 then sListBox1.ItemIndex := i;
  end;
end;

procedure TFormSkinSelect.sListBox1DblClick(Sender: TObject);
begin
  sBitBtn1.Click
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -