FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
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; luly |
#2
|
||||
|
||||
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 |
#3
|
|||
|
|||
Cita:
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; |
#4
|
|||
|
|||
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 |
#5
|
||||
|
||||
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 |
#6
|
|||
|
|||
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]; |
|
|
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 |
|