Ver Mensaje Individual
  #1  
Antiguo 23-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Reputación: 17
jhonalone Va por buen camino
Bug de Embarcadero?

Hola a todos.

Lo que voy a deciros, no es desconocimiento mio. Creo.
Para quien no lo sepa, estoy intentando hacer un juego de sudoku para Android.

Utilizo un TStringGrid. Hasta Delphi7, que era la última versión de Delphi que usé, (Llevo años sin actualizarme, entre otras cosas porque no lo usaba, y también por los precios), un TStringGrid era muy fácil de utilizar, pues para conocer la celda en la que estabas, bastaba con usar las coordenadas lógicas de la rejilla, es decir: StringGrid1.Col y StringGrid1.Row. Y punto.

Ahora en DX (RadStudio 10) la cosa ha cambiado mucho (¡hasta los nombre de muchas variables! ¿...?). El número de filas las puedes definir con RowCount, pero yo (que no soy un lumbreras) no he conseguido encontrar cómo localizarlas, he intentado con StribgGrid1.Index, pero siempre me da CERO. Las columnas, hay que definirlas una a una y he conseguido localizarlas con StringGrid1.ColumnIndex. Lo han complicado un poco.

Para mí esto es un problema serio a la hora de trabajar con el TStringGrid. (NO SE REFERENCIAR LAS FILAS)

PERO ESTO NO ES LO PEOR. Cuando intento SELECCIONAR UNA CELDA en el dispositivo Android, ocurre algo curioso: si la última celda seleccionada no está en última fila de abajo (LA ULTIMA), si intento seleccionar una casilla de la última fila de abajo (LA ULTIMA), se selecciona la casilla correspondiente a la misma columna que deseo seleccionar pero la fila se queda la misma. Quizá con un ejemplo se entienda mejor:

Pongamos que tenemos una rejilla de 9 filas por 9 columnas (es mi caso).
La última celda seleccionada es la fila 7 columna 7.
Si pulso para seleccionar la celda correspondiente a la fila 9 (es la última) y la columna 0.
Me encuentro con que queda seleccionada la celda correspondiente a la fila 7 (no cambia) y la columna 0 (si cambia).

Pero HAY MAS.

Como tengo puesto un identificador de la columna (de la fila todavía NO SE CUAL ES) con StringGrid.ColumnIndex en una TLabel puedo observar que, SI SELECCIONO otra columna de la última fila, no ha cambiado el INDICE DE LA COLUMNA.

Si selecciono cualquier otra celda que no esté en la ÚLTIMA fila de abajo, el índice de la columna, se actualiza correctamente.

Código Delphi [-]
procedure TPrinci.grdTableroSelChanged(Sender: TObject);
begin
  Label4.Text := 'Columna = '+ grdTablero.ColumnIndex.ToString() + '  /  '+
                 'Fila = '+ grdTablero.Index.ToString();
end;

Perdón por el rollazo, pero no sé explicarlo mejor.

Si alguien puede arrojar algo de luz sobre el asunto, se lo agradezco sinceramente.

Saludos a todos.
Responder Con Cita