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 23-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 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
  #2  
Antiguo 23-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
Estas usando firemonkey, que es el framework nuevo diseñado para soportar varias plataformas (win, mac, ios y android)

Es lógico que haya diferencias, y no que todos los componentes sean idénticos

Si querés usar algo "similar a Delphi 7", te toca crear una aplicación VCL, que es el framework de toda la vida
Responder Con Cita
  #3  
Antiguo 23-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Perdonad. Se me olvidaba.
Si seleccionas otra columna de la misma fila, (SEA LA FILA QUE SEA), TAMPOCO CAMBIA LA COLUMNA.
Saludos.
Responder Con Cita
  #4  
Antiguo 23-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Perdona, Agustín.
Pero los nombres de las propiedades, creo que no cambian para cada plataforma. Sea la que sea.
Un saludo.
Responder Con Cita
  #5  
Antiguo 23-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
Son componentes distintos

El error fue ponerle el mismo nombre

Es imposible diseñar algo idéntico a la VCL, que delega su funcionalidad a una API específica

Estamos hablando no sólo de distintos sistemas operativos, sino de dispositivos distintos que funcionan distinto desde el vamos
Responder Con Cita
  #6  
Antiguo 23-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Vale, Agustín.
Tienes razón. Si quieres hacer una aplicación VCL clásica, tienes los mismos nombres y propiedades que te comentaba. Lo que no entiendo, es por qué lo han complicado tanto. Aunque el Framework sea distinto, se supone que el trabajo de adaptarlo a las distintas plataformas corresponde a Embarcadero. Ya he observado, que algunos componentes, no están disponibles para Android, como por ejemplo los menús. Están inhabilitados para la plataforma Android.
Un saludo.
Responder Con Cita
  #7  
Antiguo 23-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Ahora, aún con las limitaciones de las distintas plataformas, EL PROBLEMA que comentado en el origen del post, existe en la plataforma Android (al menos).
Mañana seguimos comentando. Es muy tarde para mí.
Un Saludo.
Responder Con Cita
  #8  
Antiguo 23-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
Si, y tampoco tenés ventanas modales en android

A mi me parece que fmx esta, en nivel arquitectura, años por delante de VCL

En fmx los controles están creados mediante composición. Hace unos días discutimos las ventajas en un hilo en el subforo POO (mamcx lo explica estupendamente)

No hay menús en android. Que aplicación android utiliza algo similar al TMainMenu? Que aplicación usa el TTrayIcon?

A fmx lo único que le falta es madurar
Responder Con Cita
  #9  
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
Otro gran error es usar los controles tanto para mostrar la info, y como "estructura", es decir, donde están realmente los datos

Busca tutoriales en youtube sobre Live Bindings; verás como podes crear un objeto con el cual mantener tus estructuras de datos, en el harás las operaciones lógicas: modificar estado, buscar, filtrar, acceder al actual, agregar, etc. Es un objeto muy similar al dataset,o podes usar el tuyo propio.

Luego conectas este objeto con cualquier control; un ListView, Grid, ListBox, etc

No te sorprenderá ver que en fmx no hay controles data aware, ya que todo se conecta de esta forma (o a mano, escribiendo tu mismo el código)
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 08:59:19.


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