Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mostrar hint al entrar en DBEDIT (https://www.clubdelphi.com/foros/showthread.php?t=8887)

fjolivares 05-04-2004 11:47:19

Mostrar hint al entrar en DBEDIT
 
Hola a todos. Estoy intentando mostrar una ayuda cuando el usuario entra en algunos DBEDIT. Una idea sería mostrar el hint cuando el usuario entre en el DBEDIT, aunke sea con el tabulador. el hint solo se muestra al pasar por encima el raton.

¿Existe alguna manera de mostrar el hint mediante codigo?

Saludos y gracias.

yusnerqui 05-04-2004 15:08:47

Truco 135 del TManía
 
Cita:

Empezado por fjolivares

¿Existe alguna manera de mostrar el hint mediante codigo?

Saludos y gracias.

esto lo tomé textualmente del truco 135 del trucomanía, espero te sirva
Utiliza esta función para mostrar el hint de un componente. Recuerda guardar el handle que te devuelve en una
variable para despues destruir el Hint.:


Código Delphi [-]
 function RevealHint (Control: TControl): THintWindow;
 var 
   ShortHint: string;
   AShortHint: array[0..255] of Char;
   HintPos: TPoint;
   HintBox: TRect;
 begin 
   { Create the window: }
   Result := THintWindow.Create(Control);
 
   { Get first half of hint up to '|': }
   ShortHint := GetShortHint(Control.Hint);
 
   { Calculate Hint Window position & size: }
   HintPos := Control.ClientOrigin;
   Inc(HintPos.Y, Control.Height + 6);
   HintBox := Bounds(0, 0, Screen.Width, 0);
   DrawText(Result.Canvas.Handle,
       StrPCopy(AShortHint, ShortHint), -1, HintBox,
       DT_CALCRECT or DT_LEFT or DT_WORDBREAK or DT_NOPREFIX);
   OffsetRect(HintBox, HintPos.X, HintPos.Y);
   Inc(HintBox.Right, 6);
   Inc(HintBox.Bottom, 2);
 
   { Now show the window: }
   Result.ActivateHint(HintBox, ShortHint);
 end; {RevealHint}
 
 
 
//Ejemplo de llamada:
 
 
 
var 
   mango:THintWindow;
begin 
   mango:=RevealHint(Button1);
 
 
 

//Para hacer desaparecer el hint:
 
 
 
 procedure RemoveHint (var Hint: THintWindow);
 begin 
   Hint.ReleaseHandle;
   Hint.Free;
   Hint := nil;
 end; {RemoveHint}
 
 
 
//Ejemplo de llamada:
 
 
 
 RemoveHint(mango)


Donde 'mango' es el handle que hemos guardado al llamar a RevealHint

fjolivares 05-04-2004 16:20:16

pero si mueves la ventana ...
 
gracias yusnerqui, consigo q aparezca una ventanita de hint. el tema es q si muevo el form mientras se muestra el hint, este se keda detras del form.

¿no hay manera de provocar q aparezca el propio hint del control?

Saludos y gracias.

roman 05-04-2004 17:20:26

Podrías poner un StatusBar en el formulario y escribir el hint en él cuando se entre a un control. Por ejemplo, en el evento OnEnter:

StatusBar.SimpleText := DBEdit.Hint;

// Saludos

fjolivares 06-04-2004 09:39:00

mas o menos lo q e exo
 
Gracias roman, ayer por la tarde hize eso. estuve probando un componente gratuito que se llama zballon q hacia lo que queria, pero me resultaba engorroso de cara al usuario. al final muestro el hint en un memo en el evento onenter.

Saludos.

roman 06-04-2004 17:47:30

Comprendo. Al principio suena muy bonito eso de poner hints en ventanitas por todos lados y si son de formas especiales qué mejor. Pero pasado el entusiasmo inicial cualquier usuario se harta.

// Saludos


La franja horaria es GMT +2. Ahora son las 05:15:24.

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