📄 radixconvertunit.pas
字号:
{**********************************************************************************************
* 刀剑如梦软件创作室整理 *
*主页名称:Delphi编程驿站 *
*本站的宗旨:让Delphi编程爱好者更好地进行技术交流与探讨。 *
*主页地址:http://yckxzjj.vip.sina.com *
*E-Mail地址:delphiesite@vip.sina.com *
*QQ号码:20775028 *
*栏目设置: *
* 主栏目→程序人生、编程技巧、精品控件、实例源码、网友作品、技术交流、软件项目及好书推荐。*
* 辅栏目→网站简介、网站导航、本站服务、网站更新、关于版主及友情链接。 *
*Delphi编程驿站,Delphi交流的空间站!网络中愿与您共同进步!我一直在努力!!! *
*Delphi编程驿站,以Delphi为主题的编程站点,明确的主题、一致的版面。 *
*本站点已获得万维品网“三星级”评定、闪光品网“精品站点”BEST认证评定 *
*及腾龙品网的“推荐站点”。 *
**********************************************************************************************
}
unit RadixConvertUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Radix;
type
TRadix = (raDec, raHex, raOct, raBin);
TRadixConvertForm = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
DecEdit: TEdit;
Label2: TLabel;
HexEdit: TEdit;
Label3: TLabel;
OctEdit: TEdit;
Label4: TLabel;
BinEdit: TEdit;
OkButton: TButton;
CancelButton: TButton;
ClearButton: TButton;
procedure CancelButtonClick(Sender: TObject);
procedure OkButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DecEditEnter(Sender: TObject);
procedure HexEditEnter(Sender: TObject);
procedure OctEditEnter(Sender: TObject);
procedure BinEditEnter(Sender: TObject);
procedure ClearButtonClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
FFromRadix: TRadix;
procedure FillText(V: Cardinal);
public
{ Public declarations }
end;
var
RadixConvertForm: TRadixConvertForm;
procedure ShowRadixConvForm; overload;
procedure ShowRadixConvForm(Value: Cardinal); overload;
implementation
{$R *.DFM}
procedure ShowRadixConvForm;
begin
if RadixConvertForm <> nil then
begin
RadixConvertForm.WindowState := wsNormal;
RadixConvertForm.BringToFront;
Exit;
end;
RadixConvertForm := TRadixConvertForm.Create(Application);
RadixConvertForm.Show;
end;
procedure ShowRadixConvForm(Value: Cardinal);
begin
if RadixConvertForm <> nil then
begin
RadixConvertForm.WindowState := wsNormal;
RadixConvertForm.BringToFront;
Exit;
end;
RadixConvertForm := TRadixConvertForm.Create(Application);
RadixConvertForm.FillText(Value);
RadixConvertForm.Show;
end;
procedure TRadixConvertForm.FillText(V: Cardinal);
var
S: string;
begin
DecEdit.Text := IntToStr(V);
IntToStrAsHex(S, V);
HexEdit.Text := S;
IntToStrAsOct(S, V);
OctEdit.Text := S;
IntToStrAsBin(S, V);
BinEdit.Text := S;
end;
procedure TRadixConvertForm.CancelButtonClick(Sender: TObject);
begin
Close;
end;
procedure TRadixConvertForm.OkButtonClick(Sender: TObject);
var
V: Cardinal;
Ok: Boolean;
begin
Ok := False;
case FFromRadix of
raDec:
Ok := StrToIntAsDec(V, DecEdit.Text);
raHex:
Ok := StrToIntAsHex(V, HexEdit.Text);
raOct:
Ok := StrToIntAsOct(V, OctEdit.Text);
raBin:
Ok := StrToIntAsBin(V, BinEdit.Text);
end;
if Ok then FillText(V)
else begin
MessageBox(Handle, '当前输入数字串中含有非法字符', '错误', 48);
end;
case FFromRadix of
raDec:
begin
DecEdit.SelectAll;
DecEdit.SetFocus;
end;
raHex:
begin
HexEdit.SelectAll;
HexEdit.SetFocus;
end;
raOct:
begin
OctEdit.SelectAll;
OctEdit.SetFocus;
end;
raBin:
begin
BinEdit.SelectAll;
BinEdit.SetFocus;
end;
end;
end;
procedure TRadixConvertForm.ClearButtonClick(Sender: TObject);
begin
DecEdit.Text := '';
HexEdit.Text := '';
OctEdit.Text := '';
BinEdit.Text := '';
DecEdit.SetFocus;
end;
procedure TRadixConvertForm.FormCreate(Sender: TObject);
begin
FFromRadix := raDec;
end;
procedure TRadixConvertForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
RadixConvertForm := nil;
end;
procedure TRadixConvertForm.DecEditEnter(Sender: TObject);
begin
FFromRadix := raDec;
end;
procedure TRadixConvertForm.HexEditEnter(Sender: TObject);
begin
FFromRadix := raHex;
end;
procedure TRadixConvertForm.OctEditEnter(Sender: TObject);
begin
FFromRadix := raOct;
end;
procedure TRadixConvertForm.BinEditEnter(Sender: TObject);
begin
FFromRadix := raBin;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -