📄 spdialogs.pas
字号:
procedure SLBOnDblClick(Sender: TObject);
end;
TspSelectSkinDialog = class(TComponent)
private
FSD: TspSkinData;
FSkinList: TspCompressedSkinList;
FCtrlFSD: TspSkinData;
FDefaultFont: TFont;
FTitle: String;
FDlgFrm: TspSelectSkinDlgForm;
FAlphaBlend: Boolean;
FAlphaBlendValue: Byte;
FAlphaBlendAnimation: Boolean;
FSelectedSkin: TspCompressedStoredSkin;
FSelectedSkinIndex: Integer;
function GetTitle: string;
procedure SetTitle(const Value: string);
procedure SetDefaultFont(Value: TFont);
protected
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function Execute(DefaultCompressedSkin: TspCompressedStoredSkin): Boolean; overload;
function Execute(SkinIndex: Integer): Boolean; overload;
property SelectedSkin: TspCompressedStoredSkin read FSelectedSkin;
property SelectedSkinIndex: Integer read FSelectedSkinIndex;
published
property SkinList: TspCompressedSkinList read FSkinList write FSkinList;
property AlphaBlend: Boolean read FAlphaBlend write FAlphaBlend;
property AlphaBlendValue: Byte read FAlphaBlendValue write FAlphaBlendValue;
property AlphaBlendAnimation: Boolean
read FAlphaBlendAnimation write FAlphaBlendAnimation;
property SkinData: TspSkinData read FSD write FSD;
property CtrlSkinData: TspSkinData read FCtrlFSD write FCtrlFSD;
property DefaultFont: TFont read FDefaultFont write SetDefaultFont;
property Title: string read GetTitle write SetTitle;
end;
TspSkinSelectValueDialog = class(TComponent)
private
procedure SetSelectValues(const Value: TStrings);
protected
Form: TForm;
FSD: TspSkinData;
FCtrlFSD: TspSkinData;
FButtonSkinDataName: String;
FSelectSkinDataName: String;
FLabelSkinDataName: String;
FDefaultLabelFont: TFont;
FDefaultSelectFont: TFont;
FDefaultButtonFont: TFont;
FDefaultValueIndex: Integer;
FSelectValues: TStrings;
FAlphaBlend: Boolean;
FAlphaBlendValue: Byte;
FAlphaBlendAnimation: Boolean;
FUseSkinFont: Boolean;
procedure SetDefaultLabelFont(Value: TFont);
procedure SetDefaultButtonFont(Value: TFont);
procedure SetDefaultSelectFont(Value: TFont);
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
public
function Execute(const ACaption, APrompt: string; var ValueIndex: Integer): Boolean;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property AlphaBlend: Boolean read FAlphaBlend write FAlphaBlend;
property AlphaBlendValue: Byte read FAlphaBlendValue write FAlphaBlendValue;
property AlphaBlendAnimation: Boolean
read FAlphaBlendAnimation write FAlphaBlendAnimation;
property SkinData: TspSkinData read FSD write FSD;
property CtrlSkinData: TspSkinData read FCtrlFSD write FCtrlFSD;
property ButtonSkinDataName: String read FButtonSkinDataName write FButtonSkinDataName;
property LabelSkinDataName: String read FLabelSkinDataName write FLabelSkinDataName;
property ComboboxSkinDataName: String read FSelectSkinDataName write FSelectSkinDataName;
property SelectValues: TStrings read FSelectValues Write SetSelectValues;
property DefaultValue: Integer read FDefaultValueIndex Write FDefaultValueIndex;
property DefaultLabelFont: TFont read FDefaultLabelFont write SetDefaultLabelFont;
property DefaultButtonFont: TFont read FDefaultButtonFont write SetDefaultButtonFont;
property DefaultComboBoxFont: TFont read FDefaultSelectFont write SetDefaultSelectFont;
property UseSkinFont: Boolean read FUseSkinFont write FUseSkinFont;
end;
TspSelectSkinsFromFoldersDlgForm = class(TForm)
public
FSkinsFolder: String;
FIniFileName: String;
DSF: TspDynamicSkinForm;
OpenButton, CancelButton: TspSkinButton;
PreviewForm: TForm;
PreviewDSF: TspDynamicSkinForm;
PreviewSkinData: TspSkinData;
PreviewButton: TspSkinButton;
SkinsListBox: TspSkinListBox;
constructor CreateEx(AOwner: TComponent; ASkinsFolder, ADefaultSkinFolder, AIniFileName: String;
ACtrlSkinData: TspSkinData);
destructor Destroy; override;
procedure SLBOnChange(Sender: TObject);
procedure SLBOnDblClick(Sender: TObject);
end;
TspSelectSkinsFromFoldersDialog = class(TComponent)
private
FSD: TspSkinData;
FCtrlFSD: TspSkinData;
FDefaultFont: TFont;
FTitle: String;
FDlgFrm: TspSelectSkinsFromFoldersDlgForm;
FAlphaBlend: Boolean;
FAlphaBlendValue: Byte;
FAlphaBlendAnimation: Boolean;
FFileName: String;
FFolderName: String;
function GetTitle: string;
procedure SetTitle(const Value: string);
procedure SetDefaultFont(Value: TFont);
protected
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function Execute(ASkinsFolder, ADefaultSkinFolder, AIniFileName: String): Boolean;
property FileName: String read FFileName;
property FolderName: String read FFolderName;
published
property AlphaBlend: Boolean read FAlphaBlend write FAlphaBlend;
property AlphaBlendValue: Byte read FAlphaBlendValue write FAlphaBlendValue;
property AlphaBlendAnimation: Boolean
read FAlphaBlendAnimation write FAlphaBlendAnimation;
property SkinData: TspSkinData read FSD write FSD;
property CtrlSkinData: TspSkinData read FCtrlFSD write FCtrlFSD;
property DefaultFont: TFont read FDefaultFont write SetDefaultFont;
property Title: string read GetTitle write SetTitle;
end;
TspFindOption = (spfrDown, spfrFindNext, spfrHideMatchCase, spfrHideWholeWord,
spfrHideUpDown, spfrMatchCase, spfrDisableMatchCase, spfrDisableUpDown,
spfrDisableWholeWord, spfrReplace, spfrReplaceAll, spfrWholeWord);
TspFindOptions = set of TspFindOption;
TspSkinFindDialog = class(TComponent)
private
FTitle: String;
FOptions: TspFindOptions;
FPosition: TPoint;
FOnFind: TNotifyEvent;
FFindText: String;
FGroupBoxTransparentMode: Boolean;
function GetFindText: string;
function GetLeft: Integer;
function GetPosition: TPoint;
function GetTop: Integer;
procedure SetFindText(const Value: string);
procedure SetLeft(Value: Integer);
procedure SetPosition(const Value: TPoint);
procedure SetTop(Value: Integer);
function GetTitle: string;
procedure SetTitle(const Value: string);
procedure MatchCaseCheckBoxClick(Sender: TObject);
procedure MatchWWOnlyCheckBoxClick(Sender: TObject);
procedure DirecionUpClick(Sender: TObject);
procedure DirecionDownClick(Sender: TObject);
procedure CloseButtonClick(Sender: TObject);
procedure FindButtonClick(Sender: TObject);
procedure OnFormClose(Sender: TObject; var Action: TCloseAction);
procedure EditChange(Sender: TObject);
procedure EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
protected
//
Form: TForm;
FSD: TspSkinData;
FCtrlFSD: TspSkinData;
FEdit: TspSkinEdit;
FDefaultLabelFont: TFont;
FDefaultButtonFont: TFont;
FDefaultEditFont: TFont;
FAlphaBlend: Boolean;
FAlphaBlendValue: Byte;
FAlphaBlendAnimation: Boolean;
FUseSkinFont: Boolean;
MatchWWOnlyCheckBox, MatchCaseCheckBox: TspSkinCheckRadioBox;
FindButton: TspSkinButton;
procedure SetDefaultLabelFont(Value: TFont);
procedure SetDefaultButtonFont(Value: TFont);
procedure SetDefaultEditFont(Value: TFont);
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
//
procedure Find; dynamic;
//
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function Execute: Boolean;
property Left: Integer read GetLeft write SetLeft;
property Position: TPoint read GetPosition write SetPosition;
property Top: Integer read GetTop write SetTop;
published
property GroupBoxTransparentMode: Boolean
read FGroupBoxTransparentMode write FGroupBoxTransparentMode;
property FindText: string read GetFindText write SetFindText;
property Options: TspFindOptions read FOptions write FOptions default [spfrDown];
//
property Title: string read GetTitle write SetTitle;
property AlphaBlend: Boolean read FAlphaBlend write FAlphaBlend;
property AlphaBlendValue: Byte read FAlphaBlendValue write FAlphaBlendValue;
property AlphaBlendAnimation: Boolean
read FAlphaBlendAnimation write FAlphaBlendAnimation;
property SkinData: TspSkinData read FSD write FSD;
property CtrlSkinData: TspSkinData read FCtrlFSD write FCtrlFSD;
property DefaultLabelFont: TFont read FDefaultLabelFont write SetDefaultLabelFont;
property DefaultButtonFont: TFont read FDefaultButtonFont write SetDefaultButtonFont;
property DefaultEditFont: TFont read FDefaultEditFont write SetDefaultEditFont;
property UseSkinFont: Boolean read FUseSkinFont write FUseSkinFont;
//
property OnFind: TNotifyEvent read FOnFind write FOnFind;
end;
TspSkinReplaceDialog = class(TComponent)
private
FTitle: String;
FOptions: TspFindOptions;
FPosition: TPoint;
FOnFind: TNotifyEvent;
FOnReplace: TNotifyEvent;
FFindText: String;
FReplaceText: String;
FGroupBoxTransparentMode: Boolean;
function GetFindText: string;
function GetReplaceText: string;
function GetLeft: Integer;
function GetPosition: TPoint;
function GetTop: Integer;
procedure SetFindText(const Value: string);
procedure SetReplaceText(const Value: string);
procedure SetLeft(Value: Integer);
procedure SetPosition(const Value: TPoint);
procedure SetTop(Value: Integer);
function GetTitle: string;
procedure SetTitle(const Value: string);
procedure MatchCaseCheckBoxClick(Sender: TObject);
procedure MatchWWOnlyCheckBoxClick(Sender: TObject);
procedure DirecionUpClick(Sender: TObject);
procedure DirecionDownClick(Sender: TObject);
procedure CloseButtonClick(Sender: TObject);
procedure FindButtonClick(Sender: TObject);
procedure ReplaceButtonClick(Sender: TObject);
procedure ReplaceAllButtonClick(Sender: TObject);
procedure OnFormClose(Sender: TObject; var Action: TCloseAction);
procedure EditChange(Sender: TObject);
procedure ReplaceEditChange(Sender: TObject);
procedure EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure ReplaceEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
protected
//
Form: TForm;
FSD: TspSkinData;
FCtrlFSD: TspSkinData;
FEdit: TspSkinEdit;
FReplaceEdit: TspSkinEdit;
FDefaultLabelFont: TFont;
FDefaultButtonFont: TFont;
FDefaultEditFont: TFont;
FAlphaBlend: Boolean;
FAlphaBlendValue: Byte;
FAlphaBlendAnimation: Boolean;
FUseSkinFont: Boolean;
MatchWWOnlyCheckBox, MatchCaseCheckBox: TspSkinCheckRadioBox;
CloseButton, FindButton, ReplaceButton, ReplaceAllButton: TspSkinButton;
procedure SetDefaultLabelFont(Value: TFont);
procedure SetDefaultButtonFont(Value: TFont);
procedure SetDefaultEditFont(Value: TFont);
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
//
procedure Find; dynamic;
procedure Replace; dynamic;
//
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function Execute: Boolean;
property Left: Integer read GetLeft write SetLeft;
property Position: TPoint read GetPosition write SetPosition;
property Top: Integer read GetTop write SetTop;
published
property GroupBoxTransparentMode: Boolean
read FGroupBoxTransparentMode write FGroupBoxTransparentMode;
property FindText: string read GetFindText write SetFindText;
property ReplaceText: string read GetReplaceText write SetReplaceText;
property Options: TspFindOptions read FOptions write FOptions default [spfrDown];
//
property Title: string read GetTitle write SetTitle;
property AlphaBlend: Boolean read FAlphaBlend write FAlphaBlend;
property AlphaBlendValue: Byte read FAlphaBlendValue write FAlphaBlendValue;
property AlphaBlendAnimation: Boolean
read FAlphaBlendAnimation write FAlphaBlendAnimation;
property SkinData: TspSkinData read FSD write FSD;
property CtrlSkinData: TspSkinData read FCtrlFSD write FCtrlFSD;
property DefaultLabelFont: TFont read FDefaultLabelFont write SetDefaultLabelFont;
property DefaultButtonFont: TFont read FDefaultButtonFont write SetDefaultButtonFont;
property DefaultEditFont: TFont read FDefaultEditFont write SetDefaultEditFont;
property UseSkinFont: Boolean read FUseSkinFont write FUseSkinFont;
//
property OnFind: TNotifyEvent read FOnFind write FOnFind;
property OnReplace: TNotifyEvent read FOnReplace write FOnReplace;
end;
implementation
Uses spConst, spUtils;
{$R *.res}
// script
const
ScriptNames: array[0..18] of String =
('ANSI_CHARSET', 'DEFAULT_CHARSET', 'SYMBOL_CHARSET', 'SHIFTJIS_CHARSET',
'HANGEUL_CHARSET', 'GB2312_CHARSET', 'CHINESEBIG5_CHARSET',
'OEM_CHARSET', 'JOHAB_CHARSET', 'HEBREW_CHARSET', 'ARABIC_CHARSET',
'GREEK_CHARSET', 'TURKISH_CHARSET', 'VIETNAMESE_CHARSET',
'THAI_CHARSET', 'EASTEUROPE_CHARSET', 'RUSSIAN_CHARSET',
'MAC_CHARSET', 'BALTIC_CHARSET');
ScriptCodes: array[0..18] of TFontCharSet =
(0, 1, 2, $80, 129, 134, 136, 255, 130, 177, 178, 161, 162, 163,
222, 238, 204, 77, 186);
function GetIndexFromCharSet(CharSet: TFontCharSet): Integer;
var
I: Integer;
begin
Result := 1;
for I := 0 to 18 do
if CharSet = ScriptCodes[I]
then
begin
Result := I;
Break;
end;
end;
function GetCharSetFormIndex(Index: Integer): TFontCharSet;
begin
if Index <> -1
then
Result := ScriptCodes[Index]
else
Result := 1;
end;
//
constructor TspSkinInputDialog.Create;
begin
inherited Create(AOwner);
FAlphaBlend := False;
FAlphaBlendAnimation := False;
FAlphaBlendValue := 200;
FButtonSkinDataName := 'button';
FLabelSkinDataName := 'stdlabel';
FEditSkinDataName := 'edit';
FDefaultLabelFont := TFont.Create;
FDefaultButtonFont := TFont.Create;
FDefaultEditFont := TFont.Create;
FUseSkinFont := True;
with FDefaultLabelFont do
begin
Name := 'Arial';
Style := [];
Height := 14;
end;
with FDefaultButtonFont do
begin
Name := 'Arial';
Style := [];
Height := 14;
end;
with FDefaultEditFont do
begin
Name := 'Arial';
Style := [];
Height := 14;
end;
end;
destructor TspSkinInputDialog.Destroy;
begin
FDefaultLabelFont.Free;
FDefaultButtonFont.Free;
FDefaultEditFont.Free;
inherited;
end;
procedure TspSkinInputDialog.SetDefaultLabelFont;
begin
FDefaultLabelFont.Assign(Value);
end;
procedure TspSkinInputDialog.SetDefaultEditFont;
begin
FDefaultEditFont.Assign(Value);
end;
procedure TspSkinInputDialog.SetDefaultButtonFont;
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -