Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-05-2017
Franceszco Franceszco is offline
Registrado
NULL
 
Registrado: may 2017
Posts: 6
Poder: 0
Franceszco Va por buen camino
Ayuda StringGrid

Hola buenas noches, Alguien puede ayudarme con lo siguiente:

Como colocar los números iniciando como en la imagen...

Como hacer la suma de 2 StringGrid, o seria desde el edit?

De ante mano gracias!
Imágenes Adjuntas
Tipo de Archivo: png Suma.png (28,1 KB, 28 visitas)
Responder Con Cita
  #2  
Antiguo 08-05-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No se entiende qué problema tienes ni lo que quieres conseguir.
Responder Con Cita
  #3  
Antiguo 08-05-2017
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Has la suma usando los datos de los Edit con un cast o StrToInt(Editx.Text) . Luego presenta esos valores en el StringGrid descomponiendo los datos en unidades, decenas, centenas, etc. Dividiendo por 10, 100, 1000, etc. convirtiéndolos en String IntToStr(valor).
Responder Con Cita
  #4  
Antiguo 08-05-2017
Franceszco Franceszco is offline
Registrado
NULL
 
Registrado: may 2017
Posts: 6
Poder: 0
Franceszco Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No se entiende qué problema tienes ni lo que quieres conseguir.


Mira hasta aqui llevo mi ejercicio y lo unico que me falta es que el string grid este del lado derecho asi como en la imagen que puse en el post

procedure TForm1.Button1Click(Sender: TObject);
var x,y:integer;
suma:integer;

begin
suma:=0;
suma:=strtoint(LabeledEdit1.Text)+strtoint(LabeledEdit2.Text);
LabeledEdit3.Text:=inttostr(suma);
StringGrid1.Colcount:=Length(LabeledEdit1.Text);
StringGrid2.Colcount:=Length(LabeledEdit2.Text);
StringGrid3.Colcount:=Length(LabeledEdit3.Text);

begin
with StringGrid1 do
for x:=0 to Colcount -1 do
for y:=0 to RowCount -1 do
begin
Cells[x,y]:=LabeledEdit1.Text[x+1];
end;
end;
begin
with StringGrid2 do
for x:=0 to Colcount -1 do
for y:=0 to RowCount -1 do
begin
Cells[x,y]:=LabeledEdit2.Text[x+1];
end;
end;
begin
with StringGrid3 do
for x:=0 to Colcount -1 do
for y:=0 to RowCount -1 do
begin
Cells[x,y]:=LabeledEdit3.Text[x+1];
end;
end;


end;
Responder Con Cita
  #5  
Antiguo 08-05-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Hola Franceszco, bienvenido a Club Delphi. Recuerda leer la guia de estilo y utiliza etiquetas cuando publiques codigo:

Responder Con Cita
  #6  
Antiguo 09-05-2017
Franceszco Franceszco is offline
Registrado
NULL
 
Registrado: may 2017
Posts: 6
Poder: 0
Franceszco Va por buen camino
StringGird

Buenas! la vez pasada no me explique bien

Como puedo hacer esto como se muestra en la imagen

el numero ingresado en el stringgrid corra de derecha a izquierda
Imágenes Adjuntas
Tipo de Archivo: png suma.png (20,8 KB, 5 visitas)
Responder Con Cita
  #7  
Antiguo 09-05-2017
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.

Por favor si no te responden, no crees un nuevo hilo con la misma consulta (punto 13 de la Guía de estilo), continua preguntando en el hilo inicial y este pasará a la cabecera de la lista. Como tienes pocos mensajes, combiné ambos en el hilo inicial.

¿ Por que tres StringGrids? ¿ No puede ser uno sólo con tres filas ?, lo que te sugiero es mas o menos así:
  1. Definir tres filas en el StringGrid
  2. Verificar que lo ingresado en LabeledEdit1 y LabeledEdit2 son números enteros válidos. Si no lo son abortar, de otro modo sumarlos y convertir el valor suma a cadena.
  3. Darle al StringGrid tantas columnas como dígitos tiene la suma (obviamente los sumandos tendrán igual o menos dígitos que la suma).
  4. Pasar los dígitos (caracteres) para cada número y la suma.
1.
Código Delphi [-]
  StringGrid1.RowCount := 3
2.
Código Delphi [-]
  if not TryStrToInt( LabeledEdit1.Text, a) then
    raise Exception.Create('El primer número es inválido');

  if not TryStrToInt( LabeledEdit2.Text, b) ...
  ...

  LabeledEdit3.Text := IntToStr( a + b );
3.
Código Delphi [-]
  StringGrid1.Colcount := Length( LabeledEdit3.Text );
4.
Código Delphi [-]
  for i := 1 to Length(LabeledEdit1.Text) do
    StringGrid1.Cells[StringGrid1.ColCount-i, 0] := LabeledEdit1.Text[ Length( LabeledEdit1.Text )-i+1 ];

  for i := 1 to Length(LabeledEdit2.Text) do
    StringGrid1.Cells[StringGrid1.ColCount-i, 1] := ...
  ...

Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 09-05-2017 a las 03:48:58.
Responder Con Cita
  #8  
Antiguo 09-05-2017
Franceszco Franceszco is offline
Registrado
NULL
 
Registrado: may 2017
Posts: 6
Poder: 0
Franceszco Va por buen camino
Gracias amigo,

Ahora otra duda, como sumo celda por celda de un string grid a otro
Responder Con Cita
  #9  
Antiguo 09-05-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Franceszco Ver Mensaje
Gracias amigo,
Creo que has olvidado la recomendación de ecfisa, leer nuestra guía de estilo, gracias.
Responder Con Cita
  #10  
Antiguo 09-05-2017
Franceszco Franceszco is offline
Registrado
NULL
 
Registrado: may 2017
Posts: 6
Poder: 0
Franceszco Va por buen camino
Código Delphi [-]
  if not TryStrToInt( LabeledEdit1.Text, a) then
    raise Exception.Create('El primer número es inválido');

  if not TryStrToInt( LabeledEdit2.Text, b) ...
  ...

  LabeledEdit3.Text := IntToStr( a + b );

En esta parte de la suma, me piden que se realice de StringGrid1 a StringGrid2

Estoy intentando algo asi, pero no me va...


Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var x,a,y,i:integer;
begin

   begin
   for i :=1 to Length(LabeledEdit1.Text) do
    StringGrid1.Cells[StringGrid1.ColCount -i, 0] := LabeledEdit1.Text[ Length( LabeledEdit1.Text )-i+1 ];
   end;
   begin
   for i :=1 to Length(LabeledEdit2.Text) do
    StringGrid2.Cells[StringGrid2.ColCount -i, 0] := LabeledEdit2.Text[ Length( LabeledEdit2.Text )-i+1 ];

   end;
    begin
   for x:=Length(LabeledEdit1.Text) to Length(LabeledEdit2.Text) do
    begin
   LabeledEdit3.text:= IntToStr(StrToInt(stringgrid1.cells[StringGrid1.ColCount -i, 0]) + StrToInt(stringgrid2.cells[StringGrid2.ColCount-i, 0]));
   inc(i);
    end;
    end;
    begin

       for i :=1 to Length(LabeledEdit3.Text) do
        StringGrid3.Cells[StringGrid3.ColCount -i, 0] := LabeledEdit3.Text[ Length( LabeledEdit3.Text )-i+1 ];
end;





end;

  end.
Responder Con Cita
  #11  
Antiguo 09-05-2017
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.

En cuanto a realizar la suma y alinearla a la derecha me refería a algo así:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  a, b, i, j    : Integer;
  gr            : TStringGrid;
  le1, le2, le3 : TLabeledEdit;
begin
  gr  := StringGrid1;
  le1 := LabeledEdit1;
  le2 := LabeledEdit2;
  le3 := LabeledEdit3;

  if not TryStrToInt( le1.Text, a ) then
    raise Exception.Create('El primer número es inválido');
  if not TryStrToInt( le2.Text, b ) then
    raise Exception.Create('El segundo número es inválido');

  le3.Text := IntToStr( a + b );
  gr.Colcount := Length( le3.Text );
  for i := 0 to gr.ColCount - 1 do gr.ColWidths[i] := 30;

  // Sumando 1
  for i := 1 to Length(le1.Text) do
    gr.Cells[gr.ColCount-i, 0] := le1.Text[ Length( le1.Text )-i+1 ]; // Row 0

  // Sumando 2
  for i := 1 to Length(LabeledEdit2.Text) do
    gr.Cells[gr.ColCount-i, 1] := le2.Text[ Length( le2.Text )-i+1 ]; // Row 1

  // Suma
  for i := 1 to Length(le3.Text) do
   gr.Cells[gr.ColCount-i, 2] := le3.Text[ Length( le3.Text )-i+1 ];  // Row 2
end;

Resultado:


El proceder es similar usando tres StringGrids (uno para cada sumando y otro para el resultado), sólo debes definir cada StringGrid con una fila y las columnas correspondientes a los respectivos dígitos .

Sin embargo, no entiendo que papel debería jugar el "StringGrid2" que mencionas en tu último mensaje.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #12  
Antiguo 10-05-2017
Franceszco Franceszco is offline
Registrado
NULL
 
Registrado: may 2017
Posts: 6
Poder: 0
Franceszco Va por buen camino
Cita:
El proceder es similar usando tres StringGrids (uno para cada sumando y otro para el resultado), sólo debes definir cada StringGrid con una fila y las columnas correspondientes a los respectivos dígitos .

Sin embargo, no entiendo que papel debería jugar el "StringGrid2" que mencionas en tu último mensaje.
Hola, Buenas noches, la funcion de usar 3 stringgrid en especifico no lo se, asi no los solicitaron, y la suma de StringGrid1 y StringGrid2 seria para que en la suma puedas colocar un numero ilimitado, porque haciendo la suma directa de los edit.text solo hay un numero limitado para sumar, en cambio haciendo suma de celda por celda seria literalmente ilimitado el numero
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
Ayuda con un StringGrid maky Lazarus, FreePascal, Kylix, etc. 6 27-08-2008 18:45:59
ayuda stringgrid Rasecma Varios 1 18-10-2007 10:12:56
Ayuda en el Uso del StringGrid doncowboy OOP 2 24-04-2007 19:26:33
Ayuda con Stringgrid estebanx OOP 4 01-06-2006 20:20:24
Ayuda en StringGrid Fita Varios 3 08-11-2003 13:03:18


La franja horaria es GMT +2. Ahora son las 04:24:28.


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