• Domingo 22 de Diciembre de 2024, 13:44

Autor Tema:  Llenar Un Arreglo  (Leído 4150 veces)

Perrero

  • Miembro MUY activo
  • ***
  • Mensajes: 209
    • Ver Perfil
Llenar Un Arreglo
« en: Viernes 21 de Abril de 2006, 23:44 »
0
Holas, weno he aqui mi duda. Tengo en un formulario 81 TMemos y me gustaria meter por teclado los datos en esos 81 TMemos, ahora cuando le de clic a un boton me gustaria que recogiera todos los datos introducidos en los TMemos. Mi pregunta es si hay una manera sencilla de hacerlo, quiero que esos datos vayan a un arreglo, pero solo conozco la manera mas inocente y tediosa de hacerlo, como esta:

Código: Text
  1.  Arreglo[i,j]:= Memo1.Text;
  2.  Arreglo[1,1]:= Memo1.Text;
  3.  Arreglo[1,2]:= Memo2.Text;
  4.  .
  5.  .
  6.  .
  7.  Arreglo[9,9]:= Memo81.Text;
  8.  

Esta es la manera mas tediosa de hacerla, hay una manera de llenar el arreglo de una manera mas sencilla con los datos del TMemo?.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Llenar Un Arreglo
« Respuesta #1 en: Sábado 22 de Abril de 2006, 00:21 »
0
¿Probaste usar TStringList?  ;)
Citar
La propiedad "Cells"  del TStringList es una matriz.
TStringGrid.Cells[X,Y]: String;

Me parece un poco tedioso usar 81 TMemos cuando tenes el TStringGrid, y se ese no te resulta, seguramente podes adaptar al TDrawGrid que es más genérico.

Avisame, si necesitas si o si los Tmemo me fijo (es que ahora no tengo delphi a mano para revistar y no me acuerdo bien como es, es que hay varias formas....)

Perrero

  • Miembro MUY activo
  • ***
  • Mensajes: 209
    • Ver Perfil
Re: Llenar Un Arreglo
« Respuesta #2 en: Sábado 22 de Abril de 2006, 05:04 »
0
Mmmmmmmmmmmm en realidad no paso por mi cabeza usar esos componentes ya que no los conozco, pero estuve revisando el TStringGrid y no tiene una propiedad que tiene el TMemo que es la de MaxLenght, otra cosa es que en el OnKeyPress pongo el codigo para escribir solo numero y no sale, otra cosa es que no me gusta el cuadrito azul cuando seleccionas, mmmmmm bueno, lo podria usar si por lo menos supiera saber como meter solo numeros y solo una cierta cantidad de caracteres, voy a investigar a ver si se puede.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Llenar Un Arreglo
« Respuesta #3 en: Sábado 22 de Abril de 2006, 15:35 »
0
¿Que cantidad de caracteres?

Perrero

  • Miembro MUY activo
  • ***
  • Mensajes: 209
    • Ver Perfil
Re: Llenar Un Arreglo
« Respuesta #4 en: Sábado 22 de Abril de 2006, 17:25 »
0
bueno solo quiero un caracter por celda y ademas me di cuenta que no puedo introducir datos por teclado en cada celda o esuqe acaso hay una propiedad q activa eso, pero weno con las que voy probando no pasa nada.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Llenar Un Arreglo
« Respuesta #5 en: Sábado 22 de Abril de 2006, 17:57 »
0
Cita de: "Perrero"
bueno solo quiero un caracter por celda y ademas me di cuenta que no puedo introducir datos por teclado en cada celda o esuqe acaso hay una propiedad q activa eso, pero weno con las que voy probando no pasa nada.
en la propiedad Options del TStringGrid (fijate en la paleta de propiedades) pone la opcion "goEditing" en True;

Luego usa el evento SetEditTExt así:
Código: Text
  1.  
  2. procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
  3.   ARow: Integer; const Value: String);
  4. var
  5.    myChar: Char;
  6. begin
  7.    StringGrid1.Cells[ACol, ARow] := '';
  8.    if Length(Value) > 0 then myChar := Value[1];
  9.    if (myChar in ['0'..'9']) then
  10.     StringGrid1.Cells[ACol, ARow] := myChar;
  11. end;
  12.  
  13.  


Al final te adjunto un proyecto de Delphi 7, que al parecer hace lo que vos quieres.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Perrero

  • Miembro MUY activo
  • ***
  • Mensajes: 209
    • Ver Perfil
Re: Llenar Un Arreglo
« Respuesta #6 en: Sábado 22 de Abril de 2006, 18:39 »
0
Muchas gracias, me sirvio de mucho, pero tuve que borrar la linea

Código: Text
  1. StringGrid1.Cells[ACol, ARow] := '';
  2.  

ya que sino no me dejaba escribir naa. Gracias...

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Llenar Un Arreglo
« Respuesta #7 en: Sábado 22 de Abril de 2006, 21:51 »
0
Cita de: "Perrero"
Muchas gracias, me sirvio de mucho, pero tuve que borrar la linea

Código: Text
  1. StringGrid1.Cells[ACol, ARow] := '';
  2.  

ya que sino no me dejaba escribir naa. Gracias...
que raro. lo probé y me funcionaba.  ;)

Igualmente tambien pensé en sacar esa linea y lo hice y seguia funcionando pero la deje por si acaso.