Ver Mensaje Individual
  #6  
Antiguo 05-03-2024
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por michal Ver Mensaje
El tema es que no puedo buscar los campos en el Field Editor porque mi consulta es creada mediante código, o sea, no está en la propiedad SQL del TADOQuery, y por supuesto, al intentar extraer los campos, me da error pq todavia no existe la consulta, me explico?

Correcto.
Pues si la consulta la montas en ejecución, esto también lo montas en ejecución. Si funciona lo uno, también funciona lo otro.

Mantienes el procedimiento anterior para el evento y lo defines en la parte privada del form:

Código Delphi [-]
...
  private
    procedure ChangeMemoGetText(Sender: TField; var Text: string; DisplayText: Boolean);
...


Y luego después de asignar la SQL, creas las definiciones de campos y "enganchas" el evento.
A partir de ahí el funcionamiento es el mismo que si lo hubieras hecho en diseño.

Código Delphi [-]
...
var
  fd:TFieldDef;
  f:TField;
begin
  // ...  suponiendo que el campo se llame MEMO...
  if not ADOQuery1.Active then begin
    // Asigno la SQL en tiempo de ejecución
    ADOQuery1.SQL.Text := 'Select * from Tabla1';
    // Fuerzo el Update de las definiciones
    ADOQuery1.FieldDefs.Update;
    // Me aseguro de que la definición está
    fd := ADOQuery1.FieldDefs.Find('memo');
    if Assigned(fd) then begin
      // me "engancho" el evento igual que si lo asignara en visual
      ADOQuery1.FindField('memo').OnGetText := ChangeMemoGetText;
    end;

    ...
    Activo la query...
  end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita