📄 main.~pas
字号:
begin
Result := ch;
case Result of
'A'..'Z': Inc(Result, Ord('a') - Ord('A'));
end;
end;
procedure TFormMain.RadioGroup1Click(Sender: TObject);
begin
FormMain.RadioGroupChange(Curr_Type,radiogroup1.ItemIndex);
Curr_Type:=radiogroup1.ItemIndex;
edit6.Text:=Inttostr(Int_data);
end;
procedure TFormMain.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key =#3) or (Key =#22) or (Key =#24) or (key in ['0'..'9','a'..'f','A'..'F']) then
Key :=LowerCase(Key)
else
key:=#0;
end;
procedure TFormMain.RadioGroupChange(OldType,NewType:integer);
begin
edit1.visible:=false ;
edit2.visible:=false ;
edit3.visible:=false ;
edit4.visible:=false ;
case NewType of
0:
begin
edit1.visible:=true ;
edit1.text:=DecToType(IntToStr(Int_Data),16);
end ;
1:
begin
edit2.visible:=true ;
edit2.text:=IntToStr(Int_Data);
end;
2:
begin
edit3.visible:=true ;
edit3.text:=DecToType(IntToStr(Int_Data),8) ;
end ;
3:
begin
edit4.visible:=true ;
edit4.text:=DecToType(IntToStr(Int_Data),2) ;
end ;
end;
end;
procedure TFormMain.Edit1Change(Sender: TObject);
var
I:integer;
vText:pchar;
begin
vText:=Pchar(Edit1.Text);
for I := 0 to length(Edit1.text)-1 do
begin
if not (vText[i] in ['0'..'f']) then
begin
Edit5.Text :=Edit1.Text;
Edit1.Text :='0';
MessageBox(0, '输入的数据不是有效的十六进制数!', 'Error', MB_ICONERROR or MB_OK);
break;
end ;
end;
Int_data:=StrToInt(TypeToDec(Edit1.Text,16));
end;
procedure TFormMain.Edit2Change(Sender: TObject);
var
I:integer;
vText:pchar;
begin
vText:=Pchar(Edit2.Text);
for I := 0 to length(Edit2.text)-1 do
begin
if not (vText[i] in ['0'..'9']) then
begin
Edit5.Text :=Edit2.Text;
Edit2.Text :='0';
MessageBox(0, '输入的数据不是有效的十进制数!', 'Error', MB_ICONERROR or MB_OK);
break;
end ;
end;
Int_data:=StrToInt(Edit2.Text);
end;
procedure TFormMain.Edit3Change(Sender: TObject);
var
I:integer;
vText:pchar;
begin
vText:=Pchar(Edit3.Text);
for I := 0 to length(Edit3.text)-1 do
begin
if not (vText[i] in ['0'..'7']) then
begin
Edit5.Text :=Edit3.Text;
Edit3.Text :='0';
MessageBox(0, '输入的数据不是有效的八进制数!', 'Error', MB_ICONERROR or MB_OK);
break;
end ;
end;
Int_data:=StrToInt(TypeToDec(Edit3.Text,8));
end;
procedure TFormMain.Edit4Change(Sender: TObject);
var
I:integer;
vText:pchar;
begin
vText:=Pchar(Edit4.Text);
for I := 0 to length(Edit4.text)-1 do
begin
if not (vText[i] in ['0'..'1']) then
begin
Edit5.Text :=Edit4.Text;
Edit4.Text :='0';
MessageBox(0, '输入的数据不是有效的二进制数!', 'Error', MB_ICONERROR or MB_OK);
break;
end ;
end;
Int_data:=StrToInt(TypeToDec(Edit4.Text,2));
end;
procedure TFormMain.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if (Key =#3) or (Key =#22) or (Key =#24) or (key in ['0'..'9']) then
Key :=LowerCase(Key)
else
key:=#0;
end;
procedure TFormMain.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if (Key =#3) or (Key =#22) or (Key =#24) or (key in ['0'..'7']) then
Key :=LowerCase(Key)
else
key:=#0;
end;
procedure TFormMain.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if (Key =#3) or (Key =#22) or (Key =#24) or (key in ['0'..'1']) then
Key :=LowerCase(Key)
else
key:=#0;
end;
procedure TFormMain.BtnstrClick(Sender: TObject);
begin
MemoASCs.Text:=StrToAscII(MemoSTR.Text);
MemoHEXS.Text:=StrToHex(MemoSTR.Text);
MemoHEXD.Text:=StrToHexD(MemoSTR.Text);
MemoASCd.Text:=StrToAscIID(MemoSTR.Text);
end;
procedure TFormMain.BtnHexsClick(Sender: TObject);
Var
sListTmp:TstringList;
begin
sListTmp:=TStringList.Create ;
sListTmp.Delimiter:=Formatstr;
sListTmp.DelimitedText:=MemoHEXS.Text;
MemoSTR.Text:=HexToStr(sListTmp);
MemoASCs.Text:=StrToAscII(MemoSTR.Text);
MemoHEXD.Text:=StrToHexD(MemoSTR.Text);
MemoASCd.Text:=StrToAscIID(MemoSTR.Text);
end;
procedure TFormMain.FormCreate(Sender: TObject);
begin
TrayIcon1.CycleInterval := 400;
TrayIcon1.Hint :='常用进制相互转换。';
TrayIcon1.CycleIcons := True;
TrayIcon1.ShowHint := True;
TrayIcon1.ShowBalloonHint('进制转换',
'二进制、八进制、十进制、十六进制相互转换,' + #13 +
'字符串与ASCII码、十六进制码转换。',
bitInfo, 10);
end;
procedure TFormMain.Button4Click(Sender: TObject);
var
H: hwnd;
begin
H:=FindWindow(nil,'计算器');
if H>0 then
ShowWindow(H,SW_SHOWNA)
else
begin
H:=FindWindow(nil,'Calculator');
if H>0 then
ShowWindow(H,SW_SHOWNA)
else
WinExec('calc',SW_SHOWNA);
end;
end;
procedure TFormMain.N1Click(Sender: TObject);
begin
N1.Checked :=not N1.Checked;
TrayIcon1.IconVisible :=N1.Checked ;
end;
procedure TFormMain.N2Click(Sender: TObject);
begin
N2.Checked :=not N2.Checked;
TrayIcon1.MinimizeToTray:=N2.Checked;
end;
procedure TFormMain.N3Click(Sender: TObject);
begin
N3.Checked:=not N3.Checked;
end;
procedure TFormMain.N5Click(Sender: TObject);
begin
N5.Checked :=not N5.Checked;
if N5.Checked then
FormMain.FormStyle:=fsStayOnTop
else
FormMain.FormStyle:=fsNormal;
end;
procedure TFormMain.WMQueryEndSession(var Message: TMessage);
begin
SessionEnding := True;
Message.Result := 1;
end;
procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := ((not N3.Checked) or SessionEnding);
if not CanClose then
begin
TrayIcon1.HideMainForm ;
TrayIcon1.IconVisible := True;
end;
end;
procedure TFormMain.TrayIcon1BalloonHintClick(Sender: TObject);
begin
SetForegroundWindow(Application.Handle);
ShowMessage('暂时没有帮助文件!');
end;
procedure TFormMain.TrayIcon1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
Pt: TPoint;
begin
Pt := TrayIcon1.GetClientIconPos(X, Y);
end;
procedure TFormMain.Button3Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TFormMain.N8Click(Sender: TObject);
begin
TrayIcon1.ShowMainForm;
end;
procedure TFormMain.RadioGroup2Click(Sender: TObject);
var
sss:Pchar;
TmpStr:string;
begin
tmpstr:=Formatstr ;
sss:=Pchar(RadioGroup2.Items[radiogroup2.ItemIndex]);
Formatstr:=sss[0];
MemoHEXS.text:=AnsiReplaceText(MemoHEXS.Text,tmpstr,Formatstr);
MemoASCs.text:=AnsiReplaceStr(MemoASCs.Text,tmpstr,Formatstr);
MemoHEXD.text:=AnsiReplaceText(MemoHEXD.Text,tmpstr,Formatstr);
MemoASCd.text:=AnsiReplaceStr(MemoASCd.Text,tmpstr,Formatstr);
end;
procedure TFormMain.BtnASCClick(Sender: TObject);
Var
sListTmp:TstringList;
begin
sListTmp:=TStringList.Create ;
sListTmp.Delimiter:=Formatstr;
sListTmp.DelimitedText:=MemoASCs.Text;
MemoSTR.Text:=ASCIIToStr(sListTmp);
MemoHEXS.Text:=StrToHex(MemoSTR.Text);
MemoHEXD.Text:=StrToHexD(MemoSTR.Text);
MemoASCd.Text:=StrToAscIID(MemoSTR.Text);
end;
procedure TFormMain.N9Click(Sender: TObject);
begin
AboutBox.ShowModal ;
end;
procedure TFormMain.BtnDecsClick(Sender: TObject);
Var
sListTmp:TstringList;
begin
sListTmp:=TStringList.Create ;
sListTmp.Delimiter:=Formatstr;
sListTmp.DelimitedText:=MemoASCd.Text;
MemoASCs.Text:=AscIIDToAscIIS(sListTmp);
sListTmp.Clear;
sListTmp.DelimitedText:=MemoASCs.Text;
MemoSTR.Text:=ASCIIToStr(sListTmp);
MemoHEXS.Text:=StrToHex(MemoSTR.Text);
MemoHEXD.Text:=StrToHexD(MemoSTR.Text);
end;
procedure TFormMain.BtnHexdClick(Sender: TObject);
Var
sListTmp:TstringList;
begin
sListTmp:=TStringList.Create ;
sListTmp.Delimiter:=Formatstr;
sListTmp.DelimitedText:=MemoHEXD.Text;
MemoHEXS.Text:=HexSToHexD(sListTmp);
sListTmp.Clear;
sListTmp.DelimitedText:=MemoHEXS.Text;
MemoSTR.Text:=HexToStr(sListTmp);
MemoASCs.Text:=StrToAscII(MemoSTR.Text);
MemoASCd.Text:=StrToAscIID(MemoSTR.Text);
end;
procedure TFormMain.N10Click(Sender: TObject);
begin
N11.Checked:=False;
N10.Checked:=True;
Int_B:=1;
Int_A:=0;
end;
procedure TFormMain.N11Click(Sender: TObject);
begin
N10.Checked:=False;
N11.Checked:=True;
Int_B:=0;
Int_A:=1;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -