Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-02-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 571
Poder: 19
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
  #2  
Antiguo 26-02-2016
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
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
  #3  
Antiguo 02-03-2016
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
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
  #4  
Antiguo 02-03-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 571
Poder: 19
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
  #5  
Antiguo 02-03-2016
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
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
  #6  
Antiguo 02-03-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 571
Poder: 19
jhonalone Va por buen camino
Hola de nuevo, Egostar.
No. Yo ya no utilizo un TStringrid alineado al TOP dentro del ScaletLayout, cuando descubrí el problema, reduje el ScaletLayout al tamaño que deseaba para el TStringGrid y "resolví" el problema alineando al Client. El proyecto de prueba que subi al foro era para mostrar el problema que me había encontrado. Sigo sin ver tu segunda foto. (Error 404) no te preocupes, pues me imagino cómo es.
Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 00:44:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi