Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   De StringGrid A StringGrid (https://www.clubdelphi.com/foros/showthread.php?t=36879)

subzero 27-10-2006 01:03:08

De StringGrid A StringGrid
 
Señores(as) del foro, creo que a alguno de nosotros nos a interesado asignar en algún momento los datos que se muestran en un StringGrid a Otro, is alguien ha solucionado esta duda, le agedeceria me indicara como hacerlo o por lo menos una idea, ya intente así:

StringGrid2.Assing(StrinGrid1); me genera error. Acepto cualquier idea, gracias

dec 27-10-2006 01:38:45

Hola,

No dices qué error te "genera"... y así es complicado ayudarte en ese sentido, empero, yo supongo que siempre podrías recorrer un "StringGrid" en algún bucle y al mismo tiempo ir añadiendo los datos en el otro "StringGrid"... ¿no? La verdad sea dicha, no es un control al que esté acostumbrado, pero, digo yo que podría hacerse como digo... tal vez exista alguna manera mejor y más elegante, claro está.

Neftali [Germán.Estévez] 27-10-2006 10:00:19

Asignar los datos, puedes hacerlo con la propiedad Text; Así sólo debes hacer un bucle que recorra las líneas.

Código Delphi [-]
var
  i:Integer;
begin

  // Asignar filas y columnas
  SG2.RowCount := StringGrid1.RowCount;
  SG2.ColCount := StringGrid1.ColCount;
  // Otras propiedades
  SG2.DefaultRowHeight := StringGrid1.DefaultRowHeight;

  // Ancho de columnas
  for i := 0 to (StringGrid1.ColCount - 1)  do begin
    SG2.ColWidths[i] := StringGrid1.ColWidths[i];
  end;

  // Asignar el contenido
  for i := 0 to (StringGrid1.RowCount - 1) do begin
    SG2.Rows[i].Text := StringGrid1.Rows[i].Text;
  end;

subzero 27-10-2006 16:02:39

Trataré de explicarmen mejor, la idea es por decirlo así clonar el componente con características iguales algo así como un espejo con la información que se encuentra en cada una de las celdas para evitar recorrerlo con un bucle, no se si esto pueda hacerce, por ello de mi pregunta.... ya lo estoy haciendo con bucles y asignando el número de columnas y filas que maneja la grilla que contiene los valores....


Ah! Gracias por interezarse en mi duda.

roman 27-10-2006 16:14:21

Date cuenta que si hubieras dicho esto desde un principio, no habría habido necesidad de que dec y Neftali escribieran algo que tú ya sabes.

Assign es un método virtual intoducido en TPersistent. El método original no hace nada y sólo las componentes descendientes que así lo decidan, implementarán el método para hacer la asignación. En otras palabras, la VCL introduce Assign sólo como una sintaxis para asignar pero la asignación en sí debe implementarse en cada caso. Tal implementación, en el caso que nos ocupa, muy posiblemente pasará por un bucle.

// Saludos

subzero 27-10-2006 21:41:36

Listo, Roman, muchas gracias, tendre en cuenta para la proxima tratar de ser un poco más descriptivo, nuevamente a "dec y Neftali" muchas gracias. :o

EMANEMS 04-10-2007 18:24:30

Cita:

Empezado por roman (Mensaje 164404)
Date cuenta que si hubieras dicho esto desde un principio, no habría habido necesidad de que dec y Neftali escribieran algo que tú ya sabes.

Assign es un método virtual intoducido en TPersistent. El método original no hace nada y sólo las componentes descendientes que así lo decidan, implementarán el método para hacer la asignación. En otras palabras, la VCL introduce Assign sólo como una sintaxis para asignar pero la asignación en sí debe implementarse en cada caso. Tal implementación, en el caso que nos ocupa, muy posiblemente pasará por un bucle.

// Saludos

HOLA Q TAL QUISIERA VER SI ME PUDIERAN AYUDAR ESTOY EMPESANDO A PROGRAMAR EN DELPHI Y TENGO
UN PROBLEMA CON LOS STRINGGRID

EN UN FOR COLOQUE TRES STRINGGRID
STRINGGRID1
STRINGGRID2
STRINGGRID3

LO QUE QUIERO ES QUE EN EL STRINGGRID3 ME COLOQUE LA SUMA DE LOS NUMERO Q COLOQUE EN EL
STRINGGRID1 Y STRNGGRID2
SEGUN LA POSICION EN LOS CAMPOS LO QUE ESTOY HACIENEDO ES COLOCAR EN UN BUTTON
EL SIG CODIGO

PROCEDURE TFORM1.TOOLBUTTON1CLICK(SENDER: TOBJECT);
BEGIN
STRINGGRID3.CELL[0,0]:=STRINGGRID1.CELL[0,0]+STRINGGRID2.CELL[0,0];
END;

Y ME MARCA EL SIG ERROR INCOMPATIBLE TYPE:'INTEGER' AND 'STRING'
ME PODRIAN AYUDAR A SABER COMO SUMARLOS TOMANDO EN CUENTA LOS PUNTOS DECIMALES Y NUMEROS LARGOS
SELOS AGRADECERE MUCHO GRACIAS

Caral 04-10-2007 18:55:12

Hola
Seguimos con el mismo problema ya van tres hilos con la misma pregunta, aqui se te contesto, por favor lee la guia de estilo.
Saludos


La franja horaria es GMT +2. Ahora son las 18:45:45.

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