Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-11-2007
Puberta Puberta is offline
Miembro
 
Registrado: oct 2007
Ubicación: Estado de México
Posts: 47
Poder: 0
Puberta Va por buen camino
Question Mostar el Hint en un TEdit al presionar el Tabulador

Hola, ojala alguien me pueda ayudar.

Tengo el siguiente problema, tengo un TRadioButton y lo sigue un
TEdit, el cual tiene un Hint ('Doble clic -> Ayuda'), pero el hint solo es visible cuando se para el Mouse sobre el y no cuando presiono la tecla Tabulador al TRadioButton anterior para pasar el Foco a el TEdit...es posible hacer esto, bueno dicen que en programación todo es posible, pero mi pregunta es ¿cómo?.
Responder Con Cita
  #2  
Antiguo 01-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Según el truco 135 de Trucomania (Quizá haya algo mejor), necesitas dos metodos basicos y un atributo global para la unidad:

Código Delphi [-]
  private
    mango:THintWindow;
    function RevealHint(Control: TControl): THintWindow;
    procedure RemoveHint(var Hint: THintWindow);


Código Delphi [-]
function TForm1.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}

Código Delphi [-]
procedure TForm1.RemoveHint (var Hint: THintWindow);
begin
   Hint.ReleaseHandle;
   Hint.Free;
   Hint := nil;
end;

Para llamarlos podrias hacerlo por ejemplo en el OnEnter del Edit:

Código Delphi [-]
procedure TForm1.Edit1Enter(Sender: TObject);
begin
   mango := RevealHint(Edit1);
end;

Y en el OnExit para hacerlo desaparecer:

Código Delphi [-]
procedure TForm1.Edit1Exit(Sender: TObject);
begin
  RemoveHint(mango);
end;

Y Listo , espero te sirva el truco 135 de TrucoMania .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 01-11-2007
Puberta Puberta is offline
Miembro
 
Registrado: oct 2007
Ubicación: Estado de México
Posts: 47
Poder: 0
Puberta Va por buen camino
Hola Jhonny,

Te agradezco tu ayuda y tiempo, en verdad funcionó de maravilla, llevaba ya un día intentando varias formas de hacerlo pero no me quedaba, no sabes lo agradecida que estoy, aunque aún no lo entiendo del todo (pero lo haré tarde o temprano, ojala que sea temprano).
Responder Con Cita
  #4  
Antiguo 21-11-2007
Avatar de Alcolea
Alcolea Alcolea is offline
Miembro
 
Registrado: abr 2006
Ubicación: Santiago de Cuba, Cuba
Posts: 100
Poder: 19
Alcolea Va por buen camino
Lightbulb Una sugerencia

Buscando hacer eso que dices encontre a Alcione, es un conjunto de componente que bajé hace ya algún tiempo, uno de ellos se nombre AllHintBallon o algo parecido que es capaz de ponerte el Hint que quieres sobre cualquier componente con tan solo pasar unos parámetros, como con se usa Application.MessageBox(). Este Hint tiene la misma forma que el balón de Windows con icono de Error, Warning e Information y todo. Si te animas a buscarlo se que no te pesará.
Responder Con Cita
  #5  
Antiguo 21-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Pues a mi me funciona bien, creo que debes hacer una mejora al llamar el metodo remove, asi:

Código Delphi [-]
  if mango <> nil then
    RemoveHint(mango);

Para que nos aseguremos que la variable mango siempre tenga algo al momento de llamar el metodo RemoveHint .

Al llamar el RevealHint deberia tener otra mejora, asi:

Código Delphi [-]
  if mango = nil then
    mango := RevealHint(Edit1);
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 21-11-2007 a las 22:32:12.
Responder Con Cita
  #6  
Antiguo 22-11-2007
Puberta Puberta is offline
Miembro
 
Registrado: oct 2007
Ubicación: Estado de México
Posts: 47
Poder: 0
Puberta Va por buen camino
Primero opte por la solución de Jhonny pués ya lo tenia casi todo, solo era cuestión de agregar 2 lineas más.

Jhonny, solo me queda agradecerte de nuevo pues es como indicaste.

Gracias Alcolea, la verdad aún no he probado la solución que mencionas, pero lo haré y después les cuento como me fue.
Responder Con Cita
  #7  
Antiguo 22-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Puberta Ver Mensaje
Primero opte por la solución de Jhonny pués ya lo tenia casi todo, solo era cuestión de agregar 2 lineas más.

Jhonny, solo me queda agradecerte de nuevo pues es como indicaste.

Gracias Alcolea, la verdad aún no he probado la solución que mencionas, pero lo haré y después les cuento como me fue.
Que bueno que a quedado bien el asunto .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
Respuesta



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
mostar datos clasificados en DBLookupListBox JESUSNET Impresión 0 02-10-2007 21:16:04
Presionar Teclas rob1 Varios 9 07-11-2006 23:01:06
como mostar mas de un campo en un DBLookUpListBox pyanqn Conexión con bases de datos 1 21-11-2005 14:10:37
Mostar campo MEMO Ivan_25 C++ Builder 2 28-10-2005 13:02:56
Pasar el valor de un TEdit dentro de un StringGrid a otro TEdit que está fuera atirado Varios 4 11-09-2004 19:13:48


La franja horaria es GMT +2. Ahora son las 23:34:33.


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
Copyright 1996-2007 Club Delphi