Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Minimizar una aplicacion, pero no en la barra de tareas (https://www.clubdelphi.com/foros/showthread.php?t=53712)

jafi666 27-02-2008 19:25:00

Minimizar una aplicacion, pero no en la barra de tareas
 
hola no se si me pueden ayudar, quisiera que mi aplicacion echa en delphi, en el momento en que se minimize vaya como icono a lado de la barra de tareas ahi por donde esta el reloj de windows, me dijeron que use Ticon pero no me ubico muy bien haber si me pueden ayudar. gracias

Delphius 27-02-2008 19:28:32

Hola jafi666,
Bievenido a clubdelphi, como eres nuevo por favor tomate unos minutos y lee la guia de estilo.
Con respecto a tu duda, el tema se trató en muchísimas ocasiones. Esto se consigue con el componente TTrayIcon, si realizas una búsqueda en los foros vas a a encontrar mucha información. la amplia biblioteca JEDI viene con uno, y en torry.net otros tantos más.

Saludos,

Caral 27-02-2008 19:31:51

Hola
Bienvenido al club.
Hay muchos hilos que muestran como hacerlo, aqui hay un ejempo:
Coloca un PopupMeno en el form y revisa este codigo:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, ShellApi,
  Forms, Dialogs, Menus;

type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    Abrir1: TMenuItem;
    procedure Abrir1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    IconData : TNotifyIconData;
    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
    procedure Espabila(var Msg : TMessage); message WM_USER+1;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

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;
      {Usamos de icono el mismo de la aplicacion}
      {We use the same icon as the application}
      hIcon := Application.Icon.Handle;
      {Como Hint del icono, el nombre de la aplicacion}
      {The name of te app for the hint of the icon}
      StrPCopy(szTip, Application.Title);
    end; 
    {Ponemos el icono al lado del reloj}
    {Place the icon next to the clock}
    Shell_NotifyIcon(NIM_ADD, @IconData);
    {Ocultamos la Form...}
    {Hide the form...}
    Hide;
  end else DefaultHandler(Msg);
end; 

procedure TForm1.Espabila(var Msg : TMessage);
{Aqui se recibe la pulsacion sobre el icono}
{Here we recieve the click on the icon}
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;


procedure TForm1.Abrir1Click(Sender: TObject);
begin
  {Mostramos de nuevo la form}
  {We show the form again}
  Form1.Show;
  ShowWindow(Application.Handle, SW_HIDE);
  {Y nos cargamos el icono de la system tray}
  {Destroy the systray icon}
  Shell_NotifyIcon(NIM_DELETE, @IconData);
  IconData.Wnd:=0;

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   {Quitamos el icono (en el caso de haberlo puesto antes...)}
  {Take off the icon (in case of had placed it before.....)}
  if IconData.Wnd <> 0 then Shell_NotifyIcon(NIM_DELETE, @IconData);

end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.
Saludos

jafi666 28-02-2008 02:21:24

gracias lo logre
 
hola, muchas gracias por la ayuda me sirvio el codigo, y tendre en cuenta la guia de estilos, hasta la proxima y gracias de nuevo, bye


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

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