📄 debugwatchproperties.pas
字号:
//////////////////////////////////////////////////////////////////////
// //
// debugWatchProperties.pas: Watch editor dialog //
// //
// The contents of this file are subject to the Bottled Light //
// Public License Version 1.0 (the "License"); you may not use this //
// file except in compliance with the License. You may obtain a //
// copy of the License at http://www.bottledlight.com/BLPL/ //
// //
// Software distributed under the License is distributed on an //
// "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or //
// implied. See the License for the specific language governing //
// rights and limitations under the License. //
// //
// The Original Code is the Mappy VM User Interface, released //
// April 1st, 2003. The Initial Developer of the Original Code is //
// Bottled Light, Inc. Portions created by Bottled Light, Inc. are //
// Copyright (C) 2001-2003 Bottled Light, Inc. All Rights Reserved. //
// //
// Author(s): //
// Michael Noland (joat), michael@bottledlight.com //
// //
// Changelog: //
// 1.0: First public release (April 1st, 2003) //
// //
// Notes: //
// None at present. //
// //
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
unit debugWatchProperties; ///////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
interface ////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, nexus, dbgWatches, cpuObservers;
//////////////////////////////////////////////////////////////////////
type
TdbgWatchProperties = class(TForm)
lExpression: TLabel;
eExpression: TEdit;
bOK: TButton;
bHelp: TButton;
cEnabled: TCheckBox;
rgType: TRadioGroup;
displayModeGroup: TGroupBox;
cbDisplayType: TComboBox;
cIsArray: TCheckBox;
eArraySize: TEdit;
procedure FinishedEditing(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ShowHelp(Sender: TObject);
procedure ChangeType(Sender: TObject);
procedure cbDisplayTypeChange(Sender: TObject);
procedure cIsArrayClick(Sender: TObject);
procedure eArraySizeChange(Sender: TObject);
procedure cEnabledClick(Sender: TObject);
procedure eExpressionChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure eExpressionKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
watch: TWatch;
end;
//////////////////////////////////////////////////////////////////////
var
dbgWatchProperties: TdbgWatchProperties;
//////////////////////////////////////////////////////////////////////
implementation ///////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
{$R *.DFM}
//////////////////////////////////////////////////////////////////////
procedure TdbgWatchProperties.FinishedEditing(Sender: TObject);
begin
Close;
end;
//////////////////////////////////////////////////////////////////////
procedure TdbgWatchProperties.FormShow(Sender: TObject);
begin
eExpression.Text := watch.expression;
rgType.ItemIndex := Ord(watch.watchType);
cbDisplayType.Visible := rgType.ItemIndex < 3;
cIsArray.Checked := watch.arraySize > 0;
eArraySize.Text := IntToStr(watch.arraySize);
cbDisplayType.ItemIndex := Ord(watch.watchMode);
cEnabled.Checked := watch.enabled;
// Load the translation
LoadTranslation(self, translation);
end;
//////////////////////////////////////////////////////////////////////
procedure TdbgWatchProperties.FormClose(Sender: TObject; var Action: TCloseAction);
begin
watch.expression := eExpression.Text;
Action := caFree;
end;
//////////////////////////////////////////////////////////////////////
procedure TdbgWatchProperties.ShowHelp(Sender: TObject);
begin
ShowWebPage(helpFiles.strings[HelpContext-1]);
end;
//////////////////////////////////////////////////////////////////////
procedure TdbgWatchProperties.ChangeType(Sender: TObject);
begin
watch.watchType := TWatchType(rgType.ItemIndex);
cbDisplayType.Visible := rgType.ItemIndex < 3;
UpdateObservers;
end;
//////////////////////////////////////////////////////////////////////
procedure TdbgWatchProperties.cbDisplayTypeChange(Sender: TObject);
begin
if cbDisplayType.ItemIndex < 0 then cbDisplayType.ItemIndex := 0;
watch.watchMode := TWatchDisplayMode(cbDisplayType.ItemIndex);
UpdateObservers;
end;
//////////////////////////////////////////////////////////////////////
procedure TdbgWatchProperties.cIsArrayClick(Sender: TObject);
begin
eArraySize.Enabled := cIsArray.Checked;
if cIsArray.Checked then begin
watch.arraySize := StrToIntDef(eArraySize.Text, 0);
eArraySize.Text := IntToStr(watch.arraySize);
end else
watch.arraySize := 0;
UpdateObservers;
end;
//////////////////////////////////////////////////////////////////////
procedure TdbgWatchProperties.eArraySizeChange(Sender: TObject);
begin
if cIsArray.Checked then begin
watch.arraySize := StrToIntDef(eArraySize.Text, 0);
eArraySize.Text := IntToStr(watch.arraySize);
UpdateObservers;
end;
end;
//////////////////////////////////////////////////////////////////////
procedure TdbgWatchProperties.cEnabledClick(Sender: TObject);
begin
watch.enabled := cEnabled.Checked;
UpdateObservers;
end;
//////////////////////////////////////////////////////////////////////
procedure TdbgWatchProperties.eExpressionChange(Sender: TObject);
begin
watch.expression := eExpression.Text;
UpdateObservers;
end;
//////////////////////////////////////////////////////////////////////
procedure TdbgWatchProperties.FormCreate(Sender: TObject);
begin
HelpContext := LinkHelp('watches.html#props');
end;
//////////////////////////////////////////////////////////////////////
procedure TdbgWatchProperties.eExpressionKeyPress(Sender: TObject; var Key: Char);
begin
if Key in [#10, #13] then begin
Key := #0;
eExpressionChange(Sender);
end;
end;
//////////////////////////////////////////////////////////////////////
end.
//////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -