| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Lun 26 Jul, 2004 1:47 pm Asunto: Incorporar elementos a StatusBar |
|
|
¿Se puede poner un elemento de forma dinámica en un panel de un StatusBar? Me explico: Tengo una barra de estado con tres paneles. En el primero está el nomrbe del usuario, en el segunod la fecha y en el tercero me gustaría poner un reloj. Pensaba usar el que viene con LMD Tools (TLMDClock).
Hasta ahora había usado un barra de progreso, pero ocupando toda la barra:
| Código: | TLMDProgressFill *Barra = new TLMDProgressFill(this);
Barra->Parent = StatusBar1; |
pero si intento hacer algo similar con un elemento metiéndolo dentro de un panel
| Código: | TLMDClock *Reloj = new TLMDClock(this);
Reloj->Parent = StatusBar1->Panels->Items[0]; |
me da un error de compilación E2034 Cannot convert "TStatusPanel" to "TWinControl" _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Lun 26 Jul, 2004 4:00 pm Asunto: |
|
|
Hola Angel!
Sino recuerdo mal no es posible especificar el panel en el que quieres insertar el elemento. Es decir, únicamente puedes especicifar la barra de estado y luego jugar con su propiedad left
| Código: |
ProgressBar->Parent=StatusBar;
ProgressBar->Left=StatusBar->Panels->Items[0]->Width+2;
ProgressBar->Width=StatusBar->Panels->Items[1]->Width-2;
|
Espero que te valga |
|
| Volver arriba |
|
 |
Enrique Master


Registrado: 13 Ago 2002Mensajes: 261Ubicación: La Vila Joiosa (Alacant)
|
Publicado: Lun 01 Nov, 2004 11:47 pm Asunto: |
|
|
Hola, con vuestra ayuda he conseguido mostrar el TProgressBar (barraProgreso) en el 2º panel de mi TStatusBar (sbPrincipal).
La barraProgreso la uso para indicar el progreso de análisis de ciertos ficheros que leo línea a línea y que a menudo tienen más de un millón de líneas. Para no bloquear mi aplicación con la lectura del fichero la hago mediante un hilo aparte (segundoHilo), y voy actualizando en una variable global la posición actual del cursor dentro del fichero, esto me permitirá ir dibujando en la barraProgreso el % analizado del fichero.
Mi barraProgreso cambia su Position en el evento OnTimer de un TTimer, y es ahí donde la he declarado | Código: | static TProgressBar *barraProgreso = new TProgressBar(sbPrincipal);
barraProgreso->Parent = sbPrincipal; | , pues he probado a declararla como private en el formulario principal o como variable global al principio del cpp pero me daba errores. Aparentemente funciona bien.
El problema lo tengo cuando finaliza la ejecución del hilo, pues aunque ejecute sbPrincipal->Invalidate(); se sigue mostrando la barraProgreso. He indagado algo y parece que haciendo | Código: | barraProgreso->Parent = NULL | puedo borrar la barraProgreso de la barra de estado, pero ¿dónde debería colocar esta última asignación?
¿Hay otro modo mejor de hacer lo que ya hago?
Gracias. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
|