FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Responder a un click en un objeto (tImage) mostrado en un tStatusBar
Tengo el siguiente código (de prueba) que me permite usar un tProgresBar y Mostrar Varios tImage dentro de un tStatusBar:
Como pueden ver lo que hago es mostrar una ó más imágenes dentro de un panel de un tStatusBar (segun se seleccionen los tCheckBox) claro que no es la idea de mi aplicación pero es una prueba de lo que quiero hacer: Segun ciertos parametros, aparecerán en el panel de la StatusBar varios iconos (tImage) con información adicional para el usuario. lo que quiero hacer es que si el usuario hace click sobre uno de esos iconos se ejecute el codigo correspondiente. Esto último no es problema (tengo acciones y las lanzo segun el tag del objeto). Lo que sí es un problema es que los tImage no responden al click del ratón. Disculpen lo largo PD Uso Delphi 7 con componentes normales, se que hay por hay algunos tstatusBar especializados pero preferiría usar los normales (no dan tantos problemas )
__________________
Sitrico |
#2
|
||||
|
||||
Cita:
Puedes usar el evento OnClick o mejor aún, el OnMouseDown, que te da las coordenadas X, Y de la posición exacta del ratón sobre la barra donde has hecho click, sólo tienes que comparar esas coordenadas con el rango que ocupa cada una de las imágenes que tienes en la barra de estado. Además para hacerlo más sencillo puedes usar distintos panels en la barra, cada uno para una imagen. Te pongo un ejemplo muy sencillo, en mis programas tengo una barra de estado con una imagen que imita una conexión abierta o cerrada (son dos imagenes y según una variable se cambian), pues bien al hacer clic sobre la posición donde esta la imagen en la barra de estado, el programa ejecuta el evento de conexión, se conecta y me cambia la imagen. Para saber si he pulsado sobre la imagen le pregunto lo siguiente:
La imagen está en el primer panel de la barra y busco si he hecho click entre el principio de la barra (donde empieza el panel: X=0) y el ancho del panel (donde acaba la imagen: Panels[1].width), luego ya según el estado de la variable conecta o desconecta. Espero te sirva de ayuda. Saludos |
#3
|
||||
|
||||
Bicho:
De buenas a primeras parece que por ahi van los tiros (OnMouseDown) Gracias. Pero te comento lo siguiente: En tu código falta verificar el boton pulsado esa es la parte fácil La cosa se me complica Tu comparas el valor sólo el valor:
Este código -así- aplica a los 2 primeros páneles (0 y 1) pero el ejemplo vale. Yo uso el panel 4 (el quinto) para dibujar los iconos, tendría que calcular primero la pocición "left" del panel (¿suma de los width de los anteriores?) pero luego tendría que calcular: 1. cuantos iconos hay 2. posiciones de cada uno ( al leer las coordenadas left y top de las imagenes son 0,0 ) 3. comparar la coordenada X del click con cada uno de los rangos 4 (lo dificil) tengo N imagenes, el click fue en la nro I ¿ cual es la nro I y a que evento debe llamar ? ..... Por cuestiones de presentación no puedo separar las imagenes en paneles individuales (sería lo más facil, tanto que lo voy a considerar seriamente) ¿No habrá alguna manera de pasar el mensaje (click) a las imagenes para que puedan responder directamente? Por ahora voy a hacer algunas pruebas a ver que consigo. Gracias nuevamente. Y todavía dicen que en delphi se hacen los programas "sin escribir una linea de código" Edito para agregar resultados de las pruebas:
Este codigo soluciona los problemas (1, 2 , y 3) sólo aclarar que rPanel4 es una variable privada de tipo tRect que almacena el valor de Rect en el evento:
Solo falta saber cual es el boton: i...
__________________
Sitrico Última edición por sitrico fecha: 16-06-2006 a las 17:57:39. |
#4
|
|||
|
|||
Hola
Soy estudiante de informatica y estoy en un proyecto pero me hace falta encontrar una funcion que me permita adicionar un usuario a los permisos de seguridad de una carpeta y darle acceso total a ese usuario, tengo una pero lo que hace es insertar el usuario que yo le diga y quitar todos los que tiene ademas de no darle permiso ninguno.
Por favor si sabes como hacerlo o de alguien que me pueda ayudar te lo agradecere mucho. Saludos |
#5
|
||||
|
||||
root, de verdad no tengo ni idea, pero trata de iniciar nuevamente el hilo (pregunta) desde el foro Principal -> Varios que seguro alguien puede indicarte (muy probablemente requerirás llamar al API de WINDOWS)
__________________
Sitrico |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TStatusBar | jymy788 | Varios | 4 | 28-09-2007 20:04:10 |
TStatusbar | nenufer | OOP | 3 | 18-05-2006 20:47:13 |
implmentar Articulo click..click..run Crash | ASAPLTDA | OOP | 0 | 21-01-2006 16:16:08 |
Como guardar en una tabla el resultado de un query mostrado en un dbgrid | luisreg | OOP | 3 | 09-10-2003 01:35:01 |
|