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

📄 main.~pas

📁 2,4,8,16进制转换
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
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 + -