home *** CD-ROM | disk | FTP | other *** search
/ PC World Plus! (NZ) 2001 June / HDC50.iso / Runimage / Delphi50 / Help / Examples / Menu2 / UMNUDMO.PAS < prev   
Pascal/Delphi Source File  |  1999-08-11  |  3KB  |  139 lines

  1. unit UMnuDmo;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, ExtCtrls,Menus;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Panel1: TPanel;
  12.     Button1: TButton;
  13.     Button2: TButton;
  14.     Button3: TButton;
  15.     Button4: TButton;
  16.     Button5: TButton;
  17.     Button6: TButton;
  18.     Button7: TButton;
  19.     Button8: TButton;
  20.     Button9: TButton;
  21.     procedure Button1Click(Sender: TObject);
  22.     procedure Button2Click(Sender: TObject);
  23.     procedure Button7Click(Sender: TObject);
  24.     procedure Button3Click(Sender: TObject);
  25.     procedure MyPopupHandler(Sender: TObject);
  26.     procedure Button4Click(Sender: TObject);
  27.     procedure Button5Click(Sender: TObject);
  28.     procedure Button6Click(Sender: TObject);
  29.     procedure Button8Click(Sender: TObject);
  30.     procedure Button9Click(Sender: TObject);
  31.   private
  32.     { Private declarations }
  33.   public
  34.     { Public declarations }
  35.   end;
  36.  
  37. var
  38.   Form1: TForm1;
  39.   MyMainMenu: TMainMenu;
  40.   MyPopUpMenu: TPopUpMenu;
  41.   MySubItem1,MySubItem2 : TMenuItem;
  42.   MySubItems: array[0..3] of TMenuItem;
  43.   MyPopUpItems: array[0..3] of TMenuItem;
  44. implementation
  45.  
  46. {$R *.DFM}
  47.  
  48. procedure TForm1.MyPopupHandler(Sender: TObject);
  49. begin
  50.   with Sender as TMenuItem do begin
  51.     ShowMessage(Caption);
  52.   end;
  53. end;
  54.  
  55. procedure TForm1.Button1Click(Sender: TObject);
  56. begin
  57.   MyMainMenu:= TMainMenu.Create(Self);
  58.   Button4.Enabled := true;
  59.   ShowMessage('MainMenu created but no items' + #13+
  60.               'are added so it does not show.');
  61.   Button1.Enabled := False;
  62. end;
  63.  
  64. procedure TForm1.Button2Click(Sender: TObject);
  65. begin
  66.   MyPopUpMenu := TPopUpMenu.Create(self);
  67.   Button3.Enabled := true;
  68.   ShowMessage('PopUpMenu created.');
  69.   Button2.Enabled := False;
  70. end;
  71.  
  72. procedure TForm1.Button7Click(Sender: TObject);
  73. begin
  74.   MyPopUpMenu.Popup(Form1.Left + 60, Form1.Top + 140);
  75.   Button9.Enabled := true;
  76. end;
  77.  
  78. procedure TForm1.Button3Click(Sender: TObject);
  79. var
  80.   i: Integer;
  81. begin
  82.   for i := 0 to 3 do begin
  83.     MyPopUpItems[i] := TMenuItem.Create(Self);
  84.     MyPopUpItems[i].Caption := 'New item ' + IntToStr(i);
  85.     MyPopUpMenu.Items.Add(MyPopUpItems[i]);
  86.   end;
  87.   Button7.Enabled := true;
  88.   Button3.Enabled := False;
  89. end;
  90. procedure TForm1.Button4Click(Sender: TObject);
  91. var
  92.   MyItem: array[0..2] of TMenuItem;
  93.   i: Integer;
  94. begin
  95.   for i := 0 to 2 do begin
  96.     MyItem[i] := TMenuItem.Create(Self);
  97.     MyItem[i].Caption := 'New item ' + IntToStr(i);
  98.     MyMainMenu.Items.Add(MyItem[i]);
  99.     end;
  100.   Button4.Enabled := False;
  101.   Button5.Enabled := true;
  102. end;
  103. procedure TForm1.Button5Click(Sender: TObject);
  104. var
  105.   i: Integer;
  106. begin
  107.   for i := 0 to 3 do begin
  108.     MySubItems[i] := TMenuItem.Create(Self);
  109.     MySubItems[i].Caption := 'New item ' + IntToStr(i);
  110.     MySubItems[i].OnClick := MyPopUpHandler;
  111.     MyMainMenu.Items[0].Add(MySubItems[i]);
  112.   end;
  113.   Button6.Enabled := true;
  114.   Button8.Enabled := true;
  115.   Button5.Enabled := False;
  116. end;
  117.  
  118.  
  119. procedure TForm1.Button6Click(Sender: TObject);
  120. begin
  121.   MySubItems[3].Break := mbBarBreak;
  122. end;
  123.  
  124. procedure TForm1.Button8Click(Sender: TObject);
  125. begin
  126.   MySubItems[2].Caption :='-';
  127. end;
  128.  
  129. procedure TForm1.Button9Click(Sender: TObject);
  130. var
  131.   i: Integer;
  132. begin
  133.   for i := 0 to 3 do begin
  134.     MyPopUpItems[i].OnClick := MyPopupHandler;
  135.   end;
  136. end;
  137.  
  138. end.
  139.