Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Habilitar um submenu do popupMenu


nilegor

Pergunta

Olá, preciso habilitar um submenu do popup mas não consigo, só consigo habilitar a primeira opção, a que esta dentro do submenu não da certo, isso por que não estou conseguindo encontrar o caminho do caption do submenu, mas como faço isso ? Estou usando o seguinte código abaixo, mas depois de cadastros exite um submenu ESTOQUE por exemplo, e é esse que quero marcar como Checked:=true;
#Código

1
pop_Configurações.Items.Find('Cadastros').Checked:=true;
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

vou te dar um exemplo onde a criação do Menu e do Submenu do PopUp são dinamicos.

voce deve entender a lógica dos comandos e fazer as alterações necessarias no seu código .. ok ?

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, Grids, DBGrids, DBTables, Menus;

type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
    procedure PopupClick(Sender: TObject);
  end;

var
  Form1: TForm1;
  cc : integer = 0;
implementation

{$R *.dfm}

procedure TForm1.PopupClick(Sender: TObject);
var
  SubmenuItem, Item: TMenuItem; i : integer;
begin
  cc := 0;
  SubmenuItem := Sender as TMenuItem;
  while SubmenuItem.Count > 1 do
    SubmenuItem.Items[SubmenuItem.Count - 1].Free;
  while SubmenuItem.Count < 3 do begin
    Item := TMenuItem.Create(SubmenuItem);
    inc(cc);
    Item.Caption := Format('Novo item de submenu criado %d', [cc]);
    SubmenuItem.Add(Item);
  end;

// aqui o item selecionado do menu popup será marcado como Checked

 with (Sender as TMenuItem) do begin
    for i := 0 to (GetParentComponent as TPopupMenu).Items.Count - 1 do begin
      (GetParentComponent as TPopupMenu).Items[ i ].Checked := (i = MenuIndex);
    end;
  end;

// aqui o primeiro subitem do item do menu popup será marcado como Checked

 with (Sender as TMenuItem) do begin
    for i := 0 to (GetParentComponent as TPopupMenu).Items.Count - 1 do begin
      (GetParentComponent as TPopupMenu).Items[ i ].Items[0].Checked := (i = MenuIndex);
    end;
  end;

end;


procedure TForm1.Button1Click(Sender: TObject);
var
  Popup: TPopupMenu;
  Item, SubItem: TMenuItem;
  i : integer;
begin
  Popup := TPopupMenu.Create(Self);
  PopupMenu := Popup;
  for i := 1 to 3 do
     begin
        Item := TMenuItem.Create(Popup);
        Item.Caption := 'Teste PopUp Menu ';
        Item.OnClick := PopupClick;
        Popup.Items.Add(Item);
        SubItem := TMenuItem.Create(Item);
        SubItem.Caption := 'Submenu '+inttostr(i);
        Item.Add(SubItem);

    end;
end;


end.

 

abraço

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...