Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
¿Es posible hacer que XPManifest sea opcional?

Hola amigos

Estoy en el proceso de crear una aplicación que deseo sea ejecutada en cualquier versión de windows y que asigne la apariencia que corresponda, se que si se usa el XPManifet los programas se verán con la apariencia de XP, sin embargo buscando en el foro encontré esta respuesta de roman:

Cita:
Empezado por roman
Así es. Además, cualquier aplicación compilada con el XPManifest no podrá ejecutarse en ningún otro sistema operativo que no sea Windows XP.

// Saludos
Será que debo hacer dos versiones del programa para que dependiendo de la versión de Windows ejecutar la correcta?

O de plano mejor me quito de problemas y no uso el XPManifest

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #2  
Antiguo 10-04-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Eso suena medio extraño. Creo que el "XPManifiest" se ignora si no se soporta. De hecho alguna de mis aplicaciones me consta que se ejecuta en Windows 98, por ejemplo, y no hay problema en ese sentido. No sé si Román se refería a otra cosa... o puedo estar equivocado.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 10-04-2008
Avatar de Black_Ocean
Black_Ocean Black_Ocean is offline
Miembro
 
Registrado: nov 2006
Posts: 128
Poder: 18
Black_Ocean Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Hola amigos

Estoy en el proceso de crear una aplicación que deseo sea ejecutada en cualquier versión de windows y que asigne la apariencia que corresponda, se que si se usa el XPManifet los programas se verán con la apariencia de XP, sin embargo buscando en el foro encontré esta respuesta de roman:



Será que debo hacer dos versiones del programa para que dependiendo de la versión de Windows ejecutar la correcta?

O de plano mejor me quito de problemas y no uso el XPManifest

Salud OS
Eso es erróneo amigo, una aplicación que posea un recurso interno de manifest funcionará en todas las plataformas (desde Windows 95 hasta Vista) pero, la única diferencia que cuando se ejecute en versiones de Windows 2000 o inferior se verá con un estilo visual normal plomo. Lo mismo ocurriría en el caso que el archivo manifest fuera externo (proyecto.exe.manifest). Windows XP y superior se encarga automáticamente de reconocer este recurso interno (si es que lo trae) en el ejecutable y extraerlo para aplicar los estilos visuales a los objetos. En resumen, a esto puntual que preguntabas, el manifest no causará ningún problema o conflicto en versiones antiguas de Windows (obviando Windows 3.1 y 3.11 que son plataformas de 16 bits).

Con respecto a tu otra pregunta, es posible aplicar el estilo visual a objetos por separado, para que sólo algunos objetos del formulario reconozcan el estilo visual de XP y Vista, y los restantes se vean con apariencia normal. Por ejemplo, los objetos/componentes de LMDTools tienen esta cualidad, desde la propiedad CtlXP activas/desactivas un componente X para que reconozca o no el estilo visual.

Espero haberte ayudado.

Saludos y buena suerte y comenten =)

Última edición por Black_Ocean fecha: 10-04-2008 a las 03:20:30.
Responder Con Cita
  #4  
Antiguo 10-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Muchas gracias por sus respuestas, con eso ya me siento comodo para usarlo, por desgracia no habia podido probarlo ya que no cuento con versiones de Windows que no sean XP.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 10-04-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Bueno, aunque dec y Black_Ocean ya aclararon la cuestión, debo comentar que de todas formas acabe de hacer la prueba:

Características "relevantes" del programa para este caso:
- Compilado con D2007.
- Tiene el XPManifest.

Sistemas operativos en los que fue probado:
- Windows Vista.
- Windows XP.
- Windows 98.

No tuve problema alguno, en ninguno de los sistemas operativos mencionados.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #6  
Antiguo 10-04-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Aunque creo que la duda ha sido satisfecha me parece que la pregunta estaba orientada a otra cosa. Si no fue así dejo mi post como una aclaración adicional con las siguientes APIs;

Código Delphi [-]
function EnableTheming(fEnable: LongBool): Cardinal; stdcall; external 'uxtheme';
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 EnableTheming(False);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
 EnableTheming(True);
end;

La API EnableTheming va a habilitar o deshabilitar los temas de XP, lo que significa que al presionar el Button1, el S.O. quedará como el Win2k

Código Delphi [-]
function SetWindowTheme(hWnd: Cardinal; Optional, pszSubAppName: PChar): Cardinal; stdcall; external 'uxtheme';
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 SetWindowTheme(Button1.Handle, ' ', ' ');
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
 SetWindowTheme(Button1.Handle, nil, nil);
end;

SetWindowTheme va a tener el mismo efecto que la anterior API, con la diferencia que va a actuar sobre un solo objeto, el cual puede ser una ventana en particular o una lista o un boton

Obviamente ésto, aplicable a los SOs a los que M$ todavia da soporte a la fecha

Saludos
Responder Con Cita
  #7  
Antiguo 10-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Gracias amigo jhonny, con eso se reafirma mi sensación de tranquilidad

Amigo cHackAll, como siempre me es muy grato ver tus post de las API's de windows y aunque mi duda ya ha quedado satisfecha, se que esto que colocas me va a sacar de algún imprevisto

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Creación de iconos opcional en InstallShield MDSato Varios 1 25-04-2007 11:11:54
Es posible hacer esto? MaMu Gráficos 4 18-01-2007 08:00:42
Es posible hacer...? merlin SQL 1 20-01-2004 19:46:46
es posible hacer mosaico con una imagen jpcancino Gráficos 7 08-01-2004 09:32:08


La franja horaria es GMT +2. Ahora son las 02:04:30.


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