Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   stringGrid y Hint (https://www.clubdelphi.com/foros/showthread.php?t=32939)

Caro 21-06-2006 21:48:37

stringGrid y Hint
 
Hola a todos

Como puedo sacar un hint en la columna y fila Fixed (FixedCol, FixedRow) de un stringGrid podrian indicarme por favor con que evento trabajar y como saber si estoy sobre una columna o fila Fixed, muchisimas gracias por adelantado.

Saludos

Caro 22-06-2006 16:12:53

Holas

Lo he conseguido con esta funcion del stringGrid -> MouseToCell que nos devuelve fila y columna en donde se encuentra las coordenadas X y Y que le pasaremos de nuestro evento MouseMove de nuestro stringGrid, sin esta función solo me devolvia los hint de las celdas pero no de las celdas que eran Fixed, habra que aumentar condiciones para que solo salga los hint en las filas y columnas fixed.

Algo que he notado es que tarda un poco en desaparecer el hint cuando me voy a otra celda que se sera?, si a alguien se le acurre el porque y como solucionar este retardo le estare muy agradecida.

Código Delphi [-]
procedure TForm1.StringGrid2MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
  ACol, ARow : Integer;
begin
  StringGrid2.ShowHint := True;
 
  //Obtenemos la columna y fila de la posicion X y Y
  StringGrid2.MouseToCell(X, Y, ACol, ARow);  
 
  StringGrid2.Hint:=StringGrid2.Cells[ACol,ARow];
end;

Saludos y que tengan un bonito dia

JosepMLlort 11-04-2012 18:00:26

Draw Grid y Hint en Delphi 6
 
Hola,

Yo me he encontrado un problema similar con Delphi 6: quería mostrar un mensaje de ayuda ("Hint") distinto para cada celda de una Draw Grid excepto en la cabecera.

Basándome en la solución de Caro, he hecho lo siguiente:

-Poner la propiedad "ShowHint" de la DrawGrid a "True".
-Crear una variable para contener los mensajes de ayuda de las distintas celdas. Llenar la variable con los valores adecuados (no lo muestro por ser evidente).
-Crear una función "OnMouseMove" de la DrawgGrid y en ella llamar la función "MouseToCell", usándola para actualizar Hint con los valores de la variable:

Código:

Var
  HintDrawGrid1 : Array[1..4, 1..4] Of ShortString;

procedure TForm1.DrawGrid1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
Var
  ACol, ARow : Integer;
begin
  DrawGrid1.MouseToCell(X, Y, ACol, ARow);
  If (ACol > 0) And (ARow > 0)      { No quiero mostrar Hint en las cabeceras }
  Then DrawGrid1.Hint := HintDrawGrid1[ACol, ARow]
  Else DrawGrid1.Hint := '';
end; { DrawGridMouseMove }

Me funciona perfectamente, con dos únicos detalles mejorables:
-Igual que le pasa a Caro con la String Grid, el mensaje tarda un poco en desaparecer cuando saco el puntero del ratón de la celda, pero sólo si muevo el puntero a otra celda de la String Grid. En cuanto lo saco de la Draw Grid el mensaje desaparece (como debe ser).
-Una vez ha aparecido un mensaje Hint en una de las celdas, no aparece en ninguna otra de la Draw Grid hasta que muevo el puntero fuera de la Draw Grid. O sea, que para obtener Hint de diversas celdas tengo que ir moviendo el puntero fuera y dentro de la Draw Grid.

Si alguien sabe como mejorar estos dos detalles, agradeceré su respuesta.

Saludos

Cañones 12-04-2012 20:23:15

Gracias Caro, lo voy a probar.
Saludos.


La franja horaria es GMT +2. Ahora son las 11:04:35.

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