Passagem de parâmetro para função criada dinamicamente
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.
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
Curtidas 0
Respostas
Gilvanj
11/11/2004
E se vc fizer assim ?
procedure TfrmPrincipal.CliqueMenu(Sender: TObject); begin ShowMessage(TMenuItem(Sender).Caption); end;
GOSTEI 0
Gleison_gomes
11/11/2004
Gilvan, muitíssimo obrigado.
Deu certo!
Valeu!
Deu certo!
Valeu!
GOSTEI 0