![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
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]; |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|