Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-02-2017
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Problema con TTaskDialog

Buenas! Estaba finalizando una aplicación y a la hora de usarlo en otro ordenador se me muestra incorrectamente el TTaskDialog Aquí dejo una captura de como se ve


Este es el sistema con el problema: Windows 10 Home x64 Build 14393

He probado con otro Windows 10 y no ocurre ese problema.


Alguna manera de redimensionar manualmente un TTaskdialog?
Alguna otra librería similar para TTaskDialog?

Cualquier consejo es bienvenido, saludos.
Responder Con Cita
  #2  
Antiguo 16-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Que version de Delphi? Estas usando Vcl Styles?

Edito:

En este hilo se trato el tema

Taskdialog no se ve completo

Confirmado, el problema solo se reproduce si usas algun Vcl Style

Codigo:

Código Delphi [-]
uses
  Vcl.Themes;

procedure TForm1.Button1Click(Sender: TObject);
begin
  TaskDialog1.CommonButtons := [];
  TaskDialog1.Buttons.Clear;
  TaskDialog1.MainIcon := tdiInformation;
  TaskDialog1.Title := 'Test TaskDialog';
  TaskDialog1.Text := 'Test TaskDialog.';
  TaskDialog1.ModalResult := mrCancel;
  TaskDialog1.Buttons.Add();
  TaskDialog1.Buttons.Add();
  TaskDialog1.Buttons[0].Caption := 'Salir';
  TaskDialog1.Buttons[0].ModalResult := mrOk;
  TaskDialog1.Buttons[0].Default := True;
  TaskDialog1.Buttons[1].Caption := 'Cancelar';
  TaskDialog1.Buttons[1].ModalResult := mrCancel;
  TaskDialog1.Execute;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  if CheckBox1.Checked then
    TStyleManager.SetStyle('Sterling') // o cualquier vcl style
  else
    TStyleManager.SetStyle('Windows');
end;

Última edición por AgustinOrtu fecha: 16-02-2017 a las 07:30:38.
Responder Con Cita
  #3  
Antiguo 16-02-2017
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
Que version de Delphi? Estas usando Vcl Styles?
XE 10.1
Sí, una aplicación normal de VCL para Windows.
Responder Con Cita
  #4  
Antiguo 16-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Habria que probar si usando los arreglos de Vcl Styles Utils se soluciona

https://theroadtodelphi.com/2014/10/...log-component/

https://github.com/RRUZ/vcl-styles-u...LStylesUxTheme

Synopse tiene su implementacion propia del task dialog:

http://blog.synopse.info/post/2011/0...XP,Vista,Seven
Responder Con Cita
  #5  
Antiguo 16-02-2017
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Mañana seguiré haciendo pruebas con el sistema que me da ese problema...
Ahora mismo no lo tengo a mano.

Estoy usando https://github.com/rruz/vcl-styles-utils
para mejorar visualmente la skin de la aplicación tambien.

No estaba usando los hooks de Vcl.styles.UxTheme
Quizás eso arregle el problema.

Edito: Vcl.Styles.Hooks me añade los hooks de Vcl.styles.UxTheme automáticamente por lo que los estaba usando.

Última edición por Reasen fecha: 16-02-2017 a las 07:59:23.
Responder Con Cita
  #6  
Antiguo 16-02-2017
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Este problema está hablado aquí también:
https://www.clubdelphi.com/foros/showthread.php?t=90906

pero sin solución... Parece que tocará reemplazarlo por un form normal? :/
Responder Con Cita
  #7  
Antiguo 16-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Lo que me extraña es que en el blog de Vcl Style Utils muestra imagenes del Task Dialog con los estilos aplicados

Segun esto el proyecto debe tener estas unidades:

Código Delphi [-]
program Aplicacion;

uses
  ...
  Vcl.Styles.Utils.Forms
  Vcl.Styles.Utils.SysStyleHook
  Vcl.Styles.Utils.SysControls
  Vcl.Styles.Hooks,
 ...
;
Responder Con Cita
  #8  
Antiguo 16-02-2017
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
Lo que me extraña es que en el blog de Vcl Style Utils muestra imagenes del Task Dialog con los estilos aplicados
El problema es que falla en ciertos Windows 10.

Tengo una máquina virtual con Windows 10 y no me da problema pero en otro Windows 10 sí.
Responder Con Cita
  #9  
Antiguo 16-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
No sera por lo de Windows 10 Anniversary? Yo tengo Windows Anniversary build 1607 (14393.693)
Responder Con Cita
  #10  
Antiguo 16-02-2017
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
No sera por lo de Windows 10 Anniversary? Yo tengo Windows Anniversary build 1607 (14393.693)
Build 14393

Sí, justo la misma build que me da el problema,
podrías entonces ver si en tu sistema te falla?

Me estoy descargando/instalando el Windows 10 de esa build en mi VMWare, intentaré encontrar una solución...

Última edición por Reasen fecha: 16-02-2017 a las 08:32:02.
Responder Con Cita
  #11  
Antiguo 16-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
En el segundo mensaje comenté que pude reproducir (creo que edite el mensaje justo cuando respondiste)
Responder Con Cita
  #12  
Antiguo 16-02-2017
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Cita:
Empezado por Reasen Ver Mensaje
Build 14393

Sí, justo la misma build que me da el problema,
podrías entonces ver si en tu sistema te falla?

Me estoy descargando/instalando el Windows 10 de esa build en mi VMWare, intentaré encontrar una solución...
Intentando actualizar mi windows 10 virtual


Intentando instalarlo directamente desde un ISO x86 con esa build


El x64 se instala pero pantalla azul al iniciarse,

Microsoft pls....



En fin, lo que haré será mostrar un dialogo diferente pero con el mismo objetivo/destino cuando detecte que Windows está usando la Build 14393
Responder Con Cita
  #13  
Antiguo 16-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Cita:
Parece que tocará reemplazarlo por un form normal? :/
A mi me parece lo mas logico. Nunca me gusto la idea de tener "funciones sueltas" para invocar cuadros de dialogo. Siempre prefiero esconder este tipo de cosas detras de alguna clase/interface pero va en gustos

De todos modos crear tu propio dialogo utilizando TForm es algo bastante sencillo, y como te lo haces a tu gusto no tenes que andar lidiando con cosas de mas o complicadas

Yo creo que hacer cuadros de dialogo "genericos" y/o "apto para todos" termina complicando mas las cosas
Responder Con Cita
  #14  
Antiguo 16-02-2017
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
A mi me parece lo mas logico. Nunca me gusto la idea de tener "funciones sueltas" para invocar cuadros de dialogo. Siempre prefiero esconder este tipo de cosas detras de alguna clase/interface pero va en gustos

De todos modos crear tu propio dialogo utilizando TForm es algo bastante sencillo, y como te lo haces a tu gusto no tenes que andar lidiando con cosas de mas o complicadas

Yo creo que hacer cuadros de dialogo "genericos" y/o "apto para todos" termina complicando mas las cosas

Mi objetivo es usar los botones especiales con iconos de flechas, barras de progreso y cuadro extensible, lo veo mucho más fácil adaptarlo desde puro código que creando forms.

La aplicación está diseñada para funcionar en sistemas modernos, compilando en x64.
No me hace falta darle compatibilidad a x86.


Ya tengo conocimiento de que el TTaskDialog nativo de Delphi hace que no funcione en Windows XP.

Se adapta a lo que necesito, sino preferiría dejarlo con forms.

Lo unico que me preocupa es esa build de Windows 10 que me causa el problema en TTaskdialog.

Última edición por Reasen fecha: 16-02-2017 a las 19:33:09.
Responder Con Cita
  #15  
Antiguo 16-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Sino la que te queda es sacarle el estilo visual antes de invocar al task dialog y luego volverlo a colocar
Responder Con Cita
  #16  
Antiguo 16-02-2017
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
Sino la que te queda es sacarle el estilo visual antes de invocar al task dialog y luego volverlo a colocar
O detectar que build de Windows usa y reemplazarlo por algo mas simple si se trata de la build con problemas, que por ahora es mi solución.
Responder Con Cita
  #17  
Antiguo 16-02-2017
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
Sino la que te queda es sacarle el estilo visual antes de invocar al task dialog y luego volverlo a colocar
Oh, creí que te referías a la Skin entera, ahora que lo pienso puedo unhookear solo la skin de TTaskdialog cuando se trate de esa build , eso debería bastar!
Responder Con Cita
  #18  
Antiguo 21-02-2017
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Hola, volví a echar un ojo y arreglé el problema de otra manera, usando estas librerías de RRUZ funcionó en esa Build específica (Se ve que faltaban algunas (?))

DDetours,
InstDecode,
Vcl.Styles.UxTheme,
Vcl.Styles.Utils.Forms,
// Vcl.Styles.Utils.Menus , //bug en popups de tlistview, no aplicar
Vcl.Styles.Utils.SysStyleHook,
Vcl.Styles.Utils.SysControls,
Vcl.Styles.Utils.Graphics,
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
TTaskDialog de Builder XE3 Angel.Matilla C++ Builder 9 27-03-2015 19:52:54


La franja horaria es GMT +2. Ahora son las 10:38:59.


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