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)
-   -   Ocultar la barra de tareas al hacer clik sobre el icono de la aplicación (https://www.clubdelphi.com/foros/showthread.php?t=90182)

Delphi01 21-04-2016 17:17:42

Ocultar la barra de tareas al hacer clik sobre el icono de la aplicación
 
Hola ,

La Aplicación esta minimizada en la barra de tareas .

Quiero al hacer click sobre el icono de éste , se maximiza ocultando la barra de tareas ,

Gracias .

ecfisa 21-04-2016 17:38:42

Hola.

¿ Queres que al hacer click sobre el ícono la aplicacion se maximize ocultando la barra de tareas, o ese es el comportamiento que deseas evitar ?

Saludos :)

Delphi01 21-04-2016 17:45:24

¿Quieres que al hacer click sobre el ícono la aplicación se maximice ocultando la barra de tareas?

SI, eso lo que quiero .

ecfisa 21-04-2016 18:00:03

Hola nuevamente.

Revisa si te sirve este enlace: Hide and show taskbar programmatically.

Saludos :)

roman 21-04-2016 18:12:05

También podrías considerar una aplicación de pantalla completa -una ventana maximizada y sin bordes- que automáticamente oculta la barra de tareas.

LineComment Saludos

Delphi01 21-04-2016 19:08:49

Gracias , yo sé eso , pero no quiero hacer lo desde un botón en la form


Mi pregunta era clara
la Aplicación esta minimizada en la barra de tareas de windows ..
si vuelvo a maximizar la haciendo click sobre el icono entonces se vuelve a coger pantalla completa y la la barra de tareas se oculta.

roman 21-04-2016 19:40:30

Cita:

Empezado por Delphi01 (Mensaje 504576)
Gracias , yo sé eso , pero no quiero hacer lo desde un botón en la form


Mi pregunta era clara

Ok. Disculpa mi atrevimiento de sugerirte algo.

LineComment Saludos

dec 21-04-2016 19:44:14

Hola,

Cita:

Empezado por Delphi01 (Mensaje 504576)
Gracias , yo sé eso , pero no quiero hacer lo desde un botón en la form


Mi pregunta era clara
la Aplicación esta minimizada en la barra de tareas de windows ..
si vuelvo a maximizar la haciendo click sobre el icono entonces se vuelve a coger pantalla completa y la la barra de tareas se oculta.

Creo que Román apunta por el buen camino: puedes quitar los bordes y maximizar tu aplicación para que esta se muestre a pantalla completa y por tanto por encima de la barra de tareas. Puedes hacerlo desde un botón (si no me equivoco...) y además de este modo evitarás "tocar" la configuración del sistema, puesto que, si tu aplicación "falla" por el motivo que sea, ¿la barra de tareas permanecerá invisible?

ecfisa 21-04-2016 20:47:20

Hola.

También coincido; si eliminar los bordes no te resulta un impedimento, la sugerencia de roman es la mas simple. Y como dice dec, es mas segura y se puede ejecutar sin problemas desde el evento OnClick de un TButton, vg.:
Código Delphi [-]
procedure TMainForm.Button1Click(Sender: TObject);
begin
  BorderStyle := bsNone;
  WindowState := wsMaximized;
end;
Si quisieras que el código se ejecutara ante el click sobre el ícono de la app en la barra de tareas, podrías usar el evento Application.OnRestore.

Saludos :)

Delphi01 21-04-2016 23:58:33

Hola otra vez , Muchas gracias a todos , ecfisa,dec, roman :) discupa mi idioma porque el español no es mi idioma materna ,

Yo lo que quería es una form maximizada con BorderIcons y sin mostrar la barra de tareas
Y al final he logrado hacer este codigo :
Código:

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.AppEvnts;

type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    procedure WMSysCommand(var Msg: TMessage);message WM_SYSCOMMAND;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.WMSysCommand(var Msg: TMessage);
var
  SysCmd: Word;
begin
  SysCmd:= Msg.wParam and $FFF0;
  case SysCmd of
    SC_MOVE, SC_SIZE: Msg.Result:= 0;
  else
    inherited;
    if ( SysCmd= SC_MINIMIZE) then
    ShowWindow(FindWindow('Shell_TrayWnd', nil),SW_RESTORE)
    else
    if ( SysCmd= SC_RESTORE) then
    ShowWindow(FindWindow('Shell_TrayWnd', nil),SW_HIDE);

  end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 ShowWindow(FindWindow('Shell_TrayWnd', nil),SW_RESTORE) ;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  Form1.Height := screen.Height;
  Form1.Width := screen.Width;
  Form1.Top := 0;
  Form1.Left := 0;
  ShowWindow(FindWindow('Shell_TrayWnd', nil),SW_HIDE);

end;

end.

Saludos cordiales amigos :)


La franja horaria es GMT +2. Ahora son las 11:21:29.

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