![]() |
Consula sobre Findcomponent
Hola Foro:
Estoy usando Delphi 5.0 y necesito hacer referencia a más de una consulta. Para esto pensaba utilizar la opción Findcomponent y en una variable string pasar el dato de la consulta que necesito. En el ejemplo que muestro no estoy utilizando una variable, estoy escribiendo el nombre del componente como 'texto', esto es solamente más que para probar. El problema en que aparece un error inentendible. Esto funciona OK :) Edit2.text:= ABM_Rubros.Form_ABM_Rubros.Query11.fields[1].value; Esto No :mad: Edit2.text:= TQuery(FindComponent('ABM_Rubros.Form_ABM_Rubros.Query11')).fields[1].value; Tal vez me sepan decir en donde le estoy pifiando. Desde ya muchas gracias |
Cita:
¿No será un Access Violation? Sin el error, todo lo que te podamos decir son suposiciones. |
Hola
Gracias por atender mi consulta.
Efectivamente el mesnaje es 'Access violation at adress 00494A3C in module nnn' |
Cita:
Tendrías que tener algunas consideraciones, como verificar si FindComponent retornó algo como lo que estas esperando:
Vale aclarar que si estas ejecutando FindComponent en un evento o dentro del código de un TComponent (Posiblemente de un TForm), FindComponent lo ejecutará Self y me parece que vos queres buscarlo en Form_ABM_Rubros, por lo que tendrás que hacer algo como: Saludos! |
- FindComponent busca en el Form o en el Contenedor donde está, si pretendes buscar en Form_ABM_RUBROS, deberás usar Form_ABM_RUBROS.FindComponent(.....);
- FindComponent devuelve nil (puntero nulo) si no encuentra el componente. Por tanto, siempre debes verificar que se ha encontrado, de lo contrario, en TQuery(nil).Fields <<<<<< Aquí estas traspasando un puntero nulo, Access Violation.
- FindComponent busca por el nombre del componente, por tanto tu instrucción sería más o menos:
// saludos |
Salió!!!
Quedó como me sugirió Delphi.com.ar
Edit2.Text:=TQuery(Form_ABM_Rubros.FindComponent('Query11')).Fields[1].Value; Con la sugerencia de Lepe no entiende la propiedad Fields[1] (Undeclared identifier) Gracias por su ayuda. |
Cita:
|
Hola, estoy intentando hacer lo mismo que Carmelo pero no ne sale a la pregunta directa de Delphi.com.ar:
Cita:
Tengo un DataModule (DtmDatos) con n IBDataSet (algunos son IBVentas, IBClientes, IBProveedores, etc) En mi forma2 (FrmCambiaSQL) donde tengo un TDataSource y una combinación de Tcomboxbox, Tedit y otros componentes para que el usuario pueda crear un filtro (where algo = algo) que se añade a la sentencia select del IBDataSet corespondiente. en el boton que aplica los cambios para crear el filtro tengo bastantes lineas con algo como esto: y haci para cada IBDataSet que uso mi primera intención era poner algo así: pero desde el componente tDataSource no puedo accesar a la propiedad SelectSQL, esto seria lo ideal que nesecito. con este hilo intente lo que aconsega Delphi.com.ar Cita:
Gracias |
La franja horaria es GMT +2. Ahora son las 07:56:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi