欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

菜单的不同项目的功能互换 (7千字)

菜单的不同项目的功能互换 (7千字)

虽然我是个门外汉,我也要学一学pe diy 。
我用DaFixer的文章中谈到的同一窗体中的不同按钮的功能互换的方法尝试了一个DELPHI
软件,真的很棒!另外,我又试了菜单的不同项目的功能互换,也成功了。
下面是一个改动播放MP3的小程序的过程:
1、主菜单:文件
  菜单项目:打开、播放、重播、暂停、退出
2、
Delphi源代码(摘自《时尚编程百例会》
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, MPlayer, jpeg, Menus;
type
  TForm1 = class(TForm)
    MediaPlayer1: TMediaPlayer;
    OpenDialog1: TOpenDialog;
    Timer1: TTimer;
    Label1: TLabel;
    MainMenu1: TMainMenu;{主菜单,下面是各个项目}
    N1: TMenuItem;{文件}
    N2: TMenuItem;{打开}
    N3: TMenuItem;{播放}
    N4: TMenuItem;{重播}
    N5: TMenuItem;{暂停}
    N6: TMenuItem;{退出}
    procedure Timer1Timer(Sender: TObject);
    procedure N2Click(Sender: TObject);{打开}
    procedure N3Click(Sender: TObject);{播放}
    procedure N4Click(Sender: TObject);{重播}
    procedure N5Click(Sender: TObject);{暂停}
    procedure N6Click(Sender: TObject);{退出}
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1; 
  endposition:integer;
implementation
{$R *.DFM}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if mediaplayer1.position=endposition then
  begin
    mediaplayer1.rewind;
    mediaplayer1.play;
  end;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
opendialog1.FileName:='*.mp3';
  if opendialog1.Execute then
    begin
    mediaplayer1.Close;
    mediaplayer1.filename:=opendialog1.filename;
    label1.caption:='当前播放文件:'+Extractfilename(opendialog1.filename);
    mediaplayer1.open;
    mediaplayer1.next;
    endposition:=mediaplayer1.position;
    mediaplayer1.rewind;
    N3.enabled:=true;
    N4.enabled:=false;
    N6.enabled:=false;
    end;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
if mediaplayer1.mode=mppaused then
  begin
  mediaplayer1.Resume;
  end
  else
  begin
  mediaplayer1.play;
  end;
  N6.Enabled:=true;
  N4.enabled:=true;
  timer1.Enabled:=true;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
mediaplayer1.Rewind;
mediaplayer1.Play;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
mediaplayer1.Pause;
N4.Enabled:=false;
N6.enabled:=false;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
mediaplayer1.close;
close;
end;
end.
3、下面是在WinHex9.92中复制下来的相关信息:
(复制的方法是选中区域后,点EDIT--COPY BLOCK--EDITOR DISPLAY ,再粘贴到所需处.)
Offset      0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
00418672      54 46 6F 72 6D 31 05  46 6F 72 6D 31 04 4C 65    TForm1.Form1.Le
00418688  66 74 03 0E 01 03 54 6F  70 03 31 01 05 57 69 64  ft....Top.1..Wid
00418704  74 68 03 61 01 06 48 65  69 67 68 74 03 99 00 07  th.a..Height.?.
00418720  43 61 70 74 69 6F 6E 06  09 4D 50 33 B2 A5 B7 A2  Caption..MP3播放
00418736  C6 F7 05 43 6F 6C 6F 72  07 09 63 6C 42 74 6E 46  器.Color..clBtnF
00418752  61 63 65 0C 46 6F 6E 74  2E 43 68 61 72 73 65 74  ace.Font.Charset
00418768  07 0F 44 45 46 41 55 4C  54 5F 43 48 41 52 53 45  ..DEFAULT_CHARSE
00418784  54 0A 46 6F 6E 74 2E 43  6F 6C 6F 72 07 0C 63 6C  T.Font.Color..cl
00418800  57 69 6E 64 6F 77 54 65  78 74 0B 46 6F 6E 74 2E  WindowText.Font.
00418816  48 65 69 67 68 74 02 F5  09 46 6F 6E 74 2E 4E 61  Height.?Font.Na
00418832  6D 65 06 0D 4D 53 20 53  61 6E 73 20 53 65 72 69  me..MS Sans Seri
00418848  66 0A 46 6F 6E 74 2E 53  74 79 6C 65 0B 00 04 4D  f.Font.Style...M
00418864  65 6E 75 07 09 4D 61 69  6E 4D 65 6E 75 31 0E 4F  enu..MainMenu1.O
00418880  6C 64 43 72 65 61 74 65  4F 72 64 65 72 08 0D 50  ldCreateOrder..P
00418896  69 78 65 6C 73 50 65 72  49 6E 63 68 02 60 0A 54  ixelsPerInch.`.T
00418912  65 78 74 48 65 69 67 68  74 02 0D 00 06 54 4C 61  extHeight....TLa
00418928  62 65 6C 06 4C 61 62 65  6C 31 04 4C 65 66 74 02  bel.Label1.Left.
00418944  18 03 54 6F 70 02 10 05  57 69 64 74 68 02 03 06  ..Top...Width...
00418960  48 65 69 67 68 74 02 0D  00 00 0C 54 4D 65 64 69  Height.....TMedi
00418976  61 50 6C 61 79 65 72 0C  4D 65 64 69 61 50 6C 61  aPlayer.MediaPla
00418992  79 65 72 31 04 4C 65 66  74 02 40 03 54 6F 70 02  yer1.Left.@.Top.
00419008  20 05 57 69 64 74 68 03  FD 00 06 48 65 69 67 68    .Width.?.Heigh
00419024  74 02 1E 08 54 61 62 4F  72 64 65 72 02 00 00 00  t...TabOrder....
00419040  0B 54 4F 70 65 6E 44 69  61 6C 6F 67 0B 4F 70 65  .TOpenDialog.Ope
00419056  6E 44 69 61 6C 6F 67 31  04 4C 65 66 74 03 98 00  nDialog1.Left.?
00419072  03 54 6F 70 02 38 00 00  06 54 54 69 6D 65 72 06  .Top.8...TTimer.
00419088  54 69 6D 65 72 31 07 4F  6E 54 69 6D 65 72 07 0B  Timer1.OnTimer..
00419104  54 69 6D 65 72 31 54 69  6D 65 72 04 4C 65 66 74  Timer1Timer.Left
00419120  03 B8 00 03 54 6F 70 02  38 00 00 09 54 4D 61 69  .?.Top.8...TMai
00419136  6E 4D 65 6E 75 09 4D 61  69 6E 4D 65 6E 75 31 04  nMenu.MainMenu1.
00419152  4C 65 66 74 02 78 03 54  6F 70 02 38 00 09 54 4D  Left.x.Top.8..TM
00419168  65 6E 75 49 74 65 6D 02  4E 31 07 43 61 70 74 69  enuItem.N1.Capti
00419184  6F 6E 06 04 CE C4 BC FE  08 53 68 6F 72 74 43 75  on..文件.ShortCu
00419200  74 03 46 40 00 09 54 4D  65 6E 75 49 74 65 6D 02  t.F@..TMenuItem.
00419216  4E 32 07 43 61 70 74 69  6F 6E 06 04 B4 F2 BF AA  N2.Caption..打开
00419232  08 53 68 6F 72 74 43 75  74 03 4F 40 07 4F 6E 43  .ShortCut.O@.OnC
00419248  6C 69 63 6B 07 07 4E 32  43 6C 69 63 6B 00 00 09  lick..N2Click...---A
00419264  54 4D 65 6E 75 49 74 65  6D 02 4E 33 07 43 61 70  TMenuItem.N3.Cap
00419280  74 69 6F 6E 06 04 B2 A5  B7 C5 08 53 68 6F 72 74  tion..播放.Short
00419296  43 75 74 03 50 40 07 4F  6E 43 6C 69 63 6B 07 07  Cut.P@.OnClick..
00419312  4E 33 43 6C 69 63 6B 00  00 09 54 4D 65 6E 75 49  N3Click...TMenuI--B
00419328  74 65 6D 02 4E 34 07 43  61 70 74 69 6F 6E 06 04  tem.N4.Caption..
00419344  D6 D8 B2 A5 08 53 68 6F  72 74 43 75 74 03 52 40  重播.ShortCut.R@
00419360  07 4F 6E 43 6C 69 63 6B  07 07 4E 34 43 6C 69 63  .OnClick..N4Clic-C
00419376  6B 00 00 09 54 4D 65 6E  75 49 74 65 6D 02 4E 35  k...TMenuItem.N5
00419392  07 43 61 70 74 69 6F 6E  06 04 D4 DD CD A3 08 53  .Caption..暂停.S
00419408  68 6F 72 74 43 75 74 03  50 40 07 4F 6E 43 6C 69  hortCut.P@.OnCli
00419424  63 6B 07 07 4E 35 43 6C  69 63 6B 00 00 09 54 4D  ck..N5Click...TM--D
00419440  65 6E 75 49 74 65 6D 02  4E 36 07 43 61 70 74 69  enuItem.N6.Capti
00419456  6F 6E 06 04 CD CB B3 F6  08 53 68 6F 72 74 43 75  on..退出.ShortCu
00419472  74 03 45 40 07 4F 6E 43  6C 69 63 6B 07 07 4E 36  t.E@.OnClick..N6--E
00419488  43 6C 69 63 6B 00 00 00  00 00 00 00 00 00 02 00  Click...........
4、
只要在上面A、B、C、D、E五处分别把N2Click、N3Click、N4Click、N5Click、N6Click中的
2、3、4、5、6几个数字交叉改动一下,就实现了菜单的不同项目的功能互换。

但是如何加上原软件中没有的功能(如:把“关于”菜单的功能改为播放一首MP3)该怎么办,请大家告诉我。
感谢upfeed1和+DaFixer的文章,同时向pll261致敬。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功