|
Home → WINDEV 25 → WX - Existe uma maneira de saber se alguma janela está aberta e Existe uma maneira de limitar uma janela a 1 instância? |
WX - Existe uma maneira de saber se alguma janela está aberta e Existe uma maneira de limitar uma janela a 1 instância? |
Started by BOLLER, Feb., 19 2018 7:01 PM - No answer |
| |
| | | |
|
| |
Registered member 3,657 messages Popularité : +175 (223 votes) |
|
Posted on February, 19 2018 - 7:01 PM |
Procedure ChangeTheme(pWindow)
ct is int sControl is string
WHILE ct < 500 ct++ IF EnumControl(pWindow, ct) = "" THEN BREAK {pWindow, indControl}..BrushColor = gsWindowColor IF Upper(Left(EnumControl({pWindow, indControl}, ct), 3)) = "STC" OR Upper(Left(EnumControl({pWindow, indControl}, ct), 3)) = "CBO" OR Upper(Left(EnumControl({pWindow, indControl}, ct), 3)) = "RAD" THEN sControl = EnumControl({pWindow, indControl}, ct) {sControl, indControl}..Color = gsStaticColor END IF Upper(Left(EnumControl({pWindow}, ct), 3)) = "EDT" THEN sControl = EnumControl({pWindow}, ct) {sControl}..Color = gsEntryTextColor {sControl}..BrushColor = gsEntryBackgroundColor END IF Upper(Left(EnumControl({pWindow, indControl}, ct), 3)) = "BTN" THEN sControl = EnumControl({pWindow, indControl}, ct) {sControl, indControl}..Color = gsButtonColor END END
nNumWinsOpen is int
WHEN EXCEPTION IN IF Handle(WIN_Browse_Tracks)>0 THEN nNumWinsOpen++ END DO END
nNumWinsOpen is int sWinStatus is int sWinStatus = WinStatus(Win_Browse_Tracks) IF sWinStatus = 0 nNumWinsOpen++ Trace("nNumWinsOpen") END
WindowCount ()
1a. Se você quiser apenas verificar se uma janela conhecida está aberta, você pode usar a função WinStatus (windowname) que retorna o status da janela (não se encontra aberto, invisível se aberto, mas não visível, fora de tela, ativo, exibido apenas e assim por diante )
1b. Se você quiser conhecer as janelas disponíveis no seu projeto, você pode fazer uma lista de toda a janela usando a função EnumElement (enumwindow) e, em seguida, verifique o status de cada janela como em 1a.
2. Se você usa Abrir (janela ...), a janela aberta é modal e nenhuma outra janela (exceto outras janelas modal) pode ser aberta (ok, isso é trivial). Não sei se existe um parâmetro que limita as instâncias da janela a 1, mas é muito fácil criar uma classe ou procedimento que gerencie a abertura e o fechamento da janela, limitando, portanto, o instanciamento múltiplo da mesma janela.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | | | |
| | |
|