Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-12-2017
jlalonso1950 jlalonso1950 is offline
Miembro
NULL
 
Registrado: dic 2017
Posts: 12
Poder: 0
jlalonso1950 Va por buen camino
Red face Uso de StringGrid

Soy nuevo en estos abatares, y estoy tratando de cargar un stringgrid en base a informaciñon existente en otros, y tengo problemas al usar, mejor dicho, no se bien como usar assign() necesito ayuda al respecto
Responder Con Cita
  #2  
Antiguo 31-12-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 jlalonso1950, bienvenido a los foros de Club Delphi y como es costumbre con los que comienzan, te invitamos a leer nuestra guía de estilo.

Es necesario que des mas información acerca de tu problema, ayudaría mucho que describieras la situación donde deseas usar el método Assign (que intentas lograr con ese método).
Y si además agregas algún código de ejemplo mucho mejor, cuanta mas información nos brindes mas podremos ayudarte.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 31-12-2017
jlalonso1950 jlalonso1950 is offline
Miembro
NULL
 
Registrado: dic 2017
Posts: 12
Poder: 0
jlalonso1950 Va por buen camino
Stringgrid

Buenas Tardes, el problema que tengo es que estoy preparando una clase donde vamos a aplicar el método simplex, un metodo de Invetigación de Operaciones, se entra por un form si se va a Maximizar o Minimizar, el número de variables y restricciones, coeficientes de etos últimos datos que se entran por dos StringGrid y que despues se agrupan en un tercero, en codigo:

Código PHP:
StringGrid1->Cells[0][1]="COEF.";
StringGrid1->ColCount=StrToInt(Edit2->Text)+1;
StringGrid2->ColCount=StrToInt(Edit2->Text)+3;
StringGrid2->RowCount=StrToInt(Edit3->Text)+1;
for(
i=1;i<=StrToInt(Edit2->Text);i++){
    
StringGrid1->Cells[i][0]="  X "+IntToStr(i);
    
StringGrid2->Cells[i][0]="  X "+IntToStr(i);
}
StringGrid2->Cells[StrToInt(Edit2->Text)+1][0]="Signo";
StringGrid2->Cells[StrToInt(Edit2->Text)+2][0]="PD";
for(
j=1;j<=StrToInt(Edit3->Text);j++){
   
StringGrid2->Cells[0][j]=" C "+IntToStr(j);
   if(
RadioButton1->Checked){ //simplex puro
     
StringGrid2->Cells[StrToInt(Edit2->Text)+1][j]="<=";
     
Button2->Enabled=true;
   }
   else if(
RadioButton2->Checked){ //existen varias complicacioes+mimizado
     
Button3->Enabled=true;
   }
   else{
     
Button4->Enabled=true// varias complicaciones maximizado
   
}
}

ahora se pasa por un boton a un groupboxpara no salir del forma inicialdonde:
 
int i,j,k,m;
StringGrid3->ColCount=StrToInt(Edit2->Text)+StrToInt(Edit3->Text)+2;
StringGrid3->RowCount=StrToInt(Edit3->Text)+2;
StringGrid3->Cells[0][0]="  VB";
StringGrid3->Cells[0][1]="  Z";
for(
i=1;i<=StrToInt(Edit3->Text);i++){
    
StringGrid3->Cells[0][i+1]="  C"+IntToStr(i);
}
for (
j=1;j<=StrToInt(Edit2->Text);j++){
    
StringGrid3->Cells[j][0]="  X"+IntToStr(j);
}
for(
m=1;m<=StrToInt(Edit3->Text);m++){
   
StringGrid3->Cells[StrToInt(Edit2->Text)+m][0]=" C"+IntToStr(m);
}
StringGrid3->Cells[StrToInt(Edit2->Text)+StrToInt(Edit3->Text)+1][0]="  PD";
[
b]//cargar valores de los stringrid 1 y 2 en el 3 y ejecutar ' mi problema[/b]

GroupBox1->Visible=true

Última edición por Casimiro Notevi fecha: 31-12-2017 a las 21:38:25.
Responder Con Cita
  #4  
Antiguo 31-12-2017
jlalonso1950 jlalonso1950 is offline
Miembro
NULL
 
Registrado: dic 2017
Posts: 12
Poder: 0
jlalonso1950 Va por buen camino
Stringgrid

ecfisa

Gracias por su atención hoy fin de año, ya revise todo lo que el foro ha sacado sobre StringGrid, pero uno de los casos que más me ayuda, se habla del assign() pero no pasan codigo de ejemplo, por de sgracia, no tengo ayuda el mi builder y solo cuento con la ayuda que me puedan dar
Yo cargo información en dos StringGrid, la cual debo agrupar en un tercero
De cierta forma estoy tratando de imitar en algo a un programa conocido como WinQSB, pero usando mis propios conceptos del tema.
No se si con esta aclaración y el codigo anterior que subi me puedan ayudar....
Responder Con Cita
  #5  
Antiguo 31-12-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Responder Con Cita
  #6  
Antiguo 31-12-2017
jlalonso1950 jlalonso1950 is offline
Miembro
NULL
 
Registrado: dic 2017
Posts: 12
Poder: 0
jlalonso1950 Va por buen camino
Agradecido Casimiro pero no entiendo lo que quieres explicarme. Mi problema es sencililo, yo entro por teclado una información en dos stringgrid y después, necesito agruparla toda en un tercero, con variaciones aritmeticas que no tengo problemas con ellas, recuerdo que existe assign() pero no recuerdo el como utilizarla,he tratado de hacerlo por un for y tampoco me da bateo, como decimos aca en Cuba
Responder Con Cita
  #7  
Antiguo 31-12-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, solamente te informaba de que uses las etiquetas de código cuando pongas código fuente aquí, para que se pueda leer mejor.

En cuanto a tu problema con los stringgrid, exactamente qué problema tienes, ¿algún error? ¿no traspasa los datos?
Responder Con Cita
  #8  
Antiguo 31-12-2017
jlalonso1950 jlalonso1950 is offline
Miembro
NULL
 
Registrado: dic 2017
Posts: 12
Poder: 0
jlalonso1950 Va por buen camino
StringGrid

Yo pdoy entrada a dos StringGrid por teclado a la información a utilizar en un cálculo determinado,cuando voy a pasar esa información a la rejilla donde lo voy a trabajar y pongo, por ejemplo StringGrid3->assign(StringGrid1), se detiene el proceso en esa l'inea de codigo

¿Cómo pasar información desde una rejilla a otra?
Responder Con Cita
  #9  
Antiguo 01-01-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jlalonso1950 Ver Mensaje
... pongo, por ejemplo StringGrid3->assign(StringGrid1), se detiene el proceso en esa l'inea de codigo
¿Qué significa que "se detiene el proceso en esa línea de código"?
¿Algún mensaje de error?
Responder Con Cita
  #10  
Antiguo 01-01-2018
jlalonso1950 jlalonso1950 is offline
Miembro
NULL
 
Registrado: dic 2017
Posts: 12
Poder: 0
jlalonso1950 Va por buen camino
stringgrid

la respuesta del sistema es:

Project Project1.exe raised exception class EConvert with menssage "Can not assign a StringGrid to StringGrid"
Responder Con Cita
  #11  
Antiguo 01-01-2018
jlalonso1950 jlalonso1950 is offline
Miembro
NULL
 
Registrado: dic 2017
Posts: 12
Poder: 0
jlalonso1950 Va por buen camino
Unhappy StringGrid

Trate de innovar y pegue las siguientes líneas de código:

Código:
 
for(i=1;i<=StrToInt(Edit2->Text);i++){
  StringGrid3->Assign(StringGrid1->Cells[i][1]);
}
al compilar da el siguiente error

[C++ Error] Unit1.cpp(98): E2034 Cannot convert 'AnsiString' to 'TPersistent *'
[C++ Error] Unit1.cpp(98): E2342 Type mismatch in parameter 'Source' (wanted 'TPersistent *', got 'AnsiString')
Responder Con Cita
  #12  
Antiguo 01-01-2018
jlalonso1950 jlalonso1950 is offline
Miembro
NULL
 
Registrado: dic 2017
Posts: 12
Poder: 0
jlalonso1950 Va por buen camino
StringGrid

Buenos dias y Felicidades.
He buscado en el libro de Chapman y sigo barado, más bien encallado en un banco de dudas....
Responder Con Cita
  #13  
Antiguo 01-01-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En delphi es más o menos así:
Código Delphi [-]
procedure ...
var
  NewStringGrid: TStringGrid;
begin
  NewStringGrid := TStringGrid.Create(Self);
  try
    NewStringGrid.Assign(OldStringGrid);
    ...
  finally
    NewStringGrid.Free;
  end;
end;
Responder Con Cita
  #14  
Antiguo 01-01-2018
jlalonso1950 jlalonso1950 is offline
Miembro
NULL
 
Registrado: dic 2017
Posts: 12
Poder: 0
jlalonso1950 Va por buen camino
StringGrid

Implementando tiu sugerencia Casimiro tengo:

Código:
 
for(i=1;i<=StrToInt(Edit2->Text);i++){
   StringGrid3->Cells[i][0]=Assign(StringGrid1->Cells[i][0]);
}
y el error que me da es:

Cita:
[C++ Error] Unit1.cpp(98): E2034 Cannot convert 'AnsiString' to 'TPersistent *'
[C++ Error] Unit1.cpp(98): E2342 Type mismatch in parameter 'Source' (wanted 'TPersistent *', got 'AnsiString')
[C++ Error] Unit1.cpp(98): E2109 Not an allowed type
Responder Con Cita
  #15  
Antiguo 01-01-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que no tiene nada que ver tu código con el ejemplo que he puesto.
En mi ejemplo estás asignando un stringgrid a otro stringgrid.
En tu código estás intentando asignar celdas, mediante un bucle.
En tu caso no hay que usar assign.

Será más o menos así:
Código:
for (i=1;i<=columnamayor;i++)
  stringgrid3->cells[i][0]=stringgrid1->cells[i][0];
Responder Con Cita
  #16  
Antiguo 01-01-2018
jlalonso1950 jlalonso1950 is offline
Miembro
NULL
 
Registrado: dic 2017
Posts: 12
Poder: 0
jlalonso1950 Va por buen camino
StringGrid

Código:
 
for (i=1;i <=StrToInt(Edit2->Text);i++){
  StringGrid3->Cells[i][0]=StringGrid1->Cells[i][0];
}
No da error, pero no carga el 3 con la información del 1

Le voy a pasar un correo desde mi correo personal, con las pantallas, que hacen y a ver si asi me puede ayudar mejor
Responder Con Cita
  #17  
Antiguo 01-01-2018
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.

Suponiendo que las dimensiones de los StringGrids son iguales, si deseas copiar el contenido de uno a otro:
Código PHP:
void copySG(TStringGrid *sourceTStringGrid *target)
{
  for(
int r source->FixedRowssource->RowCountr++)
    
target->Rows[r]->AddStrings(source->Rows[r]);
}

// Ejemplo de uso:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  
copySG(StringGrid1StringGrid3);

Si deseas sumar dos TStringGrid y dejar el resultado en un tercero:
Código PHP:
void sumarSG(TStringGrid *s1TStringGrid *s2TStringGrid *s3)
{
  
// (se supone que s1 y s2 contienen datos numéricos válidos)
  
for(int r s1->FixedRowss1->RowCountr++)
    for(
int c s1->FixedColss1->ColCountc++)
      
s3->Cells[c][r] = s1->Cells[c][r].ToDouble() + s2->Cells[c][r].ToDouble();
}

// Ejemplo de uso:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  
sumarSG(StringGrid1StringGrid2StringGrid3);

Son ejemplos orientativos, todo depende de lo que desees hacer y como tengas distribuida la información en los StringGrids...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #18  
Antiguo 01-01-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jlalonso1950 Ver Mensaje
Le voy a pasar un correo desde mi correo personal, con las pantallas, que hacen y a ver si asi me puede ayudar mejor
Nuestra guía de estilo, punto 14.
Responder Con Cita
  #19  
Antiguo 02-01-2018
jlalonso1950 jlalonso1950 is offline
Miembro
NULL
 
Registrado: dic 2017
Posts: 12
Poder: 0
jlalonso1950 Va por buen camino
StringGrid

disculpas por mis metidas de pie..... pero con lo último que me dijo Casimiro, me puse a pensar y el StringGrid, no es más que un arreglo bidimensional, por lo que lleve a cabo el uso de esto, por lo que ocasionalmente llegue a lo que me recomendo después Ecfisa, Gracias, me sacaron de un buen agujero negro, ya puedo presentar mi clase con un inicio bien fundamentado
Responder Con Cita
  #20  
Antiguo 06-01-2018
jlalonso1950 jlalonso1950 is offline
Miembro
NULL
 
Registrado: dic 2017
Posts: 12
Poder: 0
jlalonso1950 Va por buen camino
StringGrid

Hoy me trae un nuevo problema, al cual no he encontrado respuesta navegando por la página, y es como puedo comparar dos celdas de un mismo StringGrid.He tratado de usar ->Value= pero no me da resultados algunos
HELP
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
Stringgrid Pollo2004 Varios 7 31-10-2008 02:21:13
stringgrid en celda de otro stringgrid?? noodle_ OOP 3 17-06-2008 14:36:01
De StringGrid A StringGrid subzero Varios 7 04-10-2007 19:55:12
StringGrid pollo_c Gráficos 2 08-11-2006 04:30:24
StringGrid DCErick OOP 1 28-11-2004 05:34:05


La franja horaria es GMT +2. Ahora son las 01:21:25.


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