Passagem de parâmetro para função criada dinamicamente

Delphi

11/11/2004

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

Curtidas 0

Respostas

Gilvanj

Gilvanj

11/11/2004

E se vc fizer assim ?


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



GOSTEI 0
Gleison_gomes

Gleison_gomes

11/11/2004

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


GOSTEI 0
POSTAR