• Lunes 29 de Abril de 2024, 00:04

Autor Tema:  Editar Stringgrid  (Leído 8296 veces)

jojobax_

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Editar Stringgrid
« en: Miércoles 28 de Mayo de 2008, 03:51 »
0
Esa es mi duda amigos:
 Como al hacer clic en un botón dar la posibilidad de editar SOLO la celda seleccionada (StringGridx->Row) ?

 Otra duda sería que al hacer clic en otro botón los datos escritos en las celdas se guarden y queden asi (los guardo en un archivo binario)

 Probe con el EditMode=true pero no funciona.

 Espero sus respuestas

fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: Editar Stringgrid
« Respuesta #1 en: Miércoles 28 de Mayo de 2008, 18:57 »
0
primero , en la ayuda que trae el borland , trae una especificacion detallada de todos los controles que vienen con el  seria bueno que explores hasta artarte esa ayuda (artarte porke no esta bien organziada, para mi gusto)


creo , creo, no estoy en mi pc ahora, que tienes que usar Columns
  • [y] para referirte a una columna en particular



tipo :  StrGrid->Columns[1][1]->.........  


prueba
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA

jojobax_

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Editar Stringgrid
« Respuesta #2 en: Jueves 29 de Mayo de 2008, 17:13 »
0
Gracias por contestar fachamix, el tema es que se como editar las celdas, lo que quiero hacer es que la celda se "transforme" en un edit para que el usuario pueda escribir directamente sobre ella

Espero sus respuestas

Elforious

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Editar Stringgrid
« Respuesta #3 en: Viernes 30 de Mayo de 2008, 04:17 »
0
Creo que lo que buscas está en "Object Inspector", "Options", "goEditing = true";

y si querés que no se pueda editar una sola columna (fila) o varias, te vas al evento "OnKeyPress", y le dices que, por ejemplo,
si (StringGrid1->Col == 0) entonces
     Key = 0;

Espero haber ayudado.

fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: Editar Stringgrid
« Respuesta #4 en: Viernes 30 de Mayo de 2008, 04:43 »
0
aaaaaaaaaa fijate entonces

cuando cargas el stringgrid al formulario , fijate en la barra de propiedades (esa ventanita a tu derecha seguramente con todas las opcions del conmtrol, para poerle el nombre, etc), la opcion esta ahi, dice Options con un mas, expandi esa opcion haciendo click en el mas, y vas a ver la opcion goEditing o algo asi que esta el FALSE, cambiala a TRUE y .... vuala!
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA

Linspire

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
    • http://www.cedrela.com.mx
Re: Editar Stringgrid
« Respuesta #5 en: Viernes 30 de Mayo de 2008, 08:32 »
0
<_<  <_<  <_< mmmmm, me parece que puedo inspirarte de la siguiente forma, lo que puedes hacer es que al dar clic en el botón se ponga por ejemplo en la celda seleccionada un valor de la siguiente forma
Código: Text
  1.  
  2. StringGrid1->Cells[StringGrid1->Col][StringGrid1->Row]="Celda editable";
  3.  
  4. //despues de esto programas el evento OnSelectCell del StringGrid
  5.  
  6. void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, long Col, long Row, bool &CanSelect)
  7.  
  8. {
  9.  
  10. if(StringGrid1->Cells[Col][Row]=="Celda editable")
  11. CanSelect=true;
  12. else
  13. CanSelect=false;
  14. }
  15.  
  16.  
  17.  

obviamente la propiedad GoEditing debe estar a TRUE
Espero que te sirva y si no entendiste dime y te lo explico mejor

ah, y para guardar los datos de la celda puedes crear una matriz temporal que almacene los valores del StringGrid cuando hagas clic en el botón, obviamente la matriz debe ser de la misma dimensión que el stringgrid, y por ejemplo puedes hacer que se recorra el stringrid y se almacenen los valores en la matriz, esto es si solo quieres que el valor dure mientras se ejecuta el programa, de lo contrario puedes almacenarlo en un archivo de texto y sustituirlo las veces que desees con un nuevo archivo conteniendo nuevos valores...
[size=109]My Blog de Programación[/i][/b][/size]
´


[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]

Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.

el_shanky

  • Miembro MUY activo
  • ***
  • Mensajes: 177
    • Ver Perfil
Re: Editar Stringgrid
« Respuesta #6 en: Sábado 31 de Mayo de 2008, 01:50 »
0
Man me habia tomado el trabajo de hacerte una explicación detallada de una solucion para tu problema pero andá saber con que criterio el admin me borra los posts...

EI aclarando lo evidente: el criterio es obvio, suena a necedad o estupidez que pretendas no verlo, cualquier mensaje donde cometas la estupidez de insultar a cualquier otro usuario (especialmente si lo haces sin ninguna necesidad y sin que este participando del hilo) se borrara. Y pese a que patalees y digas lo que digas, no es censura (toma nota de como se escribe esta palabra por favor) sino moderacion. Y para terminar sino te gusta ya sabes lo que podes hacer.

En fin para no escribir todo otra vez y que me lo borren te diré la idea central junto con el código central:

Con sto habilitas que las celdas sean editables:

Código: Text
  1. StringGrid1->Options<< goEditing;
  2.  

con esto lo deshabilitas:

Código: Text
  1. StringGrid1->Options>> goEditing;
  2.  

Bastante obvio lo c...

Ahora lo que yo habia epnsado para que solo peudas editar una celda es ahcer algún tipo de variabvls globales que guarden las coordenadas de la celda selecionada y si se selecciona otra que salte el segundo código que te pasé!
despues me contas

salute
"La programación hoy en día es una carrera entre los ingenieros de software intentado construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De lejos, el Universo está ganando." - Rich Cook



http://www.maxcode.com.ar

http://www.shanky.com.ar

jojobax_

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Editar Stringgrid
« Respuesta #7 en: Sábado 31 de Mayo de 2008, 05:29 »
0
mil gracias a todos, voy a probar sus codigos y despues les cuento como resolvi mi problema.

Pense que se podía de alguna manera "transformar" la fila seleccionada en una fila editable (como excel, osea que pase a ser una especie de Edit)

Lo del goEditing=true lo habia probado pero no pasa nada, el usuario no puede modificar nada

sigo probando amigos, saludosss

el_shanky

  • Miembro MUY activo
  • ***
  • Mensajes: 177
    • Ver Perfil
Re: Editar Stringgrid
« Respuesta #8 en: Sábado 31 de Mayo de 2008, 19:48 »
0
Es que estas acostumbrado a usar el insepctor de objetos del borland, entonces claro si queres habilitar el goEditing le pones true y listo! pero la forma correcta de ahcerlo mediante código (y la que vas a necesitar vos para habilitarlo y deshabilitarlo segun conveniencia) es la que te puse antes.

Spero resuelvas lo tuyo! salute
"La programación hoy en día es una carrera entre los ingenieros de software intentado construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De lejos, el Universo está ganando." - Rich Cook



http://www.maxcode.com.ar

http://www.shanky.com.ar

jojobax_

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Editar Stringgrid
« Respuesta #9 en: Sábado 31 de Mayo de 2008, 22:48 »
0
si, obvio que hay que hacerlo mediante codigo, además lo que quiero es que al seleccionar una fila y luego presionar un boton, esta sola se pueda editar. Tu idea Shanky la tenia pasa que no me sente mucho ultimamente a probar.

gracias a todos nuevamente