Página 1 de 1

Efeito desagradável ao maximizar/restaurar formulário

Publicado: Mié Nov 09, 2011 2:30 pm
por Sommus
Prezados,
Estou desenvolvendo uma aplicação de PDV (Ponto de Vendas), então quero
faze-la em "tela cheia". Para isso, no evento "onBeforeCreate" do form
coloco a seguinte instrução "::nBorderStyle:=bsNONE"... Até aqui, tudo bem,
funciona perfeitamente... Tenho nesse form um botão para minimizar o form
usando o metodo Minimize() do form... O esquisito e estranho acontece quando
clico na aplicação minimizada na barra de tarefas do windows e quando ela
restaura, dá uns efeitos estranhos e depois estabiliza... Estou fazendo isso
no windows 7, e o que eu esperava é que a tela se restaurasse normalmente,
como se restaura qualquer aplicação no windows 7, onde dá aquele efeito
legal...
Alguém já passou por isso? í‰ um bug do Xailer?
Obrigado pela atenção,
Reginaldo

Efeito desagradável ao maximizar/restaurar formulário

Publicado: Mié Nov 09, 2011 7:48 pm
por emeasoft
Reginaldo,
Tenho uma aplicação que faz exatamente isto e não tenho problema.
Segui o exemplo de XailerSamplesNotifyIcon.
O form uso:
nBorderStyle := bsSIZEABLE
lMaximizeBox := .F.
lCentered := .T.
Ele dispara uma consulta ao nosso servidor MySql a cada 2 segundos.
Não use Sleep(2000) pois isto desconfigura a tela, não sei o porquíª.
Uso o TTimer que a cada 2 segundos dispara uma função.
Na função, quando entro:
oTimer:lEnabled:=.F.
quando saio:
oTimer:lEnabled:=.T.
Segue algumas linhas de código:

METHOD TimerTimer( oSender ) CLASS CMTSERVE
SF999(Self) // executa a tarefea
RETURN Nil
METHOD NotifyIcon1DblClick( oSender, nX, nY ) CLASS CMTSERVE
*maximiza com duplo clique no í­cone
::Show()
::Restore()
RETURN Nil
METHOD PM1Item1Click( oSender, oMenu ) CLASS CMTSERVE
*com botão direito abro o TPopMenu com a opção abrir
::Show()
::Restore()
RETURN Nil
STATIC FUNCTION SF999(Self)
oTimer:lEnabled:=.F.
....
*minimiza sózinho depois de 10 segundos
++::dMin
IF ::dMin=10
::dMin:=0
IF ::dMax=0 // MAXIMIZADO
::Minimize(.T.)
ENDIF
ENDIF
....
oTimer:lEnabled:=.T.
RETURN Nil
METHOD FormSize( oSender, nSizeType, nClientWidth, nClientHeight ) CLASS CMTSERVE
::dMax:=nSizeType
IF ::oNotifyIcon1 != NIL
::lVisible := !::oNotifyIcon1:lVisible := ( nSizeType == 1 )
::oNotifyIcon1:Refresh()
ENDIF
RETURN Nil

Mário Angelini

Efeito desagradável ao maximizar/restaurar formulário

Publicado: Mié Nov 09, 2011 8:29 pm
por emeasoft
Reginaldo,
Desculpa, acho que o que vocíª quer é outra coisa.
Entendi que era minimizar no SysTray.
Mário