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-05-2016
xangiesaurx xangiesaurx is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 57
Poder: 9
xangiesaurx Va por buen camino
Cambiando Temas de la forma

Hola de nuevo a todos, esta vez vengo a preguntarles acerca del cambio de temas o skins en la forma, la cuestión es que tengo una forma principal en la que el usuario puede escoger de una lista un tema para aplicarle, pero lo que quiero hacer, es que al darle click a un botón una segunda forma se abre, pero esta no entra con el tema seleccionado.
Alguien sabe como puedo hacer eso?
Muchas gracias a todos por su atención y ayuda brindada
Responder Con Cita
  #2  
Antiguo 13-05-2016
rocksoft rocksoft is offline
Miembro
NULL
 
Registrado: may 2016
Posts: 71
Poder: 8
rocksoft Va por buen camino
Buenas xangiesaurx,

no se que tipo de motor de skins usas, pero independientemente de esto asumo que no le habras dicho a la Form2 que use el Skin que tiene la Form1 verdad?

En caso de ser un motor de skins automatico, puede que requiere un refresh o algo por el estilo
Responder Con Cita
  #3  
Antiguo 13-05-2016
xangiesaurx xangiesaurx is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 57
Poder: 9
xangiesaurx Va por buen camino
Hola rocksoft, gracias por tu pronta respuesta, para el cambio de temas estoy usando TStyleManager (con Vcl.Themes y Vcl.Styles).
Perdón, me equivoque, le puse que era otro form, pero es un proyecto aparte y quiero que cuando se le mande llamar con la accion del boton, obtenga el mismo tema que la aplicación que lo llamó.
Responder Con Cita
  #4  
Antiguo 13-05-2016
rocksoft rocksoft is offline
Miembro
NULL
 
Registrado: may 2016
Posts: 71
Poder: 8
rocksoft Va por buen camino
Hola xangiesaurx,

por lo que entiendo, tienes dos aplicacciones independientes la una de la otra, verdad?

en este caso tendras que guardar el valor numerico o nombre del skin o en la regitry de windows o en un archivo ini.

asi cuando cambies el skin guardas el valor y cuando invoques la otra aplicaccion que lea el valor y listo

espero que sea lo que buscas
Responder Con Cita
  #5  
Antiguo 13-05-2016
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
Sólo comentar que la traducción correcta de form es formulario. Lo digo porque de primeras pensé que estabas utilizando algún paquete para dibujar figuras geométricas (shapes) que usaban algún sistema de estilos tipo CSS.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #6  
Antiguo 13-05-2016
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
Sólo comentar que una forma también es un formulario (acepción número diecisiete).
-
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #7  
Antiguo 13-05-2016
rocksoft rocksoft is offline
Miembro
NULL
 
Registrado: may 2016
Posts: 71
Poder: 8
rocksoft Va por buen camino
Hmm ahora creo que me raye y perdí el hilo...
Responder Con Cita
  #8  
Antiguo 13-05-2016
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
Cita:
Empezado por TOPX Ver Mensaje
Sólo comentar que una forma también es un formulario (acepción número diecisiete).
-
He de confesar que nunca profundizo tanto en los diccionarios. Por otro lado nunca escuché o leí tal uso salvo alguna vez en este mismo foro. Por eso pensé que se trataba del mismo caso que grilla.

De cualquier forma, hago mutis por el foro y ruego me disculpen.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #9  
Antiguo 16-05-2016
xangiesaurx xangiesaurx is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 57
Poder: 9
xangiesaurx Va por buen camino
Gracias a todos por sus respuestas.
Si, así es rocksoft, son aplicaciones independientes, intentaré hacer como me comentas de guardarlo en un archivo ini y les comento como me va.

Y de nuevo, muchas gracias por su ayuda.
Responder Con Cita
  #10  
Antiguo 16-05-2016
rocksoft rocksoft is offline
Miembro
NULL
 
Registrado: may 2016
Posts: 71
Poder: 8
rocksoft Va por buen camino
Hola xangiesaurx,

no creo que tengas problemas, si requieres un ejemplo pon Delphi ini y te saldan a montones, eso si no te olvides de usar

Código Delphi [-]
uses
  ...
  , IniFiles
Responder Con Cita
  #11  
Antiguo 16-05-2016
xangiesaurx xangiesaurx is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 57
Poder: 9
xangiesaurx Va por buen camino
rocksoft, gracias.
Ahorita ando trabajando con eso, haciendo unas pruebas a ver que tal va.
Si justamente tuve que agregar en los uses IniFiles :P

Cualquier cosa o duda, paso a dejarla por aquí
Gracias
Responder Con Cita
  #12  
Antiguo 17-05-2016
xangiesaurx xangiesaurx is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 57
Poder: 9
xangiesaurx Va por buen camino
Hola a todos, vengo con malas noticias, trabajé con los archivos ini y me funciono perfectamente todo, pero en el trabajo al hacer la junta en la que vemos como avanzamos, me comentaron que no quieren que se creen archivos para manejar el cambio de temas, así que no se si se tienen alguna otra idea que me pueda ayudar?
Pensé que tal vez a través de los registros, pero acepto sugerencias que me ayuden a realizar este trabajo de manera más fácil.
Gracias
Responder Con Cita
  #13  
Antiguo 17-05-2016
rocksoft rocksoft is offline
Miembro
NULL
 
Registrado: may 2016
Posts: 71
Poder: 8
rocksoft Va por buen camino
Hola xangiesaurx,

lo que te queda es enviar al ejecutar el exe un parametro.

haber si te ayuda este link

otra opcion seria, que cada vez que cambies de estilo, le cambies el nombre al ejecutable, myApp_rojo, myApp_azul, al cargar el app lees el nombre y aplicas el estilo, o usando numeros. Pero tampoco es una buena solucion.

tambien podrias crear un soquet, lo que no tiene gran sentido para una cosa tan pequeña

o usas el componente TTelepatia_o_BolaDeCristal (esto es broma ehh)
Responder Con Cita
  #14  
Antiguo 17-05-2016
xangiesaurx xangiesaurx is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 57
Poder: 9
xangiesaurx Va por buen camino
Hahahaha, muchas gracias rocksoft, intentaré con el parámetro, a ver que tal me va, igualmente cualquier cosa que pase, vendré a molestarlos de nuevo :P
Gracias una vez más por el apoyo
Responder Con Cita
  #15  
Antiguo 19-05-2016
xangiesaurx xangiesaurx is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 57
Poder: 9
xangiesaurx Va por buen camino
Ok, creo que estoy haciendo algo mal o de plano ya me complique de más y llegue a un bloqueo mental

Básicamente tengo en mi aplicación A la siguiente línea de código en la parte donde ejecuto la aplicacion B

Código Delphi [-]
 SendMsgToReceiver('TMainMenu','Capturas');

Y en la aplicacón B (que es quien recibe el mensaje)

Código Delphi [-]
procedure TMainMenu.WMGetData(var Msg: TWMCopyData);
var
  Message: string;
begin
  Message:= Pchar(Msg.CopyDataStruct.lpData);
  if Message = 'Capturas' then
  AddStylesMenu;

Donde AddStylesMenu es donde aplico los Temas. Ahora, el problema es que para generar la ventana utilizo:

Código Delphi [-]
procedure TMainMenu.FormCreate(Sender: TObject);

Por lo que todo lo que hago dentro de WMGetData no se aplica por que no esta dentro del FormCreate, como puedo solucionar esto?
Responder Con Cita
  #16  
Antiguo 20-05-2016
xangiesaurx xangiesaurx is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 57
Poder: 9
xangiesaurx Va por buen camino
Ok, parece que haciendo eso se me esta complicando mucho, así que que me comentaron que existe una forma de hacer eso a través de los registros, que el tema o skin se queda almacenado en el registro y simplemente tendría que leerlo para aplicárselo a mi aplicación, la cuestión es que nunca eh manejado registros desde mis aplicaciones, alguien podría darme una introducción acerca de esto?
Gracias
Responder Con Cita
  #17  
Antiguo 30-05-2016
xangiesaurx xangiesaurx is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 57
Poder: 9
xangiesaurx Va por buen camino
Hola, vengo a dejarles la solución que aplique para este problema, por si a alguien más en un futuro le sirve.

Básicamente, lo que hace este código es buscar en donde se encuentran los temas/skins el registro del último skin aplicado a la aplicación, lo jala y lo aplica.

Código Delphi [-]
  StyleServices.OnThemeChange:=OnThemeChange;

  SearchDir := 'Direccion del folder' + PathDelim;
  if DirectoryExists(SearchDir) then begin
    if FindFirst(SearchDir+'*.*',
                faAnyFile - faDirectory,
                searchResults) = 0 then
   repeat
     try
       if TStyleManager.IsValidStyle(
            SearchDir+searchResults.Name) then
          TStyleManager.LoadFromFile(
             SearchDir+searchResults.Name);
     except
       OutputDebugString('Not valid style file');
     end;
   until FindNext(searchResults) <> 0;
  end else
    OutputDebugString('Theme`s folder does not exist');
 // Sort the styles using a StringList
 SLStyles := TStringList.Create;
 try
   SLStyles.Duplicates := TDuplicates.dupIgnore;
   for Style in TStyleManager.StyleNames do
     SLStyles.Add(Style);
   SLStyles.Sort;

   R:=TRegistry.Create;
   try
     if R.OpenKey(PrgKey,false) then
     begin
       try
         S:=R.ReadString('ThemeStyle');
         TStyleManager.TrySetStyle(S,false);
       except
       end;
     end;
   finally
      FreeAndNil(R);
   end;

 finally
   SLStyles.Free;
 end;
Responder Con Cita
  #18  
Antiguo 30-05-2016
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
Cita:
Empezado por xangiesaurx Ver Mensaje
Hola, vengo a dejarles la solución que aplique para este problema, por si a alguien más en un futuro le sirve.
Estupendo.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #19  
Antiguo 30-05-2016
rocksoft rocksoft is offline
Miembro
NULL
 
Registrado: may 2016
Posts: 71
Poder: 8
rocksoft Va por buen camino
Buenas xangiesaurx,

hipoteticamente que pasaria si tienes dos aplicaciones que usan skins? siempre que cambien en una aplicacion te cambia el skin en las dos no?
Responder Con Cita
  #20  
Antiguo 30-05-2016
xangiesaurx xangiesaurx is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 57
Poder: 9
xangiesaurx Va por buen camino
Cita:
Empezado por rocksoft Ver Mensaje
Buenas xangiesaurx,

hipoteticamente que pasaria si tienes dos aplicaciones que usan skins? siempre que cambien en una aplicacion te cambia el skin en las dos no?
Así es, ya que el código busca cual fue la última skin que se uso y lo aplica a la aplicación que se va abriendo.
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
Cambiando un string Soa Pelaez Varios 2 27-03-2016 03:14:20
cambiando de DBX a MDO Gabriel Conexión con bases de datos 4 09-08-2008 11:49:17
Cambiando a C# y .NET waltergomez La Taberna 10 01-08-2006 02:57:18
Cambiando Servidor a través de un Tcrpe... dunia_lv Impresión 0 28-04-2005 18:17:16


La franja horaria es GMT +2. Ahora son las 22:49:57.


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