Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Actualizar Hint y mostrarlo (https://www.clubdelphi.com/foros/showthread.php?t=87336)

jocaro 16-12-2014 14:49:26

Actualizar Hint y mostrarlo
 
Hola

Tengo un SpeedButtón y al acceder a él, a través de su envento OnMouseMove, quiero modificar el mensaje de la propiedad Hint y mostrarlo en pantalla.

¿alguna sugerencia de como hacerlo?

Gracias de antemano

nlsgarcia 16-12-2014 15:16:17

jocaro,

Cita:

Empezado por jocaro
...Tengo un SpeedButton...quiero modificar el mensaje de la propiedad Hint y mostrarlo en pantalla...

:rolleyes:

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    SpeedButton1: TSpeedButton;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
   SpeedButton1.Hint := 'Ayuda al Usuario';
   SpeedButton1.ShowHint := True;
end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, activa y muestra un Hint asociado a un componente TSpeedButton.

Espero sea útil :)

Nelson.

ecfisa 16-12-2014 15:25:47

Hola jocaro.

Por lo que puedo entender, deseas que se refresque el Hint al mover el mouse sobre el TSpeedButton. Si es así, podes usar el evento OnShowHint:

Código Delphi [-]
...
type
  TForm1 = class(TForm)
    SpeedButton1: TSpeedButton;
  ...
  private
    procedure AppShowHint(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);
    ...
  end;
..
implementation

procedure TForm1.AppShowHint(var HintStr: string; var CanShow: Boolean;
  var HintInfo: THintInfo);
begin
  HintInfo.ReShowTimeout:= 10; // ms.
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnShowHint:= AppShowHint;
end;

procedure TForm1.SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
  TSpeedButton(Sender).Hint:= Format('X: %d, Y: %d', [X,Y]);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  HintInfo.ReShowTimeout:= 0;
end;

Saludos :)


La franja horaria es GMT +2. Ahora son las 14:00:58.

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