Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-12-2007
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 20
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
  #2  
Antiguo 14-12-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 20
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
  #3  
Antiguo 14-12-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 20
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
  #4  
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: 23
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
  #5  
Antiguo 17-12-2007
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 20
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
  #6  
Antiguo 08-01-2008
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 20
xio Va por buen camino
Nadie sabe nada sobre este tema??? Seguro que a alguien le a pasado alguna vez!!!
Responder Con Cita
  #7  
Antiguo 08-01-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
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
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
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 10:15:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi