Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-08-2008
sidneyb sidneyb is offline
Miembro
 
Registrado: nov 2007
Posts: 53
Poder: 19
sidneyb Va por buen camino
problema al llamar a un procedure desde otro

Buenas tardes foro, un cordial saludo a todos.

De antemano gracias por su atencion. Acudo a uds por el siguiente detalle;

estoy tratando de llamar al siguiente procedure:


Cita:
Procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
if (Msg.CmdType = SC_MINIMIZE) then begin
with IconData do
begin
cbSize := sizeof(IconData);
Wnd := Handle;
uID := 100;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_USER + 1;
hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title);
end;
Shell_NotifyIcon(NIM_ADD, @IconData);
Hide;
end else DefaultHandler(Msg);
end;

dentro del siguiente procedure:

Cita:
procedure TForm1.FormCreate(Sender: TObject);
begin

end;
en el primero estoy ocultando de la barra de tareas para colocar, al minimizar, el form a un lado del reloj, pero el solo lo hace al minimizar, lo que quiero dentro del segundo procedure es ocultarlo de la misma manera pero al crear el formulario, podrian ayudarme a llamar el procedimiento? les agradezco de antemano, feliz tarde.

En todo caso, lo que realmente deseo es que la aplicacion se inicie oculto minimizado a un lado del reloj. muchas gracias

Última edición por sidneyb fecha: 21-08-2008 a las 22:57:03.
Responder Con Cita
  #2  
Antiguo 22-08-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 26
BlueSteel Va por buen camino
Wink

Hola.

no estoy seguro, pero te puede servir este truco

Salu2
__________________
BlueSteel
Responder Con Cita
  #3  
Antiguo 22-08-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¿No podrías usar, directamente, "Application.Minimize()" dentro de "FormCreate"?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 22-08-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Lo que Dec comenta funciona exceptuando que no oculta el boton de la barra de tareas, para solucionar ésto y darle un efecto adicional (el de minimizado) hago un par de modificaciones a tu codigo (al que supongo que es porque no lo copiaste completo);

Código Delphi [-]
//...
 
uses ShellAPI;
 
var
 IconData: TNotifyIconData = (cbSize: SizeOf(IconData); uID: 100;
                              uFlags: NIF_MESSAGE + NIF_ICON + NIF_TIP;
                              uCallbackMessage: WM_USER + 1);
 
procedure TForm1.FormMinimize(Sender: TObject);
begin
 with IconData do
  begin
   Wnd := Handle;
   hIcon := Application.Icon.Handle;
   StrPCopy(szTip, Application.Title);
   Shell_NotifyIcon(NIM_ADD, @IconData);
   ShowWindow(Application.Handle, SW_HIDE);
  end;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 Application.OnMinimize := FormMinimize;
 Application.Minimize;
end;

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #5  
Antiguo 22-08-2008
sidneyb sidneyb is offline
Miembro
 
Registrado: nov 2007
Posts: 53
Poder: 19
sidneyb Va por buen camino
probe de tres maneras pero me falta algo

Buenas tardes colegas, como les va? intente de tres maneras distintas lo cual me funcion, pero me persiste un pequeño detalle prueba tras prueba y cambio tras cambio del codigo, el detalle es el siguiente, le coloque un popupmenu de manera que al darle un click al icono minimizado aparezca las opciones de configurar y cerrar... el detalle esta que al hacerle el primer y solo el primer click el formulario completo se muestra en pantalla, cosa que quiero prevenir, me imagino que es por que estoy ejecutando un application.minimize en el procedimiento onCreate. Es lo unico que me falta, creen que podrian ayudarme? un saludo, gracias a todos

Última edición por sidneyb fecha: 22-08-2008 a las 20:30:23.
Responder Con Cita
  #6  
Antiguo 22-08-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Quizá sería mas facil (para nosotros), si pegas la parte en que recives el mensaje "WM_USER + 1", para ver como estas manejando los mensajes provenientes del SysTray...

PD; tambien seria de utilidad saber si nunca piensas mostrar alguna ventana en tu aplicacion.
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #7  
Antiguo 22-08-2008
sidneyb sidneyb is offline
Miembro
 
Registrado: nov 2007
Posts: 53
Poder: 19
sidneyb Va por buen camino
Thumbs up por supuesto cHackAll

Si estoy permitiendo ver un formulario al momento de darle click sobre la opcion configurar del popupmenu1, en el cual tengo solo dos opciones, configurar que muestra en si el formulario como tal, y la segunda opcion es el cerrar, que cumple su funcion tal cual. de manera que si muestro en algun momento la aplicacion.

Este es el procedimiento al cual hago referencia al momento en que minimizo desde la propia ventana una vez abierta en pantalla luego de haber dado click en el configurar del popupmenu, la cual me funciona a la perfeccion:

Cita:
Procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
if (Msg.CmdType = SC_MINIMIZE) then begin
with IconData do
begin
cbSize := sizeof(IconData);
Wnd := Handle;
uID := 100;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_USER + 1;
hIcon := Application.Icon.Handle;
end;
Shell_NotifyIcon(NIM_ADD, @IconData);
Hide;
end else DefaultHandler(Msg);
end;
luego de haberse ejecutado este procedimiento no tengo problemas al minimizar y darle cualquier click encima ya que solo me muestra solo el popupmenu ya mencionado.

el problema esta al ejecutar el onCreate en el que ya me habian colaborado uds alli arriba, luego de ejecutarse se minimiza, pero al darle un click, el primer click, se me muestra el popupmenu junto al formulario de la aplicacion, te muestro aca finalmente como lo deje:

Cita:
procedure TForm1.FormMinimize(Sender: TObject);

begin
with IconData do
begin
cbSize := sizeof(IconData);
Wnd := Handle;
uID := 100;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_USER + 1;
hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title);
end;
Shell_NotifyIcon(NIM_ADD, @IconData);
Hide;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize := FormMinimize;
Application.Minimize;
ShowWindow(Application.Handle, SW_HIDE);
end;
aca recibo la pulsacion sobre el icono minimizado

Cita:
procedure TForm1.mostrarmenu(var Msg : TMessage);

var
p : TPoint;
begin
if Msg.lParam = WM_RBUTTONDOWN then begin
SetForegroundWindow(Handle);
GetCursorPos(p);
PopupMenu1.Popup(p.x, p.y);
PostMessage(Handle, WM_NULL, 0, 0);
end;
end;
y por supuesto

Cita:
Uses..... ShellAPI

private
{ Private declarations }
IconData : TNotifyIconData;
procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
procedure mostrarmenu(var Msg : TMessage); message WM_USER+1;
gracias por tu colaboracio
Responder Con Cita
  #8  
Antiguo 22-08-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Código Delphi [-]
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus;
 
type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    mnuConf: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure mnuConfClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
   procedure MostrarMenu(var Msg: TMessage); message WM_USER + 1;
   procedure FormMinimize(Sender: TObject);
   procedure FormRestore(Sender: TObject);
  public
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
uses ShellAPI;
 
var
 IconData: TNotifyIconData = (cbSize: SizeOf(IconData); uID: 100;
                              uFlags: NIF_MESSAGE + NIF_ICON + NIF_TIP;
                              uCallbackMessage: WM_USER + 1);
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 with IconData do
  begin
   Wnd := Handle;
   hIcon := Application.Icon.Handle;
   StrPCopy(szTip, Application.Title);
  end;
 Application.OnMinimize := FormMinimize;
 Application.OnRestore := FormRestore;
 WindowState := wsMinimized;
end;
 
procedure TForm1.FormMinimize(Sender: TObject);
begin
 Shell_NotifyIcon(NIM_ADD, @IconData);
 ShowWindow(Application.Handle, SW_HIDE);
end;
 
procedure TForm1.FormRestore(Sender: TObject);
begin
 Shell_NotifyIcon(NIM_DELETE, @IconData);
end;
 
procedure TForm1.MostrarMenu(var Msg: TMessage);
begin
 if Msg.lParam = WM_RBUTTONDOWN then
  with Mouse.CursorPos do
   PopupMenu1.Popup(X, Y);
end;
 
procedure TForm1.mnuConfClick(Sender: TObject);
begin
 Application.Restore;
end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// Action := caNone;
// Application.Minimize;
end;
 
end.
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
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
llamar a procedure desde otra procedure anubis Varios 23 04-03-2010 18:44:37
Llamar a un procedure desde FastReport fcios Impresión 2 15-08-2007 06:59:13
Llamar Un Stored Procedure Desde Un Trigger ibuser Firebird e Interbase 3 26-08-2004 09:51:48
¿Como puedo llamar un Procedure desde otra unit? athal Lazarus, FreePascal, Kylix, etc. 11 17-05-2004 01:05:20
llamar a un procedure desde otro negama Conexión con bases de datos 1 28-08-2003 01:22:15


La franja horaria es GMT +2. Ahora son las 21:54:50.


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