FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Como saber el Numero de Item pulsado de un TPopupMenu
Estoy montando la creación de un TPopUpMenu dinamicamente
me veo en la obligación de saber cual es el numero de Item Seleccionado para pasar a un ActionList el Item para que este ejecute un Sql donde debo pasarle uno campodebusqueda.Strings[Item Capturado] porque este se corresponde al campo que busco. Gracias |
#2
|
||||
|
||||
Wop!
Puedes montarte una función que recorra el array de la propiedad Items y retorne el indice. La función tendría que parecerse a esta
Y se usaría así
No me suena que exista alún método o propiedad que te facilite la vida y no tengo ahora al aayuda a mano
__________________
E pur si muove |
#3
|
||||
|
||||
Gracias Marto
En que Metodo pondrias la Llamada en el OnChange del TPopUPMenu???
|
#4
|
||||
|
||||
Wop!
Cita:
Cita:
__________________
E pur si muove |
#5
|
||||
|
||||
Utilizando TMenuItem para Busquedas
Gracias Marto lo solucione asignando la propiedad Tag con un Integer
distinto para cada Item Creado Dinamicamente e interrogandolo Despues. Paso el Código: { Funciones y Acciones para realizar Busquedas } // ____________________________________________________________________________ procedure TfrmBuscar.TipoBusqueda(Titulo: String; NumeroOrden: Integer); var NewItem: TMenuItem; begin NewItem := TMenuItem.Create(Self); NewItem.Caption := Titulo; NewItem.OnClick := acBusca.OnExecute; // Llamada al Action. { En Está funcion se define NumeroOrden que será el Tag Asignado} { como es una propiedad que no se usa en los Items y es la } { única por la cual puedo Interrogar cual es el Item Seleccionado } NewItem.Tag := NumeroOrden; PopMenu.Items.Add(NewItem); end; procedure TfrmBuscar.acBuscaExecute(Sender: TObject); var strWhere: string; x:integer; begin try if Sender is TMenuItem then FiltrandoBusquedas('WHERE (' + CamposBusqueda.Strings[TMenuItem(Sender).Tag] +' LIKE ' +quotedStr(trim(txtTexto.Text) +'%')+')'); except end; end; {Nuevo} procedure TfrmBuscar.FiltrandoBusquedas(AWhere: string); var strWhere: string; begin Try ADOQuery1.DisableControls; ADOQuery1.Close; strWhere := AWhere; ADOQuery1.SQL.Strings[1] := strWhere; ADOQuery1.Open; ADOQuery1.EnableControls; lblCoincidencias.Caption := 'Cantidad de coincedencias: ' + inttostr(ADOQuery1.RecordCount ); gridResultado.Columns[gridResultado.Columns.Count - 1].Color := clSkyBlue; FormatoGrilla; except end; end; { FIN Funciones y Acciones para realizar Busquedas } // ____________________________________________________________________________ |
#6
|
||||
|
||||
Bueno pero...
¿qué no sirve la propiedad MenuIndex del item? MenuIndex es el índice del item en el menú que lo contiene. // Saludos |
#7
|
||||
|
||||
Gracias Roman, lo cambie y funciona.
Tema Finalizado. |
|
|
|