Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-07-2007
Avatar de CottonMouth
CottonMouth CottonMouth is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
CottonMouth Va por buen camino
Question Agregar Nombre de campos en un array de DBText

Hola a todos !Como les va? bueno les explico tengo que crear una array de DbText y que a medida que se vallan creando contengan un nombre de campo distinto segun la tabla, como debo hacer?. Hasta ahora esto es lo que hice:

Código:
 
for i:=1 to 6 do
  begin
   Campo[i]:=TDBText.Create(self);
      with  Campo[i] do
     begin
       DataSource:=DataSource1;
       Width := 193; // ancho
       Height := 21; //alto
       Left :=32;//posicion X
       Top := i* ConstHeight; //posicion Y
       Parent := PanelDatos; //en donde se dibujan los botones
       Visible := True; //para que se vean
       end;
     end;
intente con un if, con un case y la variable i y el datafield asignando le el nombre del campo pero no me funciono porque no me muestra nada obviamente lo estoy haciendo mal.si me pueden ayudar con esto se los agradeseria mucho!! Seguro debe ser una pavada para ustedes pero como soy novata no se me ocurre.Desde ya gracias!! besotes a todos!!

luly
Responder Con Cita
  #2  
Antiguo 02-07-2007
Avatar de CottonMouth
CottonMouth CottonMouth is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
CottonMouth Va por buen camino
Queria agregar donde declare el array para los que estan igual que yo:

public
{ Public declarations }
Edit:array[1..6]of TEdit;
Campo:array[1..6] of TLabel;

Besotes!!
luly
Responder Con Cita
  #3  
Antiguo 02-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
Cita:
Empezado por CottonMouth
public
{ Public declarations }
Edit:array[1..6]of TEdit;
Campo:array[1..6] of TLabel;
El TLabel no tiene una propiedad DataSource , deberías cambiar tu declaración del array campo por :
Campo:array[1..6] of TDBText;

Porque además cuando lo creas igualas un TLabel a un TDBText:

Campo[i]:=TDBText.Create(Self);

Y como recomendación de OOP:

NO declares variables en la parte publica de tu forma; declarala en la parte privada, si necesitas que sean accesados desde otra unidad entonces usa propiedades;
Responder Con Cita
  #4  
Antiguo 02-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
Fields

En cuando al nombre de los campos puedes usar el procedimiento de los DataSet GetFieldNames();

el cual recibe como parámetro un TStringList;


y en los items del stringlist tendrías los nombres de los campos accesibles con su indice:

Campos[i].Caption:=StringList[i-1];//i-1 porque el indice del primer elemento es 0 y tu manejas un array basado en 1
Responder Con Cita
  #5  
Antiguo 03-07-2007
Avatar de CottonMouth
CottonMouth CottonMouth is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
CottonMouth Va por buen camino
Question

gabielkc : perdona mi gran ignorancia pero no me quedo claro del todo como usar el procedimiento que me señalaste podrias enseñarmelo y como le paso los datos al stringlist, gracias igual por dedicarme tu tiempo!
Besos. Luly
Responder Con Cita
  #6  
Antiguo 03-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
Campos

function ObtieneCampo(n:Integer):string;
var Lista:TStringList;
begin
Lista:=TStringList.Create;
Tabla1.GetFieldNames(Lista);
Result:=Lista[n];
Lista.Free;
end;


Ese sería basicamente el procedimiento para obtener el nombre de un campo cualquiera, no se te olvide que tu for inicia en 1 y el índice el TStringList inicia en 0, osea en tu caso lo llamarías mas o menos así:

Campos[i].Caption:=ObtieneCampo(i-1); ///campos quedaría declarada como un array de TLabel;

y la creación sería:

Campos[i]:=TLabel.Create;


Si quieres usar TDBText solo con especificar el campo al que quieres asociarlo es suficiente:

Campos[i].DataField:=Tabla1.Fields[i-1];
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Agregar Nombre a las columnas de Un DBgrid en Timpo de Ejecucion mgaray Varios 5 22-06-2018 03:19:41
Mostrar nombre de campos y filtar nombre de tablas .db en un combobox Coco_jac Varios 1 24-06-2006 01:34:29
Agregar campos de registro en la interface javitocarrasco Conexión con bases de datos 4 05-05-2006 13:14:37
agregar campos en combobox @-Soft Conexión con bases de datos 4 24-02-2004 13:00:23
¿Cómo trabajar con los campos con array? jncrls Firebird e Interbase 1 13-11-2003 23:23:35


La franja horaria es GMT +2. Ahora son las 03:42:20.


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