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 13-11-2008
Alliance Alliance is offline
Miembro
 
Registrado: may 2008
Posts: 29
Poder: 0
Alliance Va por buen camino
Question Aplicacion con estilo clasico

Hola, tengo una duda y es que no es si es posible, y es que me gustaria saber si es posible hacer una aplicacion con estilo clasico, es decir, forsar a la aplicacion que se ejecute con estilo clasico, sin importar el theme que se este usando, por ejemplo, aveis visto el dev-pascal, este se ejecuta con estilo clasico, sin importar el tema que se este usando.

es posible hacer algo asi, como se hace eso, creando algun archivo manifest personalizado ??

pido sujerencias y comentario que me ayuder hacerlo posible, no pido sulucion directa, si alguien sabe como hacerlo, estere muy agradecido.

siento tener que preguntar mucho por aqui, no puedo evitarlo
Responder Con Cita
  #2  
Antiguo 13-11-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Hola
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #3  
Antiguo 13-11-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por cHackAll Ver Mensaje
Hombre de pocas palabras pero certero
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 13-11-2008
Alliance Alliance is offline
Miembro
 
Registrado: may 2008
Posts: 29
Poder: 0
Alliance Va por buen camino
Cita:
Empezado por cHackAll Ver Mensaje
Gracias hermano por tu respuesta, pero yo no quiero que el s.o cambie su aspecto, si no el pograma, es decir, currer mi programa con el estilo clasico de windows, mientras yo sigo usando el theme xp azul de sistema operativo, etc..

no se si me entienden todavia

Responder Con Cita
  #5  
Antiguo 13-11-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Prueba con: click derecho en el ejecutable->Properties->tab Compatibility y ahi fijas como quieres que corra, estilo win95,2000,me,xp o por colores, no sé si eso es lo que buscas
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #6  
Antiguo 13-11-2008
Alliance Alliance is offline
Miembro
 
Registrado: may 2008
Posts: 29
Poder: 0
Alliance Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Prueba con: click derecho en el ejecutable->Properties->tab Compatibility y ahi fijas como quieres que corra, estilo win95,2000,me,xp o por colores, no sé si eso es lo que buscas
si precisamente eso, si seleccionamos la opcion de deshabiliar el tema visual para el programa, cuando lo ejecutamos se vera en modo clasico que es lo que queria, ahora biien, si copiamos el ejecutable, a otro sitio, esa configuracioin se pierde, por lo tanto quisiera saber como hacerlo mediente codigo, para que el programa se ejecute en ese modo, sin imporar donde lo lleves, osea (portables, pero siempre con el tema visual clasico), a eso me referia cuando decia forsar la aplicacion a usar el tema clasico de windows, etc..

como se puede hacer eso mediente codigo, alguna sujerencia.
Responder Con Cita
  #7  
Antiguo 14-11-2008
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Que yo sepa, para que una aplicación Windows pueda utilizar los estilos XP hay que incrustarle un archivo XML. Simplemente con no incrustarle dicho archivo, el programa se mostrará con el estilo normal. Creo que se puede editar en las opciones de compilación.

Otra forma sería utilizar un compilador más antiguo que el propio Windows XP.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #8  
Antiguo 14-11-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Código Delphi [-]
function SetWindowTheme(hWnd: Cardinal; Optional, pszSubAppName: PChar): Cardinal; stdcall external 'uxtheme';
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 SetWindowTheme(Handle, ' ', ' ');
end;

Cita:
Empezado por Alliance Ver Mensaje
...no se si me entienden todavia ...
no, no entiendo!
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #9  
Antiguo 14-11-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Ñuño Martínez Ver Mensaje
Simplemente con no incrustarle dicho archivo, el programa se mostrará con el estilo normal.
Yo pensaba lo mismo, pero aunque es cierto que los controles se ven al estilo clásico, el marco de la ventana sigue viéndose según el tema escogido en el sistema.

Lo que pone el compañero cHackAll, usando SetWindowTheme, realmente pone incluso el borde al estilo clásico. Aunque, no sé porqué, a mi no me fucionó poniendo

Código Delphi [-]
SetWindowTheme(Handle, nil, nil);

sino

Código Delphi [-]
SetWindowTheme(Handle, '', '');

De todas formas, hasta donde probé ayer, si aplicamos SetWindowTheme a la ventana, el cambio no aplica a todos los controles, hay que aplicar recursivamente la función. Pero, ahí me atoré, no logro que el cambio se vea sino hasta que oculto la ventana y vuelvo a mostrarla. Probé con Update, Refresh, Invalidate y todos los análogos pero nada. Funciona con los TButton, pero otros controles como TEdit sólo hasta que se redibuja la ventana.

Ojalá cHackAll nos de alguna luz sobre esto.

// Saludos
Responder Con Cita
  #10  
Antiguo 14-11-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por roman Ver Mensaje
...Aunque, no sé porqué, a mi no me fucionó poniendo

Código Delphi [-]
SetWindowTheme(Handle, nil, nil);

sino

Código Delphi [-]
SetWindowTheme(Handle, '', '');

...
Claro;

Cita:
Empezado por cHackAll Ver Mensaje
...lo que significa que al presionar el Button1, el S.O. quedará como el Win2k...

Código Delphi [-]
//... 
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  SetWindowTheme(Button1.Handle, ' ', ' ');
end;

...
Cita:
Empezado por roman Ver Mensaje
...De todas formas, hasta donde probé ayer, si aplicamos SetWindowTheme a la ventana, el cambio no aplica a todos los controles, hay que aplicar recursivamente la función...
Mi no entender!

Caso 1; quieren una aplicacion con barra de titulo XP y el resto clásico? pues no hagan nada

Caso 2; quieren una aplicacion con 100% estilo clásico? simplemente NO incluyan el manifest y como es de suponerse;

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

Caso 3; quieren una aplicacion con 100% estilo clásico (y aparte quemarse las pestañas)? usen SetWindowTheme recursivamente... para sufrir más podemos extender el hilo con un buen numero de formas para hacerlo

Caso 4; quieren intercambiar estilos? API EnableTheming, tambien les puede servir para Caso 2.

etc... etc.

Cita:
Empezado por roman Ver Mensaje
...Ojalá cHackAll nos de alguna luz sobre esto...
Quien definitivamente necesita una luz sobre "ésto" soy yo!
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #11  
Antiguo 14-11-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, yo en realidad no quiero nada. Sólo estaba tratando de responderle al compañero.

Tu caso 2 es más que suficiente si quiere el estilo clásico desde el principio, pero si quiere convertir -en ejecución- de XP a clásico, pues habrá que quemarse las pestañas

// Saludos
Responder Con Cita
  #12  
Antiguo 14-11-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Bueno, yo en realidad no quiero nada. Sólo estaba tratando de responderle al compañero.
jejeje, reconozco perfectamente tu "posición" en este caso amigo roman, disculpa si no di el mensaje adecuado

Con respecto al Caso 3 (Cruft);

Código Delphi [-]
procedure EnumControls(Control: TControl);
var Index: Integer;
begin
 with TWinControl(Control) do
  begin
   for Index := 0 to ControlCount - 1 do
    EnumControls(Controls[Index]);
   SetWindowTheme(Handle, '', '');
   if Visible then
    begin
     ShowWindow(Handle, SW_HIDE);
     ShowWindow(Handle, SW_SHOW);
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 EnumControls(Self);
end;

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx

Última edición por cHackAll fecha: 14-11-2008 a las 21:11:53. Razón: +Cruft
Responder Con Cita
  #13  
Antiguo 01-12-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
Yo tenia ese problema y exceptuando los (bitbtn) todo funciono a la perfeccion, solamente le desmarque el check que tiene en Opciones del proyecto / Application / Enable Runtime Themes y listo.
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
Actualizador de aplicacion estilo avg capo979 Internet 3 10-11-2008 23:10:43
Uno de gallegos (clasico) boreg Humor 22 21-04-2008 15:06:09
Un partido Clasico jcarteagaf La Taberna 1 18-03-2008 17:27:14
Como mover una aplicacion al estilo winamp huiculi Varios 2 13-04-2007 21:47:20
Aplicación estilo Systemworks sitrico Varios 0 27-10-2005 23:04:14


La franja horaria es GMT +2. Ahora son las 16:33:58.


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