Fórum Parametro no OnClick MenuPopup #267716

08/02/2005

0

Olá a todos ,

Estou com um probleminha aqui, já fiz uma busca no forum mas não consigo achar uma solução pra este problema.
O seguinte:
estou fazendo todos os procedimento pra criar em tempo de execução a lista de opções no menu popup, porém, no evento ONCLICK gostaria de repassar o valor ou opção como parametro, como se eu quisesse definir que uma variável contesse o caption do item clicado do menupopup.
este é o código, está beleza, listando tudo direitinho, porém não sei o que fazer no Onclick.
Dá um forcinha aí ;-)

table1.first;
while not table1.Eof do
begin
Itens := TMenuItem.Create(PopupMenu1); // ´Popup1´ ou o nome de seu menu
Itens.Caption := table1ano.AsString;
Itens.OnClick := ´aqui eu gostaria de enviar a um evento ou procedure o valor da lista que foi clicado, pode ser como parametro ou aqui mesmo atribuir o valor a variável´;
PopupMenu1.Items.Add(Itens);
table1.Next;
end;


agradeço de montão a força.
:(


Carlosceuma

Carlosceuma

Responder

Posts

08/02/2005

Ivanh

Cria um array com a informacao que vc precisa, e no tag do item de menu criado coloca o indice pra localizar no array


Responder

Gostei + 0

08/02/2005

Carlosceuma

Olá ivan,

é este caminho que imaginei, cria uma array mas esta do Tag que estou me encrencando um pouco.

mas verei se desenrrolo aqui, ficando de pé qualquer exemplo que me ajude :lol:


Responder

Gostei + 0

08/02/2005

Carlosceuma

Ainda tô precisando de ajuda.

Alguém pode me dar uma dica pra resolver este problema no menu popup?

:(


Responder

Gostei + 0

08/02/2005

Massuda

Não sei se entendi direito o que você quer, mas parece que você tem um menu com os anos e quer que cada menuitem dispare uma rotina que tem como parâmetro o ano.

Acho que você precisa de algo assim:
// criar os menuitens

Table1.First;
while not Table1.Eof do begin

  Item := TMenuItem.Create(PopupMenu1); // "Popup1" ou o nome de seu menu
  Item.Caption := Table1Ano.AsString;
  // se Table1Ano for Date ou DateTime, precisa extrair o ano,
  // mas vou assumir que Table1Ano é Integer ou coisa parecida
  Item.Tag := Table1Ano.AsInteger; 
  Item.OnClick := ItemComAnoClick;

  PopupMenu1.Items.Add(Item);

  Table1.Next;
end;

// exemplo do tratador do OnClick
// TMeuForm é o form onde está o menu

procedure TMeuForm.ItemComAnoClick(Sender: TObject);
var
  Item: TMenuItem
  Ano: Integer;
begin
  Item := Sender as TMenuItem;
  Ano := Item.Tag;

  // faz alguma coisa com o Ano 
end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar