Programación General > C++ Builder
Editar Stringgrid
Linspire:
<_< <_< <_< 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 --- StringGrid1->Cells[StringGrid1->Col][StringGrid1->Row]="Celda editable"; //despues de esto programas el evento OnSelectCell del StringGrid void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, long Col, long Row, bool &CanSelect) { if(StringGrid1->Cells[Col][Row]=="Celda editable")CanSelect=true;elseCanSelect=false;}
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...
el_shanky:
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 ---StringGrid1->Options<< goEditing;
con esto lo deshabilitas:
--- Código: Text ---StringGrid1->Options>> goEditing;
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
jojobax_:
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:
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
jojobax_:
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
Navegación
[*] Página Anterior
Ir a la versión completa