Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Efecto "flag" en un TChart

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Efecto "flag" en un TChart Responder citando

Hola.

Me gustaría que cuando pasesa el puntero del ratón por encima de la superficie del TChart haga un efecto como la propiedad Flag de los botones. Para ello puedo jugar con la propiedad BorderStyle en sus dos posiciones (bsSingle y bsNone). y con este trozo de código:

Código:
void __fastcall TMainForm::ChartMouseMove(TObject *Sender,
      TShiftState Shift, int X, int Y)
{
 if (FlagFin == 1)
 {
  this->Chart->BorderStyle = bsSingle;
 }
}


cuando posiciono el ratón por cualquier superficie del TChart, el TChart hace el efecto de hundirse eso está bien.

Lo que no consigo es que cuando deje de posicionar el puntero del ratón en la superficie del TChart, el TChart vuelva como estaba antes eso se consigue con BorderStyle = bsNone pero no sé cómo hacer que se detecte que el puntero del ratón no esté en la superficie del TChart.
¿Alguna idea? Confused

Gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Si no necesitas algo muy complejo podrías usar lo siguiente en el evento OnMouseMove del TChart:
Código:
    TChart* control = static_cast<TChart*>(Sender);
    TRect rect(control->ClientRect);

    if (PtInRect(rect, Point(X, Y))) {
        if (GetCapture() != control->Handle) {
            SetCapture(control->Handle);
            // Aquí hacemos lo necesario cuando el cursor ENTRA en el control
            control->BevelOuter = bvLowered;
            control->BevelWidth = 2;
            control->Color = TColor(0xE1F0F0);
        }
    } else {
        ReleaseCapture();
        // Aquí hacemos lo necesario cuando el cursor SALE del control
        control->BevelOuter = bvRaised;
        control->BevelWidth = 1;
        control->Color = clBtnFace;
    }
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias _Leo! Esto es perfecto, perfectísimo!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.