Ver Mensaje Individual
  #5  
Antiguo 10-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
No tienes por qué utilizarlo en un evento específico del combo:

FormCreate
FormShow
FormActivate
FormResize

Estos eventos se ejecutan en ese mismo orden, FormResize, se reproduce
muchisimas veces, así que no es el adecuado. FormActivate depende; si es
una aplicación con varias ventanas, o puedes saltar de una ventana a otra,
tambien se producirá varias veces.

Como vas a usar el bucle for accediendo a los campos del Adoquery, el
adoquery debe estar abierto antes.

Por cierto, el bucle for debe empezar en cero si quieres coger todos los
campos.

Tambien puedes hacer otra cosa:
Código Delphi [-]
procedure FormCreate
for i:=0 to ado.fields.count-1 do
  combo.items.AddObject(ado.fields[i].DisplayName, ado.Fields[i]);
Con esto estas añadiendo a cada item del combo, el DisplayName, y estas
guardando el Campo Asociado, o sea el campo de tipo TField; de tal forma
que mostramos en el combo los "DisplayNames", que son mas descriptivos
para el usuario, y despues, cuando lo necesitamos por código, podemos
averiguar el nombre del campo que necesitamos nosotros como programador;
Me explico:

Código Delphi [-]
Necesito usar el item 1 del combo para una consulta sql, (por ejemplo)
var nombreCampo:string;
begin
  nombreCampo:= Tfield(combo.items[1]).FieldName
end;
1º- Como sabemos que el objeto que hemos guardado es un TField, hacemos
un Moldeo de tipos, es decir, forzamos a que delphi use el objeto como si fuera un Tfield( , despues accedemos al item que quereremos.
2º- despues de cerrar el parentesis del Casteo, ya podemos acceder a todas
las propiedades de un TField.

Edito: La consulta debe estar abierta en todo momento, ya que el objeto Tfield que guardamos en cada item, es un puntero, y está apuntando al campo del Adoquery.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 10-06-2005 a las 10:42:30.
Responder Con Cita