Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 23-08-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por agustincs
la opcion hint no me sirve, ya que tengo avilitado un cuadrado especial para la ayuda y por tanto quiero que aparezca ahi.
No sé a qué te refieres exactamente con un "cuadrado especial" pero pienso que puedes lograr lo que deseas perfectamente con la propiedad Hint en lugar de complicarte la vida con OnMouseMove. Lo único que tienes que saber es cómo usar dicha propiedad.

La VCL de Delphi lleva un registro de por dónde va pasando el cursor del ratón y cada vez que pasa por un control genera el evento OnHint del objeto Application. En este evento tienes disponible la propiedad Application.Hint que contiene el Hint del control sobre el que estás. Si estás pasando sobre la imágen entonces Application.Hint contendrá el hint de la imagen. Al salir de la imagen, si el control al que llegas no tiene hint entonces Application.Hint estará vacío.

De esta forma, suponiendo que por "cuadrado especial" entiendes un label podrías poner el evento OnHint así:

Código Delphi [-]
Label1.Caption := Application.Hint;

El problema aquí será si usas la propiedad Hint para otros controles además de las imágenes pues entonces tu "cuadrado especial" mostrará también los hints de dichos controles. Esto puede ser lo que quieres pero en caso contrario puedes determinar en el evento OnHint si el control sobre el que estás es o no una imagen:

Código Delphi [-]
var
  Control: TControl;

begin
  Control := ControlAtPos(ScreenToClient(Mouse.CursorPos), true);
  if Control is TImage then
    Label1.Caption := Application.Hint
  else
    Label1.Caption := '';
end;

Lo que resta es saber cómo asignas este evento OnHint. En las últimas versiones de Delphi puedes usar el objeto TApplicationEvents (en la paleta Aditional) y asignar ahí el evento OnHint. En versiones anteriores tendrás que crear tú mismo un método de tu formulario:

Código Delphi [-]
procedure AppHint(Sender: TObject);

y asignarlo manualmente en el evento OnCreate:

Código Delphi [-]
Application.OnHint := AppHint;

// Saludos
Responder Con Cita
 



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


La franja horaria es GMT +2. Ahora son las 16:04:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi