cobrir 100¬ a tela do windows

Delphi

24/04/2006

olá pessoal eu esqueci o procedimento de criar um form que ocupe totalmente a tela até mesmo a barra do windows...

como é usado em telas de frende de caixa onde o usuário não tem acesso algum ao windows


Crcam

Crcam

Curtidas 0

Respostas

Rjun

Rjun

24/04/2006

Defina a propriedade WINDOWSTATE para wsMaximized e a propriedade BORDERSTYLE para bsNone.


GOSTEI 0
Crcam

Crcam

24/04/2006

ehehehehe eu já fiz isso essa parte é basico mas o que eu quero sabe é a barra de ferramentas ( relogio icones iniciar etc....)


GOSTEI 0
Martins

Martins

24/04/2006

ehehehehe eu já fiz isso essa parte é basico mas o que eu quero sabe é a barra de ferramentas ( relogio icones iniciar etc....)


Campos, vc vai conseguir o q deseja usando esse código.

// Esconde a barra de tarefas do Windows
// Coloque esse código no OnShow do Form.

ShowWindow(FindWindow(´Shell_TrayWnd´,nil), SW_HIDE) ;

// Retorna a barra de tarefas do Windows
// Coloque esse código no OnClose do Form.

ShowWindow(FindWindow(´Shell_TrayWnd´,nil), SW_Normal) ;


Espero q seja isso q vc está procurando, retorne aqui o resultado.

Boa sorte.


GOSTEI 0
Martins

Martins

24/04/2006

Defina a propriedade WINDOWSTATE para wsMaximized e a propriedade BORDERSTYLE para bsNone.


Essa dica é perfeitamente funcional.


GOSTEI 0
Crcam

Crcam

24/04/2006

é o caminho é quase esse mas note que mesmo escondendo a barra o local dela fica lá ou seja o form não ocupa 100¬ a tela

p/ vc ter uma ideia legal do que tenho de fazer pegue como exemplo o sistema do supermercado extra a tela do programa ocupa 100¬ a tela


GOSTEI 0
Martins

Martins

24/04/2006

é o caminho é quase esse mas note que mesmo escondendo a barra o local dela fica lá ou seja o form não ocupa 100¬ a tela p/ vc ter uma ideia legal do que tenho de fazer pegue como exemplo o sistema do supermercado extra a tela do programa ocupa 100¬ a tela


Campos faz um teste com a dica do RJun em um form Novo sem usar o

[b:e6d6ad9163]AnimateWindow(form1.Handle,2000,AW_CENTER);[/b:e6d6ad9163]

e veja o resultado.


GOSTEI 0
Ipc$

Ipc$

24/04/2006

Se não der certo, tente com SetWindowPos
  WindowState := wsNormal;
  SetWindowPos(Handle, HWND_TopMost, 0, 0, Screen.Width, Screen.Height, SWP_ShowWindow);



GOSTEI 0
Crcam

Crcam

24/04/2006

pessoal infelizmente ele não sobrepõe a barra!!!!!


GOSTEI 0
Kroki

Kroki

24/04/2006

Pelo oque vc disse sua área de trabalho foi redimensionada e isso não é muito comum.
Tente isso no OnCreate;
...
var
R:TRect;
begin
R.Left :=0;
R.Top :=0;
R.Right :=Screen.Width;
R.Bottom :=Screen.Height;
SystemParametersinfo(SPI_SETWORKAREA,0,@R,SPIF_SENDCHANGE );
...
Alguma coisa ta setando sua área de trabalho...


GOSTEI 0
Paullsoftware

Paullsoftware

24/04/2006

as dicas do amigos martins, ipc$, Rjun todas funcionaram perfeitamente comigo, mais...

no OnCreate tente algo assim:
levando em conta que...
borderStyle = bsNone;
Position = poScreenCenter;
´
  Width  := Screen.Height;
  Height := Screen.Width;
  Top    := 0;
  Left   := 0;
SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);

acho que assim não tem como não funcionar :wink:


GOSTEI 0
Crcam

Crcam

24/04/2006

não sei se por ser windows 2000 pro mas tive de fazer uns ajustes diretamente no codigo...
onde resolveu o problema foi nessa linha ´ Align := alLeft; ´
´
// tratamento sobrepor 100¬ tela
procedure TForm1.FormCreate(Sender: TObject);

begin
  Width       := Screen.Height;
  Height      := Screen.Width;
  Top         := 0;
  Left        := 0;
  Align       := alLeft;
  WindowState := wsMaximized;
  Position    := poDesktopCenter;

SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
end;
// fim tratamento sobrepor 100¬ tela



mas enfim deu certo! agradeço a atenção de todos que colaboraram


GOSTEI 0
Crcam

Crcam

24/04/2006

não sei se por ser windows 2000 pro mas tive de fazer uns ajustes diretamente no codigo...
onde resolveu o problema foi nessa linha ´ Align := alLeft; ´
´
// tratamento sobrepor 100¬ tela
procedure TForm1.FormCreate(Sender: TObject);

begin
  Width       := Screen.Height;
  Height      := Screen.Width;
  Top         := 0;
  Left        := 0;
  Align       := alLeft;
  WindowState := wsMaximized;
  Position    := poDesktopCenter;

SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
end;
// fim tratamento sobrepor 100¬ tela



mas enfim deu certo! agradeço a atenção de todos que colaboraram


GOSTEI 0
POSTAR