Advertisement
arirod

helio

Jun 22nd, 2019
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.91 KB | None | 0 0
  1. unit menukld.view;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Classes,
  9.   SysUtils,
  10.   FileUtil,
  11.   Forms,
  12.   Controls,
  13.   Graphics,
  14.   Dialogs,
  15.   StdCtrls,
  16.   ExtCtrls,
  17.   visualcomponents_class;
  18.  
  19. type
  20.  
  21.   { TForm1 }
  22.  
  23.   TForm1 = class(TForm)
  24.     Button1: TButton;
  25.     Panel1: TPanel;
  26.     pnlMenu: TPanel;
  27.     procedure Button1Click(Sender: TObject);
  28.   private
  29.     MyPanel : TMyPanel;
  30.     panelArray : array of TPanel;
  31.     dummyLevel, dummyPanel : TPanel;
  32.  
  33.     procedure DoClick(Sender: TObject);
  34.     procedure mainMenuContainer(AItems: integer);
  35.     procedure itemsMenuCreate(AItems: integer);
  36.     procedure levelsMenuContainer(AItems: integer);
  37.  
  38.   public
  39.  
  40.   end;
  41.  
  42.  
  43. var
  44.   Form1: TForm1;
  45.  
  46. const
  47.   MENU0     = 8;
  48.   LEVEL1    = 6;
  49.   LEVEL2    = 7;
  50.   LEVEL3    = 12;
  51.   LEVEL4    = 9;
  52.   subLEVEL1 = 12;
  53.   subLEVEL2 = 5;
  54.   subLEVEL3 = 3;
  55.   subLEVEL4 = 7;
  56.  
  57. {$R *.lfm}
  58.  
  59. implementation
  60.  
  61.  
  62.  
  63.  
  64. { TForm1 }
  65.  
  66. procedure TForm1.Button1Click(Sender: TObject);
  67. begin
  68.   mainMenuContainer(MENU0);
  69.   itemsMenuCreate  (MENU0);
  70. end;
  71.  
  72.  
  73. procedure TForm1.mainMenuContainer(AItems: integer);
  74. begin
  75.   SetLength(panelArray, AItems);
  76.  
  77.   {
  78.   dummyPanel := TPanel.Create(Self);
  79.   with dummyPanel do
  80.   begin
  81.     Parent     := Self;
  82.     Name       := 'pnlMenu';
  83.     BevelInner := bvNone;
  84.     BevelOuter := bvNone;
  85.     Width      := 195;
  86.     Height     := 45;
  87.     Caption    := EmptyStr;
  88.     Color      := $6925569;
  89.     Visible    := True;
  90.     Align      := alLeft;
  91.   end;
  92.   }
  93.  
  94.   // panelArray[] contem o TPanel Associado
  95.   panelArray[0] := pnlMenu;
  96.  
  97. end;
  98.  
  99. procedure TForm1.DoClick(Sender: TObject);
  100. var
  101.   i: integer;
  102. begin
  103.   levelsMenuContainer(LEVEL1);// if Sender.ClassType = TSpeedButton then
  104.   begin
  105.     //PnlMenuVisibleFalse;
  106.     for i := 0 to Length(panelArray) - 1 do
  107.              begin
  108.         if ( panelArray[i].Caption = TPanel(Sender).Caption)  then
  109.         begin
  110.           panelArray[i].Top     := TPanel(Sender).Top-3;
  111.           panelArray[i].Visible := True;
  112.         end;
  113.       end;
  114.   end;
  115. end;
  116.  
  117. procedure TForm1.itemsMenuCreate(AItems: integer);
  118. var
  119.   i : integer;
  120. begin
  121.   i := AItems;
  122.   repeat
  123.     MyPanel                      := TMyPanel.Create(Self);
  124.     MyPanel.Parent               := panelArray[0];
  125.     MyPanel.Align                := alTop;
  126.     MyPanel.Name                 := 'mnu' + i.ToString;
  127.     MyPanel.Caption              := MyPanel.Name;;//'MENU '+ i.ToString;
  128.     MyPanel.BevelInner           := bvNone;
  129.     MyPanel.BevelOuter           := bvNone;
  130.     MyPanel.BorderSpacing.Bottom := 3;
  131.     MyPanel.OnClick              := @DoClick;
  132.     Dec(i);
  133.   until (i = 0);
  134. end;
  135.  
  136. procedure TForm1.levelsMenuContainer(AItems: integer);
  137. var
  138.   i : integer;
  139.   MyPanelItems                      : TMyPanel;
  140. begin
  141.   //SetLength(panelArray, AItems);
  142.  
  143.   dummyLevel   := TPanel.Create(Self);
  144.   with dummyLevel do
  145.   begin
  146.     Parent     := Self;//   panelArray[0];
  147.     Left       := 2 + panelArray[0].Width;
  148.     Top        := panelArray[0].top;
  149.     Name       := 'lvl';
  150.     BevelInner := bvNone;
  151.     BevelOuter := bvNone;
  152.     Width      := 195;
  153.     Height     := ( MyPanel.Height * LEVEL1 )+( (MyPanel.BorderSpacing.Bottom+LEVEL1)* 2 );
  154.     Caption    := EmptyStr;
  155.     Color      := clBlue;
  156.     Visible    := True;
  157.  
  158.     //
  159.       i := AItems;
  160.       repeat
  161.         MyPanelItems                      := TMyPanel.Create(Self);
  162.         MyPanelItems.Parent               := dummyLevel;
  163.         MyPanelItems.Align                := alTop;
  164.         MyPanelItems.Name                 := 'lvl' + i.ToString;
  165.         MyPanelItems.Caption              := MyPanel.Caption;//'LEVEL '+ i.ToString;
  166.         MyPanelItems.BevelInner           := bvNone;
  167.         MyPanelItems.BevelOuter           := bvNone;
  168.         MyPanelItems.BorderSpacing.Bottom := 3;
  169.         MyPanelItems.OnClick              := @DoClick;
  170.         Dec(i);
  171.       until (i = 0);
  172.   end;
  173. end;
  174.  
  175.  
  176. end. {end unit}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement