📄 se_designer.pas
字号:
{==============================================================================
IDE Designer Unit
Copyright (C) 2000-2002 by Evgeny Kryukov
All rights reserved
All contents of this file and all other files included in this archive
are Copyright (C) 2002 Evgeny Kryukov. Use and/or distribution of
them requires acceptance of the License Agreement.
See License.txt for licence information
$Id: se_designer.pas,v 1.11 2002/10/29 02:41:20 Evgeny Exp $
===============================================================================}
unit se_designer;
{$I se_define.inc}
{$T-,W-,X+,P+}
interface
uses
Windows, SysUtils, Classes, Controls, Forms, Menus, StdCtrls, Buttons,
ComCtrls, CheckLst, ExtCtrls, Graphics, ToolIntf, ExptIntf, EditIntf,
{$IFDEF KS_COMPILER6_UP}
DesignIntf, DesignWindows, DesignEditors,
{$ELSE}
DsgnIntf, DsgnWnds, LibIntf,
{$ENDIF}
se_controls;
type
TSeClassKind = (ckCheckBox, ckRadioButton, ckTrackBar, ckGroupBox, ckRadioGroup,
ckScrollBar, ckListBox, ckEdit, ckComboBox, ckSpeedButton, ckSpinButton,
ckButton, ckProgressBar, ckCustomForm, ckEngine, ckTabControl,
ckMemo, ckSpinEdit, ckSplitter, ckMaskEdit, ckScrollBox, ckLabel, ckStringGrid,
ckDrawGrid, ckToolbar, ckControlBar, ckStatusBar, ckHeaderControl, ckTreeView,
ckListView, ckPanel,
{ Last }
ckLast);
TSeConvertEvent = procedure (Sender: TObject; Max, Position: integer) of object;
TSeCustomConverter = class(TComponent)
private
FRules: TStrings;
FLog: TStrings;
FOnProgress: TSeConvertEvent;
function GetRules(Kind: TSeClassKind): string;
procedure SetRules(Kind: TSeClassKind; const Value: string);
procedure SetLog(const Value: TStrings);
procedure SetOnProgress(const Value: TSeConvertEvent);
protected
FForm: TCustomForm;
procedure InsertToLog(Line: string);
procedure Progress(Max, Pos: integer);
procedure BuildRules;
procedure CopyExistsProperties(Source, Dest: TObject);
procedure CopyPropertyValue(Source, Dest: TObject; APropName: string);
procedure SetPropertyIfExists(AComp: Tcomponent; APropName: string; Value: TObject);
function CreateCopy(AComp: TComponent; Kind: TSeClassKind): TComponent;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function GetClass(ClassKind: TSeClassKind): TComponentClass; virtual;
procedure SetAdvancedProp(AOldObject, ANewObject: TObject); virtual;
procedure ConvertForm(Form: TCustomForm);
property Rules[Kind: TSeClassKind]: string read GetRules write SetRules;
property Log: TStrings read FLog write SetLog;
property OnProgress: TSeConvertEvent read FOnProgress write SetOnProgress;
end;
TSeConverterClass = class of TSeCustomConverter;
TfrmAddClass = class(TForm)
private
{ Private declarations }
Label1: TLabel;
Button1: TButton;
Button2: TButton;
public
{ Public declarations }
cbClassList: TComboBox;
constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0); override;
end;
TSeTabControlEditor = class(TDefaultEditor)
public
procedure ExecuteVerb (Index: Integer); override;
function GetVerb (Index: Integer): String; override;
function GetVerbCount: Integer; override;
end;
TfrmConvertForm = class(TForm)
Pages: TNotebook;
Image1: TImage;
lbWelcome: TLabel;
Bevel1: TBevel;
btnCancel: TBitBtn;
btnNext: TBitBtn;
btnBack: TBitBtn;
Label2: TLabel;
Label3: TLabel;
Bevel2: TBevel;
Panel1: TPanel;
lbWText: TLabel;
lbWarning: TLabel;
Label1: TLabel;
Label4: TLabel;
Label5: TLabel;
GroupBox1: TGroupBox;
lbOldComps: TListBox;
btnAddOld: TButton;
Bevel3: TBevel;
Panel2: TPanel;
Label6: TLabel;
LogMemo: TMemo;
btnClose: TBitBtn;
btnStart: TBitBtn;
CProg: TProgressBar;
lbNewComps: TCheckListBox;
Label7: TLabel;
procedure PagesPageChanged(Sender: TObject);
procedure btnNextClick(Sender: TObject);
procedure btnBackClick(Sender: TObject);
procedure btnStartClick(Sender: TObject);
procedure lbNewCompsClick(Sender: TObject);
procedure btnAddOldClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FConvertClass: TSeConverterClass;
FConvertName: string;
FConvertForm: TCustomForm;
FConverter: TSeCustomConverter;
procedure SetConvertClass(const Value: TSeConverterClass);
procedure SetConvertName(const Value: string);
procedure SetConvertForm(const Value: TCustomForm);
procedure DoConvert(Sender: TObject; Max, Pos: integer);
procedure BuildNewCompsList;
procedure BuildOldCompsList;
protected
procedure Convert; virtual;
public
{ Public declarations }
constructor CreateForm; virtual;
destructor Destroy; override;
procedure InitConverter; virtual;
property ConvertClass: TSeConverterClass read FConvertClass write SetConvertClass;
property ConvertForm: TCustomForm read FConvertForm write SetConvertForm;
property ConvertName: string read FConvertName write SetConvertName;
property Converter: TSeCustomConverter read FConverter;
end;
TfrmMenuDesignerForm = class(TDesignWindow)
Timer1: TTimer;
Pages: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel2: TPanel;
TreeItems: TTreeView;
ItemsName: TPanel;
Panel4: TPanel;
Panel1: TPanel;
Panel5: TPanel;
Bevel1: TBevel;
btnInsert: TButton;
btnSubMenu: TButton;
btnDelete: TButton;
btnUp: TBitBtn;
btnDown: TBitBtn;
Label1: TLabel;
cbSource: TComboBox;
Button1: TButton;
BtnConvert: TButton;
Label2: TLabel;
Memo1: TMemo;
procedure btnInsertClick(Sender: TObject);
procedure TreeItemsClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure btnSubMenuClick(Sender: TObject);
procedure TreeItemsEdited(Sender: TObject; Node: TTreeNode;
var S: String);
procedure btnDeleteClick(Sender: TObject);
procedure btnUpClick(Sender: TObject);
procedure btnDownClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure TreeItemsDblClick(Sender: TObject);
procedure BtnConvertClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure PagesChange(Sender: TObject);
private
{ Private declarations }
FParentComponent: TComponent;
FRootItem: TSeCustomItem;
FSelRootItem: TSeCustomItem;
FSelItem: TSeCustomItem;
procedure RebuildTreeItem;
procedure InsertNewItem;
procedure DoItemsChange(Sender: TObject);
protected
procedure Notification (AComponent: TComponent; Operation: TOperation); override;
function UniqueName (Component: TComponent): String; override;
public
{ Public declarations }
constructor CreateForm; virtual;
destructor Destroy; override;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -