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 24-07-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Showmessage minimizado

Hola porque algunas veces al usuario le sale la ventana showmessage minimizada y me llama que el sistema esta bloqueado, cuando miro es que solo esta minimizada, hay alguna forma de evitar esto?.
Gracias.
Responder Con Cita
  #2  
Antiguo 24-07-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Un poco difícil contestar sin ver nada de código
Responder Con Cita
  #3  
Antiguo 24-07-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Showmessage

Hola, a veces pasa no siempre y los lineas son asi..

Cita:
if error = 0 then
begin
showmessage('PDF FIRMADO');
Mylabel3d17.Caption := 'Primera Firma Asignada';
Iaeverbutton12.Enabled := False;
end;

a veces el mensaje sale minimizado y me llaman que se bloqueo el sistema, voy a la barra de tareas y el mensaje se encuentra ahi minimizado hago click doy aceptar y sigue funcionando bien.
Gracias.
Responder Con Cita
  #4  
Antiguo 28-07-2014
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 13
engranaje Va por buen camino
Estaría bien saber que versión de delphi utizas y que sistema operativo estas utiilzando. Con versiones antiguas de delphi hablo de delphi 2.0 o delphi 5.0 puede pasar que los showmessages y otras ventanas de la aplicación queden por por detras de ventanas modales o minimizadas en algunos so y funcionen correctamente en otros. Por experiencias propias tiene que ver mas con las versiones de algunas dll, el funcionamiento de la api de windows sobre todo en lo que se refiere al Z order ha cambiado ya algunas veces durante estos años.
No es lo mismo que esto te pase utilizando xe6 y lanzando el ejecutable en un windows 8.1 que compilando en delphi 5.0 y ejecutando en un xp sp3.
Responder Con Cita
  #5  
Antiguo 29-07-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Showmessage

Muchas Gracias por tu respuesta

Delphi 7 Build 4.453
Windows 7 32 bits.

No pasa siempre, es como dices, hay veces que la ventana se va para atras o se ve minimizada
Responder Con Cita
  #6  
Antiguo 29-07-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola shoulder.

Es realmente extraño, hasta ahora no había escuchado ese comportamiento de ShowMessage con Delphi 7.

Pero a decir verdad, nunca uso el procedimiento ShowMessage sino la función API MessageBox y jamás me ha dado problema alguno.

El cambio no es grande, a modo de ejemplo:
Código Delphi [-]
  MessageBox(0, 'PDF FIRMADO', '', MB_OK);

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 29-07-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Showmessage

Gracias lo voy a probar.
Responder Con Cita
  #8  
Antiguo 29-07-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
shoulder,

Cita:
Empezado por shoulder
...algunas veces al usuario le sale la ventana ShowMessage minimizada...¿hay alguna forma de evitar esto?...


Revisa este código:
Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 var
    MsgDialog : TForm;
    MsgUser : String;
 begin
    MsgUser := 'Mensaje al Usuario';
    MsgDialog := CreateMessageDialog(MsgUser, mtWarning, [mbYes, mbNo]);
    MsgDialog.FormStyle := fsStayOnTop;
    MsgDialog.ShowModal;
 end;
El código anterior en Delphi 7 bajo Windows 7 Professional x32, muestra un mensaje modal al usuario por medio del la función CreateMessageDialog, que estará al tope del Z Order y permitirá configurar su visualización según los requerimientos de la aplicación.

Una forma más simple de mensajes al usuario se puede logra por medio del siguiente código:
Código Delphi [-]
 procedure TForm1.Button2Click(Sender: TObject);
 var
    MsgUser : String;
 begin
    MsgUser := 'Mensaje al Usuario';
    MessageDlg(MsgUser,mtInformation,[mbOK],0)
 end;
El código anterior en Delphi 7 bajo Windows 7 Professional x32, muestra un mensaje al usuario por medio de la función MessageDlg.

Espero sea útil

Nelson.
Responder Con Cita
  #9  
Antiguo 15-09-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Ventana Minimizada

Trabajo con Windows 7 - Delphi 7.

A veces me llaman los usuarios que se les bloqueo el programa, pero no es asi, la ventana Hijo aparece minimizada, voy hago click sobre la barra de tareas de Windows y aparece, no sucede siempre cada tanto y en forma aleatoria. Que puede ser?.

uso Form Común
Position : PoScreenCenter
PrintScale : Poproportional

Gracias.
Responder Con Cita
  #10  
Antiguo 16-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola shoulder.

Es muy difícil poder inferir la causa con esa información, pero este código tendría que impedir que un form se minimize:
Código Delphi [-]
...
type
  TForm1 = class(TForm)
  private
    procedure WMSysCommand(var Msg: TMessage); message WM_SYSCOMMAND;
  public
  end;

...

procedure TForm1.WMSysCommand(var Msg: TMessage);
begin
  if Msg.WParam <> SC_MINIMIZE then
    inherited;
end;
Si bién no revela el orígen del comportamiento, podría ser una solución transitoria hasta que encuentres el motivo.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 16-09-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
shoulder,

Cita:
...cada tanto y en forma aleatoria...la ventana Hijo aparece minimizada...hago click sobre la barra de tareas de Windows y aparece...¿Que puede ser?...
Quizás la respuesta más simple sea : El usuario

Revisa este código:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
   BorderIcons := BorderIcons - [biMinimize];
end;
El código anterior en Delphi 7 bajo Windows 7 Professional x32, deshabilita la opción de minimizar el formulario Form1.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 16-09-2014 a las 01:17:59.
Responder Con Cita
  #12  
Antiguo 16-09-2014
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por nlsgarcia Ver Mensaje
...Quizás la respuesta más simple sea : El usuario ...
En desacuerdo con nlsgarcía..., la respuesta más simple ES PROBLEMA, CULPA Y RESPONSABILIDAD DEL USUARIO..., siguiendo la máxima que define a la Ley de Murphy, colofón de sistemas: "Si tu aplicación tiene problemas insolublemente aleatorios, otro tiene la culpa", y es por eso que tienes que pensar como usuario curioso y preparar tus aplicaciones PARA CUALQUIER EVENTUALIDAD.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #13  
Antiguo 16-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Pude comprobar que las opciones de los mensaje #2 y #3 fallan con combinaciones de teclas como WIN + D que hacen que el form se minimize. (Y debe ser algo como eso lo que están haciendo...)

Pero complementándo cualquiera de ellas con este código, creo que te va a resolver el problema:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  FormStyle:= fsStayOnTop; // o desde el Obj. Insp.
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  SetwindowLong(GetWindow(Handle, GW_OWNER), GWL_STYLE, 0);
  SetwindowLong(GetWindow(Handle, GW_OWNER), GWL_EXSTYLE, 0);
  OnShow:= nil;
end;
Probalo y nos comentas.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #14  
Antiguo 16-09-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Minimizar

Mañana lo pruebo, les comento cuando se vuelve, digo medio loco el delphi....cuando no se borra el historial de los tokens de firma digital te aparece minimizado en java el boton de cancelar, le das click y despues con la clave sigue el prg, pero a partir de ahi algunas veces las ventanas forms se minimizan.

2) Yo desde el `programa creo reportes excel o word y tambien despues de eso puede pasar que el form se minimice. Y el usuario me llama y me dice se bloqueo el sistema.

De seguro como siempre las sugerencias de ustedes funcionan. Pero hay algo entre delphi 7 y windows 7 que con el uso de capicom (firma digital, jsignpdf o librerias de word o excel es como que lo desconfiguran, no siempre aclaro pero hace esas cosas extrañas de minimizar o queda atras de la ventana menu).

Gracias como siempre.
Responder Con Cita
  #15  
Antiguo 16-09-2014
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 13
engranaje Va por buen camino
Me ha sucedido algo parecido. Lo cierto es que mi problema en cuestión era que si desde una ventana abria otra y cambiaba la aplicación activa tanto ejecutandola yo por código como el usuario pulsando sobre ella, al volver a mi aplicación la última ventana abierta aparecía minimizada.
Yo por mi parte cuando ser refiere a desarrollos en versiones de delphi antiguos y me pasan temas de este estilo con algunos usuarios y otros no, le echo un vistazo a los cambios en la api de windows para saber en que ha cambiado desde que salió el delphi que estoy utilizando, hasta la versión de dll en cuestión que tiene el usuario. Me temo que el dichoso zorder ha cambiado mas de una vez a lo largo de estos años y una actalización del explorer puede cambiar el modo en el que se comportan la ventanas de una aplicación.
No soy de mucha ayuda pero si pudieras comprueba en tu equipo cuando llamas a otra aplicación y el foco pasa de la tuya a la nueva donde cual es la ventana activa antes de que cambie la aplicación y cual cuando vuelves a ella.
Responder Con Cita
  #16  
Antiguo 16-09-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Minimizar

Hola engranaje por eso decia que el jsingpdf o capicom me desconfiguraba el tema de las ventanas delphi. Ahora estoy probando los aportes de nuestros compañeros del foro.
Responder Con Cita
  #17  
Antiguo 16-09-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Minimizar

Probe lo ejemplos pero no me funciono. Me deja la ventana siempre adelante y los showmessage me quedan atras y se me bloquea todo.
Responder Con Cita
  #18  
Antiguo 16-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por shoulder Ver Mensaje
Probe lo ejemplos pero no me funciono. Me deja la ventana siempre adelante y los showmessage me quedan atras y se me bloquea todo.
Ah, pero eso es lógico desde que se fija su estado a fsStayOnTop... Es claro que en ese estado cualquier ventana emergente quedará detrás. Lo único que el código garantiza es que no van a minimizar la ventana.

Yo no encontré otro modo, la combinación de teclado WIN+D por ejemplo, burla hasta un hook de teclado local opción que no soy partidario de usar, pero que también probé.

Sólo te puedo sugerir que si el problema se produce por accion de un usuario, vayas hagas click sobre la barra de tareas de Windows, expliques que el problema no es tu programa sino el usuario y lo cobres caro, pero muuuuy caro. (Eso hará que el dueño (el que paga) le explique al empleado que debe hacer click sobre la barra de tareas la próxima vez que suceda. )

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #19  
Antiguo 16-09-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
shoulder,

Cita:
Empezado por shoulder
...cada tanto y en forma aleatoria...la ventana Hijo aparece minimizada...hago click sobre la barra de tareas de Windows y aparece...¿Que puede ser?...
Cita:
Empezado por shoulder
...Probé lo ejemplos pero no me funciono...deja la ventana siempre adelante...se me bloquea todo...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
   FormStyle := fsNormal;
end;

procedure TForm1.Timer1Timer;
begin
   if not Application.Active then
      Application.Restore;

   if WindowState = wsMinimized then
      WindowState := wsNormal;

   if not Visible then
      Visible := True;
end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, impide que el formulario Form1 sea minimizado por:

1- Botón de minimizar en el formulario.

2- Combinación de teclas : Windows + D

3- Funciones : SendMessage, PostMessage, Perform y ShowWindow.

En resumen : El formulario no puede ser minimizado manualmente o programáticamente y no se coloca al tope del Z-Order, por lo cual no interfiere con los mensajes de la aplicación.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 16-09-2014 a las 21:51:51.
Responder Con Cita
  #20  
Antiguo 16-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Nelson.

Si yo había probado chequear el estado mediante un timer. Pero adolece del defecto que no funciona si existe alguna otra ventana modal abierta vg.: ShowMessage, MessageBox, ..., u otro form modal, ya que en ese caso WIN+D minimizará todo.

Agrego un poco de codigo a tu ejemplo para mostrar a lo que me refiero:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

const
  WM_AFTER_SHOW = WM_USER + 301;
  
type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    procedure WmAfterShow(var Msg: TMessage); message WM_AFTER_SHOW;
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
   FormStyle := fsNormal;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
    if not Application.Active then
      Application.Restore;

   if WindowState = wsMinimized then
      WindowState := wsNormal;

   if not Visible then
      Visible := True;
end;

procedure TForm1.WmAfterShow(var Msg: TMessage);
begin
 ShowMessage('Presiona WIN + D ...')
end;

procedure TForm1.FormShow(Sender: TObject);
begin
   PostMessage(Self.Handle, WM_AFTER_SHOW,0,0);
end;
end.
Yo creo que shoulder tendría que dejar bién claro cuales son los problemas intrínsecos a su aplicación y cuales no. Si no va a terminar escuchando en el teléfono cosas como: "¡ Venga urgente que el programa desapareció misteriosamente !" y resultó ser que el protector de pantalla se había activado...

Si sus empleados son inoperantes, que que hagan un curso del S.O. que estan empleando. Y si no, que vaya, solucione el problema y lo cobre como corresponde...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
cronometro minimizado kurono Varios 3 22-01-2009 06:42:14
Arranque minimizado Cecilio Varios 2 25-06-2008 11:54:59
Minimizado de Formularios Michel Varios 0 16-08-2003 00:00:16
Restaurar un report minimizado MANU1102 Impresión 4 04-08-2003 14:41:27


La franja horaria es GMT +2. Ahora son las 16:35:41.


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