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 24-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Hola a todos.

Entiendo que sea difícil la adaptación de los distintos sistemas operativos. Pero cuando Embarcadero te vende, (¡y a qué precios!), un producto que promete esta adaptación, lo menos que puede hacer es que la adaptación sea real. Que te ofrezca un TStringGrid (vamos una rejilla de toda la vida) y luego no te de las armas para poder actuar sobre las distintas celdas... Si la rejilla es para presentar una cosa estática, quizá sea mejor presentar una foto.

Si existen programas que migran el código Delphi a Java, (que es el lenguaje en el que está basado Android esencialmente), con un poquito de esfuerzo por parte de Embarcadero lo podría conseguir. Máxime teniendo en cuenta lo pesadas, (gran cantidad de código), que son sus herramientas. Sinceramente creo que podían habérselo currado un poquito más.

Bueno, dejemos de lamentarnos... Lo que hay es lo que hay. Para el problema que nos ocupa, si no hay otra solución y no puedo usar una rejilla como base de mi proyecto de sudoku, tendré que plantear el asunto desde otra perspectiva, con una tabla... con un puñado de etiquetas... o no sé con qué... Se admiten sugerencias. En cualquier caso, una rejilla en la que, repito, no se puede acceder y modificar los colores y los valores de las celdas, de poco sirve.

Os invito a probar lo que comentaba en el origen de este hilo, para confirmar lo que yo he observado.

Espero vuestras noticias. Sigo trabajando en buscar una solución...

Saludos a todos.
Responder Con Cita
  #2  
Antiguo 24-02-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Es que no deberias empezar por la rejilla, eso es lo ultimo que tenes que hacer

Mete todo en una matriz, el juego opera sobre la matriz; luego lo conectas con: Un TGrid, o un TStringGrid, o un componente de terceros o lo sacas por consola
Responder Con Cita
  #3  
Antiguo 24-02-2016
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por jhonalone Ver Mensaje
Bug de Embarcadero?......

.......Os invito a probar lo que comentaba en el origen de este hilo, para confirmar lo que yo he observado.
Cuando no se leé lo que hacen los eventos es fácil indicar que es un fallo, pero si te tomaras un poco de tiempo en leer la ayuda de Delphi verías que el evento OnSelChanged del componente TGrid dice lo siguiente:

Cita:
Description

Occurs when the selected row in the grid changes.
Me he tomado el tiempo para hacer una pequeña prueba de esto usando dos eventos, el que tu utilizas OnSelChanged y el evento OnSelectCell() y veo las diferencias de resultado que están de acuerdo a la ayuda de Delphi.

El código que usé es el siguiente:

Código Delphi [-]
procedure TForm1.StringGrid1SelChanged(Sender: TObject);
begin
  Label1.Text := format('Renglón seleccionado: %d', [StringGrid1.Selected + 1]);
  Label2.Text := format('Columna seleccionada: %d', [StringGrid1.ColumnIndex + 1]);
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; const ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  Label3.Text := format('Renglón seleccionado: %d', [ARow + 1]);
  Label4.Text := format('Columna seleccionada: %d', [ACol + 1]);
end;

Además te muestro como funciona en Android, saquen sus conclusiones.

¿es un bug o no?

Edito: Perdón, me faltó una imagen que es la de la selección de la celda (9,1) que estaría después de la imagen (7,7), pero pueden verla en el siguiente enlace

https://plus.google.com/u/0/photos/1...M_x8JjGlvOSmQE



Saludos
Imágenes Adjuntas
Tipo de Archivo: png FMX TStringGrid.png (93,6 KB, 18 visitas)

Última edición por egostar fecha: 24-02-2016 a las 19:27:04.
Responder Con Cita
  #4  
Antiguo 24-02-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.054
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Estaba claro que delphi no iba a fallar en algo tan básico.
Todos imaginábamos que el problema es el código de jhonalone, que es novato en el tema y es normal que vea "bugs raros", como ha pasado toda la vida con los novatos, yo el primero
Responder Con Cita
  #5  
Antiguo 24-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Hola, Egostar.

Primero, gracias por tu colaboración y por tu aporte.
Te conozco desde hace años y debes saber que eres un miembro admirado por mí por tus muchos y valorados aportes.

Pero en esta ocasión tengo dos cosas que decirte. Una buena y otra mala.
Empecemos por la buena: Tienes razón. Yo había probado también TForm1.StringGrid1SelectCell, pero no se me ocurrió evaluar ACol y ARow, de sus parámetros, utilicé la misma estructura que tenía en TForm1.StringGrid1SelChanged, o sea la siguiente:

Código Delphi [-]
procedure TPrinci.grdTableroSelectCell(Sender: TObject; const ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  Label4.Text := 'Columna = '+ ColumnIndex.ToString + '  /  '+
                 'Fila = '+ IntTostr(grdTablero.Index);
end;

Con lo cual, el resultado de la columna era correcto pero no el de la fila. Era cero, como ya comenté.
He seguido tu consejo y he cambiado el cuerpo del evento a lo siguiente:
Código Delphi [-]
procedure TPrinci.grdTableroSelectCell(Sender: TObject; const ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  Label4.Text := 'Columna = '+ ACol.ToString + '  /  '+
                 'Fila = '+ ARow.ToString;
end;

Con esto he conseguido identificar la fila correctamente, ya no sale cero como antes.

Ahora VIENE la segunda parte, la negativa.
En cualquier celda de la rejilla que selecciones, siempre que no sea la última de abajo, los valores de la fila y la columna, son correctos.

Pero vuelvo a repetir:
Si la celda seleccionada está en cualquier parte de la rejilla, QUE NO SEA LA ÚLTIMA FILA DE ABAJO, y seleccionas una de las casillas de la última fila ( la de abajo ), ocurre lo siguiente:

(Estamos hablando de la expresión en un dispositivo Android). La columna que informa ACol es correcta y la fila que informa ARow también es correcta, pero la celda que "aparentemente" está seleccionada, (cambia el color), NO ES CORRECTA, corresponde a la MISMA FILA que estaba seleccionada antes de pulsar en la última fila, y la columna correspondiente a la celda ES LA CORRECTA, (en la celda que cambia de color como seleccionada).

Cuando lo pruebes me respondes. Si no me he explicado, me lo dices.

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

Ahora me dices si ese comportamiento, no es un Bug de Enbarcadero.

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

Ahora me dices si ese comportamiento, no es un Bug de Enbarcadero.

Saludos.
Perdón, no entiendo el punto, es que "yo soy visual", si me muestras una imagen de lo que estás explicando, es decir, toma una captura de pantalla de tu celular y la adjuntas, me sería más fácil entender lo que sucede.

Saludos
Responder Con Cita
  #8  
Antiguo 24-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Egostar.
Creo que me he explicado muy claro.
Pasa el ejemplo que me has mostrado a tu teléfono móvil y lee detenidamente mi último mensaje.
Después me cuentas.
Si quieres te genero un ejemplo en .zip y lo subo en un enlace, pero si tienes el proyecto de prueba que has generado antes, creo que puedes usarlo para probar lo que acabo de escribir.
De nada sirve que te mande las fotos, si no sabes lo que he tecleado o (en el caso de Android) lo que he pulsado antes. Quizá para verlo como yo lo veo, tendría que mandarte un video. So no lo puedes comprobar, me lo dices e intento hacer el video.
Saludos
Responder Con Cita
  #9  
Antiguo 24-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Casimiro.

No te contesto. Te invito a que hagas la prueba en un teléfono, siguiendo las indicaciones que os he dado.

Saludos.
Responder Con Cita
  #10  
Antiguo 24-02-2016
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por jhonalone Ver Mensaje
Creo que me he explicado muy claro.
Insisto, no te entendí y lo de visual es cierto, es mas fácil (para mi) ver imágenes para poder entender lo que está escrito.

Cita:
Empezado por jhonalone Ver Mensaje
Pasa el ejemplo que me has mostrado a tu teléfono móvil y lee detenidamente mi último mensaje.
Después me cuentas.
O sea, las imágenes que he adjuntado son de mi celular, en tiempo real, no las imagine, ni las dibujé, ni las inventé.

Cita:
Empezado por jhonalone Ver Mensaje
Si quieres te genero un ejemplo en .zip y lo subo en un enlace, pero si tienes el proyecto de prueba que has generado antes, creo que puedes usarlo para probar lo que acabo de escribir.
De nada sirve que te mande las fotos, si no sabes lo que he tecleado o (en el caso de Android) lo que he pulsado antes. Quizá para verlo como yo lo veo, tendría que mandarte un video. So no lo puedes comprobar, me lo dices e intento hacer el video.
Saludos
No es necesario, te muestro ahora mismo con un ejemplo gráfico de lo que yo estoy haciendo, aclaro que es mi celular, en tiempo real, ejecutando el código que mostré, he colocado los indices en base cero para que sea exacto y agregué una línea para que quede evidencia de todas las casillas que se han presionado, sigue el enlace y me dices que es lo que te parece es un Bug de Embarcadero.

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

Código Delphi [-]
procedure TForm1.StringGrid1SelectCell(Sender: TObject; const ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  Label3.Text := format('Renglón seleccionado: %d', [ARow]);
  Label4.Text := format('Columna seleccionada: %d', [ACol]);
  (Sender as TStringGrid).Cells[ACol,ARow] := ARow.ToString + ',' + ACol.ToString;
end;

Saludos
Responder Con Cita
  #11  
Antiguo 24-02-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.912
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por jhonalone Ver Mensaje
Cuando lo pruebes me respondes. Si no me he explicado, me lo dices.
Para casos como estos, es mucho mas facil si haces un gif animado y lo muestras. Me ha pasado casos similares a estos (con usuarios) y hasta que no vi la pantalla en vivo no me di cuenta que si habia un problema (en un caso por ejemplo, era toda la secuencia entre teclado, mouse y demas, que yo nunca hacia pero el usuario si)
__________________
El malabarista.
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 19:24:31.


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