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 

XP Manifest
Ir a página 1, 2  Siguiente
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: XP Manifest Responder citando

Hola, he intentado usar el XP Manifest para Builder 5 y me da error.
Lo he tomado del foro en https://cppbuilder.es/viewtopic.php?t=10062. Tengo la impresión de que es una versión para BCB 6. ¿Alguien sabe si existe una versión para BCB 5?

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

El archivo de recursos que hay que usar es el mismo para todas las versiones (incluso en la versión 1). Que error exactamente te da ?
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

¿hay alguna manera de que ter sirva a parte de para los common control para otros controles distintos?

Por ejemplo para que te transforme un TBitButton.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

ZHAX1 escribió:
para que te transforme un TBitButton.

Los controles que llevan el estilo OWNERDRAW, que es el caso de TBitBtn (BS_OWNERDRAW) como mismo dice su traducción son pintados por el propietario y no por el sistema operativo. Por tanto habría que modificar sus eventos de pintado para adaptarlo al estilo visual del XP/Vista. (Las versiones posteriores a la 6 ya tienen estos componentes actualizados visualmente)

Más detalles:
https://cppbuilder.es/viewtopic.php?t=10414
https://cppbuilder.es/viewtopic.php?t=11668
https://cppbuilder.es/viewtopic.php?t=12431
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias _Leo por responder.

El error me da no siempre, pero he comprobado que si en el Formulario incluyo un TListView en modo vsReport y con columnas definidas, tras compilar y ejecutar me da un error sin dar tiempo a que aparezca el Form en ejecución.

En otras ocasiones el programa arranca y peta al pasar el ratón por encima, saltando, entonces el debuger en asm (como si pulsara Ctl-C). Siempre con un ListView vsReport y Columnas definidas en tiempo de diseño.





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

Había algún problema con algunos componentes en las versiones viejas, uno de ellos el TListView (no recuerdo si al usar imágenes o al no usarlas, en caso de que lo tengas sin imágenes prueba añadiendo imágenes en la cabecera etc..), con TStatusBar (algún problema de pintado..), TToolBar, etc.. pero hace tanto tiempo que no recuerdo exactamente los detalles. La mayoría se solucionaban más o menos fácilmente.

Algunos de los problemas solo ocurrían al ejecutar el código desde el IDE, pero desde fuera funcionaban bien..

También puedes echarle un vistazo a unos componentes gratuitos que salieron por esa epoca y solucionaban muchos de esos problemillas:

http://www.soft-gems.net/index.php?option=com_content&task=view&id=17&Itemid=33
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

...Bueno, ya había observado que el error está si lo ejecuto desde el IDE, aunque deshabilite el debugger. ¿Existe alguna manera de saber en tiempo de ejecución si se hace desde el IDE?, y si es así, ¿se puede detener el recurso para que no pete?. Esto facilitaría la labor de programación y depuración del ejecutable, sin tener que activar o no el recurso cada vez.

Otra cosa, cuando dices:
Cita:
La mayoría se solucionaban más o menos fácilmente.

¿Te refieres a lo de quitar el recurso del proyecto mientras se depura, o a modificar los componentes afectados?.

He notado que el error se produce al pasar el mouse sobre las cabeceras de las columnas del ListView (diseñadas el tiempo de diseño o en ejecución). He tratado de debuggear antes del error, capturando el WM_MOUSEMOVE, tanto en el evento del ListView como el mensaje del Form, pero el error se produce antes. Lo que no he hecho es capturarlo de la ventana del ListView sobrecargando:
Código:
virtual void __fastcall ListView::WndProc(Messages::TMessage &Message);
; Quizás esto me lleve a algo.

En fin es una lata que no funcione bien en mi BCB 5 y me gustaría encontrar una solución medianamente aceptable y a ser posible automatizarla.

Muchas gracias _Leo.

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

Bueno, mi gozo en un pozo. He probado en otro PC y el error se produce aunque se ejecute fuera del IDE. O encuentro una solución para modificar el control o no me sirve en BCB 5.

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

_Leo escribió:
... (Las versiones posteriores a la 6 ya tienen estos componentes actualizados visualmente)...


Creo que en base a esta respuesta de _Leo, lo mas recomendable es usar una version un poco mas actualizada del BCB digamos la 6 pues al parecer las compilaciones echas con la 5 no estan funcionando, recuerdo que desde que se ha puesto el archivo manifest, aqui en el foro no pude probarlo en la versión 5 del BCB, siempre lo hice con la version de BCB6 y siempre he tenido buenos resultados, comentarte que los programas viejos los he ejecutado en Windows Vista y estos tambien toman el Aspecto del Windows Vista, sin la necesidad de volver a recompilar en alguna versión posterior a la BCB6, pero como te comento, lo mas viable es que los compiles en la Versión 6.
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Gracias Cesar por tu respuesta. No me apetece mucho cambiar de versión, eso me obliga a algunos cambios, pero posiblemente esa sea la mejor opción, y quizás me resuelva otros problemas derivados del uso de una versión tan antigua.

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

Bien. Estoy probando con BCB 6. Parece que también aparecen problemas, en concreto con los botones ToolButton de las barras de botones. Si se coloca Style en tbsCheck, simplemente no funciona el botón, pierde ese estilo.

¿Teneis experiecia en esto?. ¿Lo habeis solucionado?.

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

escafandra escribió:
Estoy probando con BCB 6. Parece que también aparecen problemas, en concreto con los botones ToolButton de las barras de botones...

En la versión 6 hay menos problemas, pero también hay algunos detallitos también..

Lo puedes solucionar poniendo las siguientes líneas en el constructor del Form.. por ejemplo, suponiendo que están contenidos en una barra de botones llamada "ToolBar1":
Código:
    for (int i = 0; i < ToolBar1->ButtonCount; i++)
        ToolBar1->Buttons[i]->ControlStyle >> csCaptureMouse;


Lo del TListView (en las versiones 4 y 5) una forma de solucionarlo sencilla es asociar imágenes a las cabeceras de las columnas. Con eso se soluciona lo del error y también lo de que se pare al ejecutarlo desde el IDE.. (aunque sea una imagen muy pequeña y con todos los pixels transparentes)

Los componentes que te decía anteriormente corrigen todos esos pequeños detalles, incluido lo del TListView y lo de este problema... aunque no los uses son interesantes para ver el código fuente y ver como han solucionado cada detallito...
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Perfecto, _Leo. Voy a probar lo que me comentas. Muchísimas gracias.

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

_Leo escribió:
Lo puedes solucionar poniendo las siguientes líneas en el constructor del Form.. por ejemplo, suponiendo que están contenidos en una barra de botones llamada "ToolBar1":
Código:
    for (int i = 0; i < ToolBar1->ButtonCount; i++)
        ToolBar1->Buttons[i]->ControlStyle >> csCaptureMouse;


Bueno, en cuanto a los botones, con tu truco ya se visualizan pulsados o no pulsados de forma enclavada si Style == tbsCheck.

Pero al mirar el estado del boton Button->Down no cambia nunca ShockedShocked , es igual que se pulse o que no.

Todavia no he visto con detenimiento los controles de los que me hablabas.

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

Podrías poner algo como la siguiente línea en el OnClick del botón:

ToolButton1->Down = !ToolButton1->Down;

o bien añadimos lo siguiente en el constructor del Form en lugar del código de más arriba.. lo he modificado para que haga el cambio en todas las TToolBar y en todos los botones que corresponda:
Código:
for (int c = 0; c < ControlCount; c++)
{
    TToolBar* tb = dynamic_cast<TToolBar*>(Controls[c]);
    if (!tb) continue;

    for (int i = 0; i < tb->ButtonCount; i++)
    {
        TToolButton* btn = tb->Buttons[i];
        btn->ControlStyle >> csCaptureMouse;
        if (btn->Style == tbsCheck)
        {
            struct Local : public TComponent {
                TNotifyEvent EventoOriginal;
                void __fastcall Click(TObject* Sender)
                {
                    TToolButton* bt = static_cast<TToolButton*>(Sender);
                    bt->Down = !bt->Down;
                    if (EventoOriginal) EventoOriginal(Sender);
                }
                __fastcall Local(TComponent* Owner) : TComponent(Owner) {}
            };

            Local* local = new Local(btn);
            local->EventoOriginal = btn->OnClick;
            btn->OnClick = local->Click;
        }
    }
}
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.