GARANTIR DESCONTO

Fórum Passagem de parâmetro para função criada dinamicamente #258084

11/11/2004

0

Oi, pessoal. Por favor, me ajudem no seguinte:
Tenho um submenu que será montado dinamicamente. O sistema lerá numa tabela e incluirá as opções neste menu de acordo com os registros do BD. Qdo o usuário clicar numa opção desse menu, irei gravar o código do item clicado em outra tabela. A questão é como passar este parâmetro para a função. Outra coisa: como colocar o menu com ´Checked´? Já estou construindo os itens como RadioItem, porém tenho q setar a opção checked no evento onclick...
Se o Sender tivesse a propriedade ´name´ o problema estaria resolvido, pois saberia o código do item clicado.

Abaixo o código:

procedure TfrmPrincipal.FormShow(Sender: TObject);
var
 NovoItem: TMenuItem;
begin
  dmConsult.dbConsultorio.Open;
  dmConsult.qryConsultorios.Open;
  if not dmConsult.qryConsultorios.Eof then
  begin
    while not dmConsult.qryConsultorios.Eof do
    begin
      NovoItem := TMenuItem.Create(Self);

      NovoItem.OnClick := CliqueMenu;

      NovoItem.Caption := dmConsult.qryConsultoriosNOME_CONSULT.AsString;
      NovoItem.RadioItem := True;
      NovoItem.Name := ´Consult´ + dmConsult.qryConsultoriosCOD_CONSULT.AsString;

      NovoItem.GroupIndex := 55; //Um número qualquer e que seja igual para todos
      mnuConsultorios.Add(NovoItem);
      dmConsult.qryConsultorios.Next;
    end;
  end;

  dmConsult.qryConsultorios.Open;
  dmConsult.dbConsultorio.Open;
end;


procedure TfrmPrincipal.CliqueMenu(Sender: TObject);
begin
  ShowMessage(´Teste´);
end;


Obrigado.


Gleison_gomes

Gleison_gomes

Responder

Posts

12/11/2004

Gilvanj

E se vc fizer assim ?


procedure TfrmPrincipal.CliqueMenu(Sender: TObject); 
begin 
  ShowMessage(TMenuItem(Sender).Caption); 
end; 



Responder

Gostei + 0

15/11/2004

Gleison_gomes

Gilvan, muitíssimo obrigado.
Deu certo!
Valeu!


Responder

Gostei + 0

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

Aceitar