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
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
  #2  
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
  #3  
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
  #4  
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
  #5  
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
  #6  
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
  #7  
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
  #8  
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 14:06:21.


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