Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-09-2007
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Poder: 17
Cecilio Va por buen camino
Nombres automáticos.

Hola
en la sección de trucos he usado este código que me resulta muy interesante:
Código:
For x := 0 To ComponentCount - 1 Do
  If Components[x] Is TEdit Then
    TEdit(Components[x]).Text := '';
Pero me gustaría ampliarlo: Vereis imagina que en un DataSet tengo un registro de una DB, y quiero poner el valor en cada Edit. Cada Edit tiene el mismo nombre que el nombre del campo.

¿ como se podría hacer ?

Es decir con for recorres todos los campos, y si existe un componente con el mismo nombre que el campo pon en su propiedad text el valor del campo.
__________________
Saludos Cordiales.
------------------

Responder Con Cita
  #2  
Antiguo 07-09-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Tienes dos opciones:

Código Delphi [-]
var
  I, J: Integer;

begin
  for I := 0 to Pred(DataSet.Fields.Count) do
    for J := 0 to Pred(Form.ComponentCount) do
      if (Form.Components[J] is TEdit) and (DataSet.Fields[i].FieldName = Form.Components[J].Name) then
      begin
        TEdit(Form.Components[J]).Text := DataSet.Fields[i].AsString;
        Break // Dejamos de buscar en los controles
      end
end;

La otra opción es usar el método FindComponent:

Código Delphi [-]
var
  I: Integer;
  Edit: TEdit;

begin
  for I := 0 to Pred(DataSet.Fields.Count) do
  begin
    Edit := Form.FindComponent(DataSet.Fields[i].FieldName) as TEdit;
    if Assigned(Edit) then
      Edit.Text := DataSet.Fields[i].AsString
  end
end;

Saludos...
Responder Con Cita
  #3  
Antiguo 08-09-2007
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Poder: 17
Cecilio Va por buen camino
Muchas gracias.

Usaré la segunda opción, la entiendo menos, pero parece más rápida.

Gracias de nuevo.
__________________
Saludos Cordiales.
------------------

Responder Con Cita
  #4  
Antiguo 08-09-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
una cosa segun entiendo cada campo tiene el nombre del edit, pero no necesariamente su indice, asi que yo sugeriria algo como :

Código Delphi [-]
var
  I, J: Integer;

begin
    for J := 0 to Pred(Form.ComponentCount) do
      if (Form.Components[J] is TEdit) then
      begin
        TEdit(Form.Components[J]).Text := DataSet.FieldbyName(TEdit(Form.Components[J]).Name).AsString;
      end;
end;

pero para que funcione debe ser cierta la premisa de que el nombre del campo = al nombre del edit
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 08-09-2007
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Poder: 17
Cecilio Va por buen camino
Va de perlas.

Muchas gracias a todos.
__________________
Saludos Cordiales.
------------------

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
Código de verificación para prevenir envíos automáticos elcigarra PHP 2 04-05-2007 01:01:19
calcular cargo por atraso automaticos... ronimaxh Conexión con bases de datos 0 12-04-2006 16:51:36
Instrucciones para utilizar los cajeros automáticos desde el auto delphi.com.ar Humor 6 01-04-2004 21:39:26
ordernar nombres y evitar nombres repetidos en DBLookupComboBox @-Soft Conexión con bases de datos 4 14-01-2004 16:30:51


La franja horaria es GMT +2. Ahora son las 14:50:26.


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