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

📄 unit1.pas

📁 厦新 E8手机 ROM 编辑工具源码 编译平台Delphi7
💻 PAS
📖 第 1 页 / 共 5 页
字号:
      FileClose(iFileHandle);
    end;
      if num_org>(num_mod+num_filent) then  button5.Click;
    end;
  end;
end;


procedure TForm1.Button10MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='快速刷新文件信息,自动把上一文件的结束地址自动输入到数据区框';
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='';
end;

procedure TForm1.CheckBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='压缩文件,节省ROM空间';
end;

procedure TForm1.Button3MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='开始向ROM中添加文件';
end;

procedure TForm1.Button4MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='显示文件名框起始地址位置的文件名';
end;

procedure TForm1.Button5MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='重新获取ROM中文件信息';
end;

procedure TForm1.Button9MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='保存文件名区及数据区内容';
end;

procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='重新调用RomMaster,方便调试';
end;

procedure TForm1.CheckBox2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='要删除的文件为MOD模块';
end;

procedure TForm1.Button6MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='调用RomMaster删除ROM中文件';
end;

procedure TForm1.Button7MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='找查ROM中文件';
end;

procedure TForm1.Button8MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='将文件信息导出到文件中';
end;

procedure TForm1.LabeledEdit2MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
Statusbar1.Panels[0].Text:='可以输入实际或虚拟地址,程序将自动转换,双击粘贴';
end;

procedure TForm1.LabeledEdit4MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
Statusbar1.Panels[0].Text:='可以输入实际或虚拟地址,程序将自动转换,双击粘贴';
end;

procedure TForm1.labelededit1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
Statusbar1.Panels[0].Text:='可以输入实际或虚拟地址,程序将自动转换,双击粘贴';
end;

procedure TForm1.LabeledEdit5MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
Statusbar1.Panels[0].Text:='可以输入实际或虚拟地址,程序将自动转换,双击粘贴';
end;

procedure TForm1.name9MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='欢迎到泉州来玩!';
end;

procedure TForm1.Button11Click(Sender: TObject);
Var
Source:TFileStream;
Target:TFileStream;
Pin,Pout: PBYTE;
res:dword;
sourcelen,targetlen:dword;
begin
  if (OpenDialog2.FileName<>'') then
    begin
    Source:=TFileStream.Create(OpenDialog2.FileName,fmOpenRead);
    sourcelen:=Source.Size;
    if sourcelen>=50000000 then begin FreeAndNil(Source); showmessage('太大了吧!'); exit; end;
    if sourcelen>=600000 then
    if MessageDlg('文件较大,计算时间会较长,是否继续?',mtConfirmation,[mbYes,mbNo],0)=mrno
        then begin FreeAndNil(Source); exit; end;
    Pin:=AllocMem(Source.Size);
    Source.Read(Pin^,Source.Size);
    Targetlen:=sourcelen-1;
    Pout:=AllocMem(targetlen);
    try
    res:=Do_compress(Pin,sourcelen, Pout);
    //i:=compress(Pout,@targetlen,Pin,sourcelen); //zlib
    op_log('压缩后/原大小:['+inttostr(res)+'/'+inttostr(sourcelen)+'] '+ExtractFilename(OpenDialog2.FileName));
    if debug then  //在目录下生成压缩文件
      begin
      Target:=TFileStream.Create(ExtractFilePath(Application.ExeName)+'cecompress_temp_file',fmCreate);
      Target.WriteBuffer(Pout^,res);
      op_log('已在程序目录下生成压缩文件:cecompress_temp_file!');
      FreeAndNil(Target);
      end;
     finally
     Freemem(Pin);
     Freemem(Pout);
     FreeAndNil(Source);
     end;
    end;
end;

procedure TForm1.CheckBox3Click(Sender: TObject);
begin
if CheckBox3.Checked=false then debug:=false else debug:=true;
end;

procedure TForm1.Button11MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='计算压缩后的大小,注意文件越大,计算时间会越长';
end;


procedure TForm1.del_btnClick(Sender: TObject);
var
iFileHandle:integer;
s:string;
//ms: TMemoryStream;
begin
s:=trim(labelededit3.Text);
 if fileexists(opendialog1.FileName)and(s<>'') then
 if get_rom_info()<>-1 then
 begin
  iFileHandle:=FileOpen(opendialog1.FileName, fmOpenReadWrite);
  if iFileHandle>0 then
    begin
      if (num_filent>0)and(num_filent<=4096) then //增加上限
          begin
          if del_f_file(iFileHandle,s)=0 then
              if del_m_file(iFileHandle,s)=0 then
                  begin
                    //showmessage('未找到文件 "'+s+'"');
                    op_log('未找到文件 "'+s+'"');
                    FileClose(iFileHandle);
                    exit;
                  end;
          end;
    end;
 FileClose(iFileHandle);
 if (get_rom_info()<>-1) then num_org:= num_mod +num_filent; //重读信息
 end;
end;

procedure TForm1.del_btnMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='删除ROM中文件,自动识别M/F类型';
end;

procedure TForm1.CheckBox3MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='打开调试模式';
end;

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='打开ROM文件';
end;

procedure TForm1.Button2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='选择要添加的文件';
end;

procedure TForm1.Label3MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='数据区的可用字节数';
end;

procedure TForm1.Label2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Statusbar1.Panels[0].Text:='现已可以增加文件数,不受此限制';
end;

procedure TForm1.CheckBox2Click(Sender: TObject);
begin
if CheckBox2.Checked=true then
SetWindowPos(handle,HWND_TOPMOST,Left,Top,Width,Height,SWP_SHOWWINDOW)
else SetWindowPos(handle,HWND_NOTOPMOST,Left,Top,Width,Height,SWP_SHOWWINDOW);
end;

procedure TForm1.Load_del_BtnClick(Sender: TObject);
var
str:tstringlist;
s:string;
i:integer;
begin
if Opendialog1.FileName='' then op_log('请先选择ROM文件!')
  else
  with opendialog3 do
    if execute then
      begin
      str:=tstringlist.Create;
      str.LoadFromFile(Filename);
      for i:=0 to str.Count-1 do
        begin
          s:=trim(str.Strings[i]);
          if s<>'' then
            begin
              Labelededit3.Text:=s;
              del_btn.Click;
            end;
        end;
      end;
end;

procedure TForm1.Load_del_BtnMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
Statusbar1.Panels[0].Text:='批量删除文件。列表为文件文件,每个文件名占一行';
end;


procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
//edit1.Text:=Listview1.Selected.Caption;
Listview1.Visible:=false;
//ListView1.Column[1].DisplayName:='ss';
end;

procedure TForm1.Name_sel_SBClick(Sender: TObject);
var
  S_Add,E_Add:string;
begin
  if ListView2.Visible<>true then
  begin
    ListView2.Top:=Name_sel_SB.Top;
    ListView2.Left:=282;
    StartEdit:=LabeledEdit2;
    EndEdit:=LabeledEdit4;
    FindSpace(S_Add,E_Add,1000);
    ListView2.Visible:=true;
  end else ListView2.Visible:=false;
end;

procedure TForm1.ListView1ColumnClick(Sender: TObject;
  Column: TListColumn);
begin
  ListView1.CustomSort(@CustomSortProc,Column.Index);
  m_bSort:=not m_bSort;
end;

procedure TForm1.RichCopyClick(Sender: TObject);
begin
  Richedit1.CopyToClipboard;
end;

procedure TForm1.RichClearClick(Sender: TObject);
begin
  Richedit1.Clear;
end;

procedure TForm1.RichSelALLClick(Sender: TObject);
begin
  Richedit1.SelectAll;
end;

procedure TForm1.ListCopyCapClick(Sender: TObject);
begin
  if ListView1.Selected<>nil then Clipboard.AsText:=ListView1.Selected.Caption;
end;

procedure TForm1.ListCopyLineClick(Sender: TObject);
begin
    with ListView1 do
    if Selected<>nil  then
    Clipboard.AsText:=Selected.Caption+' '+Selected.SubItems.Strings[0]+'-'+Selected.SubItems.Strings[1]+' ['+Selected.SubItems.Strings[2]+'/'+Selected.SubItems.Strings[3]+'] '+Selected.SubItems.Strings[4];
end;

procedure TForm1.ListDelFileClick(Sender: TObject);
begin
    if ListView1.Selected<>nil then
      if copy(ListView1.Selected.Caption,1,1)<>' ' then
      begin
        Labelededit3.Text:=ListView1.Selected.Caption;
        del_btn.Click;
      end;
end;

procedure TForm1.Data_sel_SBClick(Sender: TObject);
var
  S_Add,E_Add:string;
begin
  if ListView2.Visible<>true then
  begin
    ListView2.Top:=Data_sel_SB.Top;
    ListView2.Left:=282;
    StartEdit:=LabeledEdit1;
    EndEdit:=LabeledEdit5;
    FindSpace(S_Add,E_Add,1000);
    ListView2.Visible:=true;
  end else ListView2.Visible:=false;    
end;

procedure TForm1.ListView2DblClick(Sender: TObject);
begin
  if ListView2.Selected<>nil then
  begin
    StartEdit.Text:= ListView2.Selected.SubItems.Strings[0];
    EndEdit.Text:= ListView2.Selected.SubItems.Strings[1];
  end;
  ListView2.Visible:=false;
end;


procedure TForm1.ListView2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#27 then ListView2.Visible:=false;
end;

procedure TForm1.Button6Click(Sender: TObject);
var
i:integer;
iFileHandle:integer;
begin
  if OpenDialog1.FileName='' then exit;
  if CheckBox1.Checked=false then
  if MessageDlg('选择[不压缩]的文件,是否继续?',mtConfirmation,[mbYes,mbNo],0)<>mryes
    then exit;
  if CheckBox1.Checked=true then
  if MessageDlg('选择[压缩]的文件,是否继续?',mtConfirmation,[mbYes,mbNo],0)<>mryes
    then exit;
  //if CheckBox1.Checked=false then  OpenDialog4.Title:='选择要添加的文件[不压缩]' else OpenDialog4.Title:='选择要添加的文件[压缩]';
  if OpenDialog4.Execute then
    for i:=0 to OpenDialog4.Files.Count-1 do
    begin
      OpenDialog2.FileName:=(OpenDialog4.Files.Strings[i]);
      iFileHandle:=FileOpen(OpenDialog2.Filename, fmOpenRead);
      if iFileHandle>0 then
        begin
          file_name_edit.Text:=OpenDialog2.FileName;
          Fileclose(iFileHandle);

          Button3.Click;
        end;
    end;
  OpenDialog2.FileName:='';
  //Button5.Click;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -