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

📄 se_designer.pas

📁 小区水费管理系统源代码水费收费管理系统 水费收费管理系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
{==============================================================================

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