Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-02-2016
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.560
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por jhonalone Ver Mensaje
Hola, Egostar.

No creo que sea problema de mi teléfono.
También tendría que serlo de la tableta Galaxy Tab3 y del teléfono de mi mujer, Galaxy Trend.
De todas formas, no es operativo, que se oculte parte del TStringGrid. En el tablero del sudoku, se vería bastante poco estético. De hecho a mí no se me oculta nada de la pantalla.(Ni me gustaría).
Precisamente he colocado el TStringGrid (alineado al Client), dentro de un TScaledLayout para que se adapte a todas las pantallas y no cambie de tamaño.
Por supuesto que no es conveniente que se vea cortada la fila, lo ideal es que sea un cuadro de 9x9 exacto, pero hay que considerar, como ya lo has mencionado, que la cuadricula la tienes que "pintar" en tiempo de ejecución debido a las diferentes definiciones de pantalla que existen, pero eso no lo veo yo como un problema de Delphi, sino como parte del aprendizaje del nuevo concepto de aplicaciones para dispositivos móviles. Particularmente el apartado de la densidad de pixeles, es decir, factor de escala, coordenadas físicas de la pantalla, con eso podrás desarrollar aplicaciones que se ajusten perfectamente a cada pantalla sin importar su tamaño.

Aquí puedes ver mi cuadricula perfectamente alineada

https://plus.google.com/u/0/photos/p...05615699017202


Cita:
Empezado por jhonalone Ver Mensaje
Hay OTRO PROBLEMA MAS, que he observado y no he comentado, (Si quieres te hago otro vídeo). Y es el siguiente:

Cuando el contenedor del TStringGrid, (en este caso el TScaledLayout) es más largo que el TStringGrid y el TStringGrid está alineado al Top, si tienes una TLabel, en la que puedes ver la fila y la columna seleccionadas, aunque hayas definido la rejilla de 9x9, (por ejemplo) si pulsas por debajo de la rejilla y dentro de su contenedor verás que parece que has pulsado una fila MAYOR que 9.
Si esto no es un Bug, ¡que venga Dios y lo vea!.
Vamos a dar el privilegio de la duda. Voy a hacer algunas pruebas de ese caso para poder hablar con argumentos antes de decir que es un bug.

Saludos
Responder Con Cita
  #2  
Antiguo 25-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Egostar.
Si miras los vídeos que he subido, podrás comprobar que mi cuadrícula tambien está perfectamente alineada y además no se oculta ni se mueve nada. Ahora estoy un poco liado, pero, si quieres esperar, no pierdas tu tiempo, subiré el proyecto de prueba en .zip, que yo ya lo tengo hecho.

Despues de tanta historia, no sé si voy a tener que cambiar la rejilla por otro u otros componentes pues quería poner lo números originales de un color y los que teclea el usuario, de otro. Pero me encuentro con el problema de que, por más que busco, lo único que encuentro es la propiedad TextSettings.FontColor, pero cuando la cambio, cambian los colores de todos los números escritos en la rejilla.
Os seguiré contando...
Saludos.
Responder Con Cita
  #3  
Antiguo 26-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Ecostar, lo prometido. No me manejo bien con las herramientas del foro, pero creo que lo podrás bajar
Saludos.
Archivos Adjuntos
Tipo de Archivo: rar PruebaRejilla.rar (7,0 KB, 5 visitas)
Responder Con Cita
  #4  
Antiguo 26-02-2016
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.560
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por jhonalone Ver Mensaje
Ecostar, lo prometido. No me manejo bien con las herramientas del foro, pero creo que lo podrás bajar
Saludos.
Muy bien, lo veo y mañana te comento.

Saludos
Responder Con Cita
  #5  
Antiguo 02-03-2016
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.560
Poder: 25
egostar Va camino a la fama
Hola

Después de un tiempo sin poder atender éste asunto debido a carga laboral, pude dar un vistazo al problema que mencionas y se puede resolver fácilmente.

1. Cuando dices :

Cita:
Cuando el contenedor del TStringGrid, (en este caso el TScaledLayout) es más largo que el TStringGrid y el TStringGrid está alineado al Top, si tienes una TLabel, en la que puedes ver la fila y la columna seleccionadas, aunque hayas definido la rejilla de 9x9, (por ejemplo) si pulsas por debajo de la rejilla y dentro de su contenedor verás que parece que has pulsado una fila MAYOR que 9.
No estás pulsando debajo del StringGrid, estás pulsando dentro del StringGrid como lo puedes ver en la imagen que enlazo.

https://plus.google.com/u/0/photos/p...98556772600978

2. Por otro lado, efectivamente, hay un detalle "raro" que al pulsar fuera del área de celdas pero dentro del mismo StringGrid cambie de celda aunque siempre permanezca en la última fila, sin embargo, el método SelectCell tiene una variable llamada CanSelect de tipo Boolean que nos ayudará a resolver el punto.

Te muestro el código que usé para resolver el problema, aunque yo forzaría a que no existiera ninguna zona extra en el StringGrid y que la cuadricula sea exacta como te lo muestro en ésta imagen.

https://photos.google.com/photo/AF1Q...emMxB37CCvSqLH

Código Delphi [-]
procedure TForm1.grdTableroSelectCell(Sender: TObject; const ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  if ARow <= grdTablero.RowCount then
  begin
    CanSelect := true;
    Label4.Text := 'Columna = '+ ACol.ToString + '  /  '+
                   'Fila = '+ ARow.ToString;
    Label1.Text := 'Última casilla pulsada: ' +  ACol.ToString + ',' + ARow.ToString;
  end
  else begin
         CanSelect := false;
  end;
end;

3. No sé la razón por la cual el nuevo StringGrid permite seleccionar columnas aunque no existan mas filas asignadas en la propiedad RowCount, de cualquier forma lo voy a pasar a otra instancia para saber porque funciona de esa forma o para que se tome en cuenta como punto de mejora.

Saludos
Responder Con Cita
  #6  
Antiguo 02-03-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Gracias por molestarte, Egostar.

Está bien tu solución. Pero la mía, que recuerda consiste en "no dejar espacio en el contenedor del TStrinGrrid" es un poco más simple e igual de efectiva. Lo de que el TStringGrid considere que hay más filas fuera de las que se han definido en la propiedad RowCount es lo que creo que Embarcadero debe corregir.

"Ñapas" para solucionar problemas, las podemos descubrir y utilizar todos, pero hay algunas, como estas (la tuya: con CanSelect :=False ,o la mía: reduciendo el espacio del contenedor para que no se pueda pulsar) creo que estamos de acuerdo en que no deberían ser necesarias. El constructor del intérprete (Embarcadero) debería evitar que esto sucediera.

¡Ah! en la dirección https://photos.google.com/photo/AF1Q...emMxB37CCvSqLH no pude ver nada, (supongo que es una demostración del código que muestras más abajo) me da el error 404.

Saludos cordiales.
Responder Con Cita
  #7  
Antiguo 02-03-2016
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.560
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por jhonalone Ver Mensaje
Gracias por molestarte, Egostar.

Está bien tu solución. Pero la mía, que recuerda consiste en "no dejar espacio en el contenedor del TStrinGrrid" es un poco más simple e igual de efectiva. Lo de que el TStringGrid considere que hay más filas fuera de las que se han definido en la propiedad RowCount es lo que creo que Embarcadero debe corregir.
Bueno, la primer imagen que enlazo es el ejemplo que tu mismo subiste, por eso es que comento que estas pulsando dentro del mismo StringGrid, asumí que así lo tienes en la práctica.

La segunda imagen que enlazo es precisamente lo que tú me estas comentando que haces, y que es la otra opción que yo veía.

Cita:
Empezado por jhonalone Ver Mensaje
"Ñapas" para solucionar problemas, las podemos descubrir y utilizar todos, pero hay algunas, como estas (la tuya: con CanSelect :=False ,o la mía: reduciendo el espacio del contenedor para que no se pueda pulsar) creo que estamos de acuerdo en que no deberían ser necesarias. El constructor del intérprete (Embarcadero) debería evitar que esto sucediera.

Saludos cordiales.
De acuerdo, aunque todavía me queda la duda si en realidad es un problema o es algo que tiene su razón de ser. Ya veré si es posible encontrar una respuesta a tal comportamiento ya sea justificante o aclaratoria.

Saludos
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
Embarcadero pasa a Idera geolife Noticias 28 29-10-2015 08:57:26
problema con embarcadero y dll elmago00 Varios 4 16-01-2014 22:14:55
Codegear & Embarcadero Emilio Noticias 19 10-06-2008 22:58:47


La franja horaria es GMT +2. Ahora son las 21:08:43.


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