Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
- 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.
Código Delphi [-]
var T:Tcomponent;
begin
  T := Findcomponent(....);
 if t  <> nil  then
    t.Loquesea

- FindComponent busca por el nombre del componente, por tanto tu instrucción sería más o menos:
Código Delphi [-]
  var t:Tcomponent;
begin 
  t := Form_ABM_Rubros.FindComponent('Query11');
  if Assigned(t) then // lo mismo que en el ejemplo anterior.
     t.loquesea.

// saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #2  
Antiguo 29-11-2005
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 269
Poder: 24
Carmelo Cash Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 29-11-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Cita:
Empezado por Carmelo Cash
Con la sugerencia de Lepe no entiende la propiedad Fields[1] (Undeclared identifier)
Seguramente porque no estas haciendo un cast a TQuery... ¿Entiendes lo que acabas de hacer?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 26-09-2006
Avatar de jzginez
jzginez jzginez is offline
Miembro
 
Registrado: sep 2003
Ubicación: Puebla, México
Posts: 247
Poder: 23
jzginez Va por buen camino
Hola, estoy intentando hacer lo mismo que Carmelo pero no ne sale a la pregunta directa de Delphi.com.ar:

Cita:
Seguramente porque no estas haciendo un cast a TQuery... ¿Entiendes lo que acabas de hacer?
la verdad NO, les pongo lo diferente de mi caso:

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:
Código Delphi [-]
 if dataSource1.datset.name = 'IBClientes'
 Then Begin
   NuevaConsulta:= AgregaFiltro(DtmDatos.IBClientes.SelectSQL.text);
   DtmDatos.IBClientes.Close;
   DtmDatos.IBClientes.SelectSQL.Clear;
   DtmDatos.IBClientes.SelectSQL.add(NuevaConsulta);
   DtmDatos.IBClientes.Open;
  End;
y haci para cada IBDataSet que uso

mi primera intención era poner algo así:
Código Delphi [-]
 NuevaConsulta:= DataSource1.DataSet.SelectSQL;
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:
Tendrías que tener algunas consideraciones, como verificar si FindComponent retornó algo como lo que estas esperando:

Código Delphi [-]

var
  AComponent: TComponent;
begin
  AComponent := FindComponent('Query11');
  if AComponent is TQuery then
    Edit1.Text := TQuery(AComponent).Fields[1].Value
end;

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:

Código Delphi [-]
 ...
  AComponent := Form_ABM_Rubros.FindComponent('Query11');
Saludos!
y pasa lo mismo no puedo accesar a la propiedad SelectSQL, ¿que hay que hacer?

Gracias
__________________
Espero poder seguir exprimiéndote el cerebro 8)
Jorge Zamora Ginez
Puebla, Pue. México
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:57:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi