Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-12-2007
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Que Evento Es El Que Se Genera!!!!!

Yo minimizo mi aplicacion, y necesito saber cual es el evento que se genera al resaurarla de la barra de tareas!!!!!!!!!! Necesito realizar una operacion cuando se genere este evento pero no se cual es.

Espero que alguien pueda ayudarme!!

Un saludo!

Gracias!
Responder Con Cita
  #2  
Antiguo 12-12-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Este tema ya se ha tratado algunas veces en estos foros...

Ya intentaste haciendo una búsqueda?


Saludos...
Responder Con Cita
  #3  
Antiguo 12-12-2007
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Si pero no he conseguido resultado, el problema es que los filtros que uso para la busqueda no son buenos.

Si sabes de algun hilo sobre esto te agradeceria que me lo indicaras.

Gracias!
Responder Con Cita
  #4  
Antiguo 12-12-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
OnMinimize
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #5  
Antiguo 13-12-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Cita:
Empezado por AzidRain Ver Mensaje
OnMinimize
Perdón, pero creo que lo que necesita es OnRestore.

Aunque es cierto que buscando por una u otra palabra encontrará la información que busca.
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #6  
Antiguo 13-12-2007
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Pues OnMinimize es cuando la aplicacion se va a la barra de tareas pero cuando queremos restaurarla de la barra de tareas no es OnRestore, no se cual es. Sin embargo cuando pincho en el boton maximizar y vuelvo a pinchar en el para que vuelva al estado anterior si se produce el evento OnRestore.

Estoy perdida!
Responder Con Cita
  #7  
Antiguo 13-12-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Tienes razón.

No sé si te pueda servir OnActivate que es cuando la aplicación se ejecuta y cuando vuelve a estar activa.
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #8  
Antiguo 13-12-2007
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
property OnShow: TNotifyEvent;

Description

Use OnShow to perform special processing when the form is shown (that is, when the form’s Visible property is set to True).

El Evento OnShow del Form que manipulas.
Fuente: ayuda de delphi.
Creo que esta ahi la cosa.
Responder Con Cita
  #9  
Antiguo 13-12-2007
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
El evento OnActivate tampoco es y el OnShow lo he provado y nada.


A ver yo utilizo la siguiente rutina para comprobar el evento que se genera:Código Delphi [-]procedure TFormMenu.WMSysCommand(var Message: TWMSysCommand);
begin
//
ShowMessage(IntToStr(Message.CmdType));
inherited;
end;





Con eso podeis comprobar que al minimizar la aplicacion aparece un mensaje con un numero, pero al restaurarla de la barra de tareas no aparece nada. Quiere decir esto que no se puede controlar desde delphi????
Responder Con Cita
  #10  
Antiguo 14-12-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
La verdad no tengo idea si hay algún evento como el que buscas, pero creo que con un poco de imaginación podrías lograrlo, al fin y al cabo, si se produce el evento OnMinimize y luego el OnActivate, es lógico pensar que el usuario ha minimizado y luego restaurado desde la barra de tareas. Bastaría con que guardaras el estado de minimizado y luego comprobaras ese estado en el evento OnActivate (o el OnShow).

Es una idea nada más, no sé si a alguien se le ocurrirá algo mejor.
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #11  
Antiguo 14-12-2007
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
No eso no sirve porque cuando restauro la aplicacion de la barra de tareas no pasa por activate entonces no puedeo controlarlo por ahí.

A nadie le a pasado esto alguna vezzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!
Responder Con Cita
  #12  
Antiguo 14-12-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Sólo por estar seguro, ¿estamos hablando del mismo OnActivate?

Yo me refiero al de la aplicación.

Cita:
TCustomForm::OnActivate
Occurs when the form becomes active.
__property Classes::TNotifyEvent OnActivate = {read=FOnActivate, write=FOnActivate, stored=IsForm};
Description
Use OnActivate to perform special processing when the form receives focus. A form becomes active when focus is transferred to it (when the user clicks on the form, for example).
Note: The OnActivate event of the application (TApplication), not the form, occurs when Windows switches control from another application.
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #13  
Antiguo 14-12-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Acabo de comprobarlo en un rato libre que he tenido y funciona sin problemas.

Es lo que ya sabes:

1.- Un objeto TApplicationsEvents.

2.- El siguiente código para el OnMinimize y el OnRestore (está en C++Builder):

Código:
 
void __fastcall TForm1::ApplicationEvents1Minimize(TObject *Sender)
{
    Application->MessageBox("Minimizándome", "Información");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Restore(TObject *Sender)
{
    Application->MessageBox("Restaurándome", "Información");
}
Si no te resulta debe ser otro el problema...
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #14  
Antiguo 14-12-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Código Delphi [-]
procedure TMainform.FormCreate(Sender: TObject);
begin
 
  Application.OnActivate := TuFuncion;
 
end;

No hace falta añadir ningún Objeto ni nada.

Se ejecutará cada vez que desde cualquier otro programa se devuelva el control a tu aplicación, esté o no minimizada en la barra de tareas.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #15  
Antiguo 17-12-2007
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Exactamente lo que quiero conseguir es lo siguente mantener la pantalla principal de la aplicacion siempre detras de las ventanas que se vayan abriendo, esto lo utilizo en la funcion OnActivate:

Código SQL [-]
procedure TFormMenu.FormActivate(Sender: TObject);
begin
//
  FormMenu.SendToBack;
end;

y esto funciona bien hasta que minimizo la aplicacion en la barra de tareas y la restauro, cuando realizo esta operacion las ventanas que estaban abiertas aparecen detras del menu y no tendria por que. Lo he probado todo y no se que mas hacer.

Un saludo, y gracias!

Última edición por xio fecha: 27-12-2007 a las 19:13:40.
Responder Con Cita
  #16  
Antiguo 08-01-2008
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Nadie sabe nada sobre este tema??? Seguro que a alguien le a pasado alguna vez!!!
Responder Con Cita
  #17  
Antiguo 08-01-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Hola Xio,

Lo primero que debes hacer es cambiar el código on el evento OnActivate del Form, cambialo por este otro:
Código Delphi [-]
Procedure TFormMenu.FormActivate(Sender: TObject);
Begin
SetWindowPos(Handle , HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE or
          SWP_NOSIZE or SWP_NOACTIVATE or SWP_NOREPOSITION);
end;

el segundo paso es evitar que el formulario principal se ponga en sobre los demás cuando es movido, para esto tendrás que declarar en el private el siguiente procedimiento
Código Delphi [-]
type
  TFormMenu = class(TForm)
    ....
    .......
  private
    { Private declarations }
    Procedure FormPosChanged(var Msg: TMessage); message WM_WINDOWPOSCHANGED;

El procedimiento FormPosChanged, lo implementarás así:
Código Delphi [-]
procedure TFormMenu.FormPosChanged(var Msg: TMessage);
begin
SetWindowPos(Handle,HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE or
          SWP_NOSIZE or SWP_NOACTIVATE or SWP_NOREPOSITION);
Msg.Result := 0;
end;

Con este código, ya podrás tener una ventana que siempre esté bajo las demás.

Saludos.

PD: Como a forma de cosejo, me parece que el titulo del hilo no es el adecuado. Todo indicaba que lo que querías era saber el mensaje que se envia cuando la aplicación se restaura, que en todo caso, siempre sería recomendable utilizar los códigos que los compañeros han posteado.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web

Última edición por Chris fecha: 08-01-2008 a las 21:40:08.
Responder Con Cita
  #18  
Antiguo 09-01-2008
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Muchisimasssssssssss Graciassssssss!

Pensaba que en esta zona del foro esta bien colocado el hilo, pero ya veo que no. De todas formas muchisimas gracias. La proxima vez intentare ubicar bien el hilo, y explicarme mejor. Por otro lado todo lo que me recomendaron los compañeros lo probé y no funcionó. Un saludo!!!
Responder Con Cita
  #19  
Antiguo 09-01-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por xio Ver Mensaje
Pensaba que en esta zona del foro esta bien colocado el hilo, pero ya veo que no. De todas formas muchisimas gracias. La proxima vez intentare ubicar bien el hilo, y explicarme mejor. Por otro lado todo lo que me recomendaron los compañeros lo probé y no funcionó. Un saludo!!!
Auque seguramente no vuelvas a visitar este hilo, por si acaso:
El hilo está colocado en el foro indicado. Lo que pasa es que como te había dicho, el titulo no es el adecuado, talvez hubiese sido mejor colocarle algo como por ejemplo: "Mantener ventana siempre detrás de todas" o algo así.

Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #20  
Antiguo 09-01-2008
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Estupendo, para la proxima intentaré buscar un titulo lo mas adecuado posible. Un saludo y lo dicho muchisimas gracias a todos!!
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
No se que evento se genera xio OOP 5 17-12-2007 11:38:47
Como borrar las tablas que genera una consulta xio SQL 6 13-12-2007 10:30:07
Porque se genera un Archivo _QS** K4RL0S Varios 2 28-06-2006 00:50:00
Stored Procedure genera codigo Carlos Hurtado Firebird e Interbase 2 19-10-2005 19:38:19
¿Como elimino las tablas temporales que me genera mi Exe? IcebergDelphi Tablas planas 2 02-06-2003 15:36:32


La franja horaria es GMT +2. Ahora son las 21:34:46.


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