Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit menukld.view;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes,
- SysUtils,
- FileUtil,
- Forms,
- Controls,
- Graphics,
- Dialogs,
- StdCtrls,
- ExtCtrls,
- visualcomponents_class;
- type
- { TForm1 }
- TForm1 = class(TForm)
- Button1: TButton;
- Panel1: TPanel;
- pnlMenu: TPanel;
- procedure Button1Click(Sender: TObject);
- private
- MyPanel : TMyPanel;
- panelArray : array of TPanel;
- dummyLevel, dummyPanel : TPanel;
- procedure DoClick(Sender: TObject);
- procedure mainMenuContainer(AItems: integer);
- procedure itemsMenuCreate(AItems: integer);
- procedure levelsMenuContainer(AItems: integer);
- public
- end;
- var
- Form1: TForm1;
- const
- MENU0 = 8;
- LEVEL1 = 6;
- LEVEL2 = 7;
- LEVEL3 = 12;
- LEVEL4 = 9;
- subLEVEL1 = 12;
- subLEVEL2 = 5;
- subLEVEL3 = 3;
- subLEVEL4 = 7;
- {$R *.lfm}
- implementation
- { TForm1 }
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- mainMenuContainer(MENU0);
- itemsMenuCreate (MENU0);
- end;
- procedure TForm1.mainMenuContainer(AItems: integer);
- begin
- SetLength(panelArray, AItems);
- {
- dummyPanel := TPanel.Create(Self);
- with dummyPanel do
- begin
- Parent := Self;
- Name := 'pnlMenu';
- BevelInner := bvNone;
- BevelOuter := bvNone;
- Width := 195;
- Height := 45;
- Caption := EmptyStr;
- Color := $6925569;
- Visible := True;
- Align := alLeft;
- end;
- }
- // panelArray[] contem o TPanel Associado
- panelArray[0] := pnlMenu;
- end;
- procedure TForm1.DoClick(Sender: TObject);
- var
- i: integer;
- begin
- levelsMenuContainer(LEVEL1);// if Sender.ClassType = TSpeedButton then
- begin
- //PnlMenuVisibleFalse;
- for i := 0 to Length(panelArray) - 1 do
- begin
- if ( panelArray[i].Caption = TPanel(Sender).Caption) then
- begin
- panelArray[i].Top := TPanel(Sender).Top-3;
- panelArray[i].Visible := True;
- end;
- end;
- end;
- end;
- procedure TForm1.itemsMenuCreate(AItems: integer);
- var
- i : integer;
- begin
- i := AItems;
- repeat
- MyPanel := TMyPanel.Create(Self);
- MyPanel.Parent := panelArray[0];
- MyPanel.Align := alTop;
- MyPanel.Name := 'mnu' + i.ToString;
- MyPanel.Caption := MyPanel.Name;;//'MENU '+ i.ToString;
- MyPanel.BevelInner := bvNone;
- MyPanel.BevelOuter := bvNone;
- MyPanel.BorderSpacing.Bottom := 3;
- MyPanel.OnClick := @DoClick;
- Dec(i);
- until (i = 0);
- end;
- procedure TForm1.levelsMenuContainer(AItems: integer);
- var
- i : integer;
- MyPanelItems : TMyPanel;
- begin
- //SetLength(panelArray, AItems);
- dummyLevel := TPanel.Create(Self);
- with dummyLevel do
- begin
- Parent := Self;// panelArray[0];
- Left := 2 + panelArray[0].Width;
- Top := panelArray[0].top;
- Name := 'lvl';
- BevelInner := bvNone;
- BevelOuter := bvNone;
- Width := 195;
- Height := ( MyPanel.Height * LEVEL1 )+( (MyPanel.BorderSpacing.Bottom+LEVEL1)* 2 );
- Caption := EmptyStr;
- Color := clBlue;
- Visible := True;
- //
- i := AItems;
- repeat
- MyPanelItems := TMyPanel.Create(Self);
- MyPanelItems.Parent := dummyLevel;
- MyPanelItems.Align := alTop;
- MyPanelItems.Name := 'lvl' + i.ToString;
- MyPanelItems.Caption := MyPanel.Caption;//'LEVEL '+ i.ToString;
- MyPanelItems.BevelInner := bvNone;
- MyPanelItems.BevelOuter := bvNone;
- MyPanelItems.BorderSpacing.Bottom := 3;
- MyPanelItems.OnClick := @DoClick;
- Dec(i);
- until (i = 0);
- end;
- end;
- end. {end unit}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement