📄 ddhobjdb.pas
字号:
unit DdhObjDb;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, TypInfo, ExtCtrls, Grids,
Buttons, Menus, ComCtrls;
////// component //////
type
TDdhObjectDebugger = class(TComponent)
private
fOnTop: Boolean;
fCopyright, fNull: string;
public
constructor Create (AOwner: TComponent); override;
published
property OnTop: Boolean
read fOnTop write fOnTop;
property Copyright: string
read fCopyright write fNull;
end;
procedure Register;
////// form //////
type
TDdhGridEditForm = class(TForm)
ColorDialog1: TColorDialog;
FontDialog1: TFontDialog;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
sgProp: TStringGrid;
Panel1: TPanel;
cbComps: TComboBox;
MainMenu1: TMainMenu;
cbForms: TComboBox;
sgEvt: TStringGrid;
Options1: TMenuItem;
RefreshForms1: TMenuItem;
RefreshComponents1: TMenuItem;
Help1: TMenuItem;
About1: TMenuItem;
RefreshValues1: TMenuItem;
ComboColor: TComboBox;
ComboCursor: TComboBox;
ComboEnum: TComboBox;
EditNum: TEdit;
EditStr: TEdit;
N1: TMenuItem;
TopMost1: TMenuItem;
EditCh: TEdit;
ListSet: TListBox;
Info1: TMenuItem;
Timer1: TTimer;
procedure cbFormsChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cbCompsChange(Sender: TObject);
procedure sgPropSelectCell(Sender: TObject; Col, Row: Longint;
var CanSelect: Boolean);
procedure RefreshForms1Click(Sender: TObject);
procedure RefreshComponents1Click(Sender: TObject);
procedure About1Click(Sender: TObject);
procedure RefreshValues1Click(Sender: TObject);
procedure sgDataSelectCell(Sender: TObject; Col, Row: Longint;
var CanSelect: Boolean);
procedure sgMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure EditStrExit(Sender: TObject);
procedure EditNumExit(Sender: TObject);
procedure ComboColorDblClick(Sender: TObject);
procedure ComboColorChange(Sender: TObject);
procedure ComboCursorChange(Sender: TObject);
procedure ComboEnumChange(Sender: TObject);
procedure EditNumKeyPress(Sender: TObject; var Key: Char);
procedure ComboEnumDblClick(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure TopMost1Click(Sender: TObject);
procedure EditChExit(Sender: TObject);
procedure ListSetClick(Sender: TObject);
procedure RefreshOnExit(Sender: TObject);
procedure sgPropDblClick(Sender: TObject);
procedure Info1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
procedure EditChange(Sender: TObject);
private
// the current component
CurrComp: TComponent;
// the real component (if a subproperty is active)
RealComp: TComponent;
// are we editing a subproperty?
EditingSub: Boolean;
// current form: TForm or TDataModule
CurrForm: TComponent;
// current property
CurrProp: PPropInfo;
// current row in grid
CurrRow: Integer;
// combo box used by AddToCombo method
Combo: TComboBox;
// edit box has been modified?
EditModified: Boolean;
public
procedure UpdateFormsCombo;
procedure UpdateCompsCombo;
procedure UpdateProps;
procedure EditStringList (Str: TStrings);
procedure AddToCombo (const S: String);
end;
var
DdhGridEditForm: TDdhGridEditForm;
implementation
{$R *.DFM}
uses
DdhRTTIH, Math;
const
VersionDescription = 'Object Debugger 1.0 (DDH)';
VersionRelease = 'Release 1.0 (for "Delphi Developer''s Handbook")';
////// component //////
constructor TDdhObjectDebugger.Create (AOwner: TComponent);
begin
inherited Create (AOwner);
fCopyright := 'Marco Cant
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -