Ir al contenido


Foto

Mostrar un globo informativo diferente en cada columna de un TStringGrid


  • Por favor identifícate para responder
4 respuestas en este tema

#1 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 26 agosto 2013 - 11:11

Buen día/tarde/noche, jóvenes delphineros. Una vez más, yo con mis preguntas fáciles de hacer y difíciles de responder.

Resulta que tengo un TStringGrid coloreado (alguna vez, creado a partir de éste http://www.delphiacc...75418/#msg75418 y éste post http://www.delphiacc...75417/#msg75417), y ahora requiero ponerle un globo informativo (hint) cuando cambie el cursor de celda..., tarea que sería fácil si el TStringGrid contara con el evento OnMouseOver...

...pero como no lo tiene, ¿alguna manera de poder solucionar ésta inquietud o requerimiento? Especialmente, que sea completamente stándard.

Archivos adjuntos


  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 26 agosto 2013 - 11:23

Saludos.

Ahora mismo tengo a mano el Delphi 2010, el StringGrid posee el evento OnMouseMove que posee las coordenas. Es posible que este evento te pueda servir.
  • 0

#3 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 26 agosto 2013 - 11:26

Saludos.

Ahora mismo tengo a mano el Delphi 2010, el StringGrid posee el evento OnMouseMove que posee las coordenas. Es posible que este evento te pueda servir.


Pues de hecho, estoy trabajando sobre ése mismo evento, es decir, estoy intentando hacerlo funcionar como el evento requerido, aunque estoy trabajando en Delphi 6. Sí, gracias, cualquier tipo de ayuda será bienvenida.
  • 0

#4 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 26 agosto 2013 - 11:37

Saludos.

Encontré este código:



delphi
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3.   StringGrid1.Hint:= '0 0';
  4.   StringGrid1.ShowHint:= True;
  5. end;
  6.  
  7. procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
  8.   X, Y: Integer);
  9. var
  10.   R, C: Integer;
  11. begin
  12.   StringGrid1.MouseToCell(X, Y, C, R);
  13.   with StringGrid1 do
  14.   begin
  15.     if ((Row<>R)or(Col<>C)) then
  16.     begin
  17.       Row:=R;
  18.       Col:=C;
  19.       Application.CancelHint;
  20.       StringGrid1.Hint:=IntToStr(R)+#32+IntToStr(C);
  21.     end;
  22.   end;
  23. end;



Enlace.
  • 0

#5 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 26 agosto 2013 - 12:11

Saludos.

Encontré este código:...


... y yo lo modifiqué así:



delphi
  1. procedure TfrmPrescripcionDieteticaInicial.stgProcesarMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
  2. var
  3.   R, C: Integer;
  4.   sHint : string;
  5. begin
  6.   if (Sender).ClassType = TStringGrid then
  7.   begin
  8.       stgProcesar.MouseToCell(X, Y, C, R);
  9.       if (R > 2) and (C > 3) then
  10.       begin
  11.         with stgProcesar do
  12.         begin
  13.             if ((Row <> R) or (Col <> C)) then
  14.             begin
  15.               Row := R;
  16.               Col := C;
  17.               sHint := CapitalFirst(BuscaHint(Cells[C,2]));
  18.               if Trim(sHint) > '' then
  19.               begin
  20.                   Application.CancelHint;
  21.                   Hint := sHint;
  22.               end;
  23.             end;
  24.         end;
  25.       end;
  26.   end;
  27. end;



Por lo que ahora queda EXACTAMENTE como lo necesitaba. Gracias, Rolphy...
  • 0




IP.Board spam blocked by CleanTalk.