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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-06-2005
Cosgaya Cosgaya is offline
Miembro
 
Registrado: jun 2005
Posts: 105
Poder: 19
Cosgaya Va por buen camino
Question Pasar datos de una tabla a un memo

bueno, ahi va otra vez mi pregunta, mejor explicada
yo tengo una tabla de productos con su descripcion (paradox), y quiero, que al apretar a un boton, el campo descripcion de todos los producotos, se pase a varios memo, edit o lo que se necesite, y que cuando se llene el memo (max.200 caracteres por memo) pase al siguiente.

nota: es imprescindible varios memos

si alguien me la prodia resolver gracias
disculpen por no haber sabido expresarme en mi anterior pregunta
Responder Con Cita
  #2  
Antiguo 05-06-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Y cuál es el problema?

Recorres la tabla con un ciclo. En cada iteración tomas el nombre del producto con FieldByName y lo agregas al Memo en turno. Cuando éste se agote (Memo.Lines.Count te lo indicará) comienzas con el siguiente.

// Saludos
Responder Con Cita
  #3  
Antiguo 06-06-2005
Cosgaya Cosgaya is offline
Miembro
 
Registrado: jun 2005
Posts: 105
Poder: 19
Cosgaya Va por buen camino
Continua con el mismo tema...

hola roman gracias por lo del otro dia (pasar la informacion de una tabla a un memo y cuando acabe con el primer memo seguir con el otro, cuando cada memo tenia un max. 200 caracteres), pero no consigo hacer para que cuando acaba con el primer memo siga con el siguiente no se como insertarlo
si pudieras ayudarme
muchas gracias

procedure TForm3.Button1Click(Sender: TObject);

begin
with form2.table1 do
begin

First;
Repeat
memo1.lines.add (FieldByName('Anuncio').AsString + ('-------'));
Next
Until (FieldByName('Anuncio').AsString = ' ')

or EOF
end;

Última edición por Neftali [Germán.Estévez] fecha: 06-06-2005 a las 14:35:50.
Responder Con Cita
  #4  
Antiguo 06-06-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Antes de nada, por favor, no abras hilos nuevos, para continuar con un tema ya expuexto y abierto.
(1) Usuarios que lo lean no sabrán de qué hablas (y deberán buscar el post anterior).
(2) Alguien que posteriormente busque lo mismo que tú has expuesto no encontrará una solución satisfactoria en el post (ya que está repartida en varios de ellos...)

Para saber la longitud del memo puedes utilizar Memo.Lines.Text, eso te devuelve el texto del memo en una cadena. A eso le puedes aplicar la función Lenght, para calcular la longitud.

Para utilizar varios memos, numéralos (por ejemplo) como memo1, memo2, memo3,... Dentro del bucle utiliza un contador (i, por ejemplo) para "saber" con qué memo estás trabajando. Con FindComponent('Memo'+IntToStr(i)) puedes selecconar el que necesitas en cada momento.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 06-06-2005
Cosgaya Cosgaya is offline
Miembro
 
Registrado: jun 2005
Posts: 105
Poder: 19
Cosgaya Va por buen camino
duda con findcomponent

gracias por la respuesta y disculpa
otra cosa no se como meter el findcomponent en mi codigo

Última edición por Cosgaya fecha: 06-06-2005 a las 15:59:45.
Responder Con Cita
  #6  
Antiguo 06-06-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Código Delphi [-]
   form1.FindComponet(Nombre);

Te buscará un componente con ese Nombre dentro del form1.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 06-06-2005
Cosgaya Cosgaya is offline
Miembro
 
Registrado: jun 2005
Posts: 105
Poder: 19
Cosgaya Va por buen camino
Question no lo consigo

neftali sigo sin averiguar en que parte o de que forma debo introducier el findcomponent para cuando se acabe el un memo (max.200 caracteres) empiece con el otro. el codigo en que lo tengo que metere esta un poco mas arriba.
gracias
Responder Con Cita
  #8  
Antiguo 07-06-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Échale un vistazo a éste código:

Código Delphi [-]
 procedure TForm1.BitBtn1Click(Sender: TObject);
 const
   LOG_MAX_MEMO = 200;
 var
   i:Integer;  // nos servirá para ver qué memo utilizamos
   mm:TMemo;
   comp:TComponent;
 begin
 
   // Inicializar la i
   i := 1;
   // Abrir la tabla
   Self.table1.Open;
   // Acceder al primer memo
   mm := TMemo(Self.FindComponent('memo' + IntToStr(i)));
 
   with Self.table1 do begin
     First;
     repeat
       mm.lines.add(FieldByName('Codigo').AsString + ('-------'));
       Next;
 
       // Comprobar si ha llegado a la longitud máxima
       if (Length(mm.Lines.Text) > LOG_MAX_MEMO) then begin
         i := i + 1;
         // Accder al siguiente
         comp := Self.FindComponent('memo' + IntToStr(i));
         // existe?
         if Assigned(comp) then begin
           mm := TMemo(comp);
         end
         else begin
           MessageDlg('Se han acabado los memos...', mtError, [mbOK], 0);
           Self.Table1.Last;
         end;
       end;
 
     until (FieldByName('Codigo').AsString = '') or EOF
   end;
 end;

Éstá generado a partir del tuyo...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #9  
Antiguo 07-06-2005
Cosgaya Cosgaya is offline
Miembro
 
Registrado: jun 2005
Posts: 105
Poder: 19
Cosgaya Va por buen camino
no me funciona el codigo

hola neftali: gracias por el codigo
pero no funciona bien, porque la condicion no la cumple haste que le vuelve a apretar al boton. no tengo muxa idea pero cre que puede ser... porque pasa los datos de la base de datos al memo antes de que termine de contar los caracteres osea, que es mas rapido el que pase los datos al memo que el contar los caracteres por eso no devuelve el valor a tiempo...
soy nuevo en delphi... esta es la conclusion a la que he llegado no se si sera una barbaridad lo que acabo de decir, si es asi... perdonen
Responder Con Cita
  #10  
Antiguo 08-06-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A mi me funciona perfectamente. ¿Puedes explicar un poco mejor el error , no acabo de enterderlo?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #11  
Antiguo 08-06-2005
Cosgaya Cosgaya is offline
Miembro
 
Registrado: jun 2005
Posts: 105
Poder: 19
Cosgaya Va por buen camino
Exclamation problema

que cuando doy al boton con el cogigo ese en vez de pasar la informacion al segundo memo cuando en el primero ya hay mas de 200 caracteres, lo escribe todo en el primero, y es en la segunda vez que pulsas el boton cuando cumple la condicion de los caracteres y pasa los datos al segundo memo....
Responder Con Cita
  #12  
Antiguo 09-06-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Seguro que ya tienes los 200 caracteres?
¿Tienes los memos bien numerados?

Sigo sin entenderlo muy bien, pero prueba pasando éstas líneas después del if (justo antes del Until):

Código Delphi [-]
   mm.lines.add(FieldByName('Codigo').AsString + ('-------'));
  Next;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #13  
Antiguo 28-03-2012
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
ayudaaaaaa

saliendo del tema DE USTEDES(NECESITO AYUDA ): ESTOY HACIENDO UN PROGRAMA QUE HACE ESTO:

__ALMACENO DEL EDIT ALMEMO

__TAMBIEN LO GUARDO A LA BASE DE DATO

___Y ELIMINA

PERO LO QUE NECESITO ES Q QUIERO PASAR LA INFORMACION DEL MEMO AL EDIT NUEVAMENTE.DANDOLE CLICK CON EL RATON.

PORFAVOR LO NECESITO ME QUEDA POCO TIEMPO PARA ENTREGARLO Y HECHO DE TODO.
ESTE ES MI CORREO:enonano_1@hotmail.com
Responder Con Cita
  #14  
Antiguo 28-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola maxzama y bienvenido a Club Delphi

Por favor, lee nuestra [guía de estilo], en especial los puntos [1], [2] y [9]

Saludos y gracias por tu colaboración.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 28-03-2012 a las 22:50:20.
Responder Con Cita
  #15  
Antiguo 29-03-2012
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
bueno disculpa si me exprese mal o mi forma de mi vocabulario.mejorare en eso.
____________________________________________________

1)Necesito ayuda. mi problema es q tengo que hacer es pasar de un leguaje culaquiera a delphi(como si fuera un traductor).
este programa tengo q hacerlo en delphi.

2)y el otro programa es: de almacernar un codigo,nombre,precio a un Memo y si uno quiere editar la informacion entonces q uno le de click con el raton a una de las linias almacenada en el memo y buelva otrabes
la informacion a los edit.

Ya yo pude almacenar informacion al memo pero no pude hacer lo contrario(del memo a los Edit).

utilizando estas herramientas:
3 Edit
1 memo.

si pueden ayudarme se lo agradeceria.
(si no igualmente gracias por leer esta informacion)
Responder Con Cita
  #16  
Antiguo 29-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola maxzama.

Este código enviará la línea actual al Edit correspondiente:
Código Delphi [-]
procedure TForm1.Memo1Click(Sender: TObject);
var
  Linea: Integer;
begin
  Linea:= Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);
  case Linea of
    0: Edit1.Text:= Memo1.Lines[Linea]; // codigo
    1: Edit2.Text:= Memo1.Lines[Linea]; // nombre
    2: Edit3.Text:= Memo1.Lines[Linea]; // precio
  end;
end;
Y si queres pasar la tres líneas de una sola vez:
Código Delphi [-]
procedure TForm1.btnPasarLas3Click(Sender: TObject);
begin
  Edit1.Text:= Memo1.Lines[0]; // codigo
  Edit2.Text:= Memo1.Lines[1]; // nombre
  Edit3.Text:= Memo1.Lines[2]; // precio
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #17  
Antiguo 30-03-2012
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
Bueno me esplicado mal el codigo que me mandaste ya lo tengo.

lo que quiero es pasar lo q:

es del codigo lo pase al edit de codigo

lo q

es del nombre lo pase al edit de nombre


[al darle click al memo.]
______________________________

Gracias por responderme.
Responder Con Cita
  #18  
Antiguo 30-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por maxzama Ver Mensaje
Bueno me esplicado mal el codigo que me mandaste ya lo tengo.

lo que quiero es pasar lo q:

es del codigo lo pase al edit de codigo

lo q

es del nombre lo pase al edit de nombre


[al darle click al memo.]
______________________________

Gracias por responderme.
Hola.

Eso es lo que hace precisamente el primer código de los dos que te puse: Al hacer click sobre el Memo, obtiene la línea que está actualmente seleccionada y de acuerdo a la posición obtenida la pasa al Edit correspondiente...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #19  
Antiguo 30-03-2012
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
el codigo que me pasaste ase que al darle click a la linia 1 del memo pasa toda esa informacion completa al edit1.Y asi con los otros edit al presionar las otras lineas del memo.
__________________________________________________________________
lo que quiero es esto:

cuando almaceno el codigo(001) y el nombre(er) y el precio (2000), al memo.

estos mismo valores que introduje lo muestre en los edit de nuevo al darle click a la linia del memo.
_____________
es decir:
al darle click a la linia del memo

q el (001) regrese al edit que dice codigo

q el (er) regrese al edit que dice nombre

q el (2000)regrese al edit q dice precio

Espero tu respuesta Gracias de nuevo.
Responder Con Cita
  #20  
Antiguo 30-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
A ver... el problema es que no has explicado algo muy importante: Como están ubicados los datos en el memo.

Encolumnados, de esta forma:
Código:
codigo
nombre
precio
caso en que funciona el código de mi mensaje anterior, o tabulados de esta otra:
Código:
codigo nombre precio
para lo cuál tendrías que hacer:
Código Delphi [-]
procedure TForm1.Memo1Click(Sender: TObject);
var
  TS: TStrings;
begin
  TS:= TStringList.Create;
  try
    TS.DelimitedText:= Memo1.Lines[Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0)];
    TS.Delimiter:= ' '; // separador de datos
    Edit1.Text:= TS[0];
    Edit2.Text:= TS[1];
    Edit3.Text:= TS[2];
  finally
    TS.Free;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 04:33:06.


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