MsgYesNo
Moderador: Moderadores
MsgYesNo
Oh Quintas, eu sei que vc é um entusiasta da GTWVG, mas não exagera homem....rssss, depois que inventaram fonte true type, o que a GTWVG faz de redimensionar, já é feito a muitos e muitos anos em sistemas gráficos que usam a API do Windows, o problema são os programadores que não sabem usar os recursos.
Marcelo Neves
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
-
paiva_dbdc
- Usuário Nível 3

- Mensagens: 342
- Registrado em: 12 Nov 2012 09:58
- Localização: uberlandia mg
MsgYesNo
Janio poderia mandar a função como ficou ?
fiz e os botoes estão sendo cortados
veja no anexo como esta ficando
ob
Paiva
fiz e os botoes estão sendo cortados
veja no anexo como esta ficando
ob
Paiva
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
MsgYesNo
Pense como console.
Acrescentou mais linhas, mas não aumentou o tamanho da janela.
linha final + qtde. linhas da mensagem
Só que como é gráfico, seria qtde.linhad * altura do fonte (altura de cada linha)
Acrescentou mais linhas, mas não aumentou o tamanho da janela.
linha final + qtde. linhas da mensagem
Só que como é gráfico, seria qtde.linhad * altura do fonte (altura de cada linha)
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
MsgYesNo
O problema não é ser gráfico, e não utilizar os recursos gráficos disponíveis, que aliás, são muitos, vejam 2 exemplos :
- caixa de mensagem com um texto e dois botões

- caixa de mensagem com um título (ele pisca, aqui não tem como reproduzir) e uma mensagem

Claro que pode-se ter mais linhas, com mais informação, mas só esses 2 exemplos já dá para ter uma ideia.
Abraços
- caixa de mensagem com um texto e dois botões

- caixa de mensagem com um título (ele pisca, aqui não tem como reproduzir) e uma mensagem

Claro que pode-se ter mais linhas, com mais informação, mas só esses 2 exemplos já dá para ter uma ideia.
Abraços
Marcelo Neves
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
-
fenixsorocaba
- Usuário Nível 1

- Mensagens: 5
- Registrado em: 03 Jul 2019 11:40
- Localização: SOROCABA/SP
MsgYesNo
boa tarde a todos! Não entendo muito a lógica da programação do código em forms, por isso tenho uma pergunta:
no exemplo do código postado pelo colega, para botões de multipla escolha:
após clicar com o mouse em um dos botões de múltipla escolha, ele abre um outro formulário exibindo a resposta do botão (1, 2, 3, etc..) e o usuário tem que clicar no "X" para fechar este outro formulário...
teria como apenas criar uma variavel de controle para saber que o usuário clicou no botão 1, já fechando tudo, sem apresentar nada na tela?
se sim, é dentro desta mesma função (ocmd1_onClick) que a variável tem que ser colocada (no caso do botão 1)?
obrigado por sua atenção.
att,
Tales
no exemplo do código postado pelo colega, para botões de multipla escolha:
Código: Selecionar todos
FUNCTION DialogWask( cmsg, aSels )
LOCAL oDlg, oShape1, oBitmap1, ocmd1, ocmd2, oCmd3, oLabel1, oCmd4 ;
, oCmd5
INIT DIALOG oDlg TITLE "Selecione a opcao... " ;
COLOR 16777215 ;
AT 0, 0 SIZE 600,122 ;
FONT HFont():Add( 'Verdana',0,-15,400,,,) CLIPPER NOEXIT ;
STYLE WS_POPUP+WS_CAPTION+DS_CENTER ;
ON INIT {|This| onDlgInit( This ) }
__objAddData( oDlg, "cmsg" ); oDlg:cmsg := cmsg
__objAddData( oDlg, "aSels" ); oDlg:aSels := aSels
Thisform := oDlg
@ 15,71 SHAPE oShape1 SIZE 572,4 ;
BACKCOLOR 255;
BACKSTYLE 2;
BORDERWIDTH 1 CURVATURE 0 BORDERSTYLE 5 FILLSTYLE 10
@ 16,10 BITMAP oBitmap1 ;
SHOW 'bmp_qst' FROM RESOURCE STRETCH 0 ;
TRANSPARENT SIZE 48,48
@ 24,81 BUTTONEX ocmd1 CAPTION "&Sim" TRANSPARENT SIZE 110,34 ;
STYLE BS_CENTER +WS_TABSTOP ;
ON CLICK {|| ocmd1_onClick( ) }
@ 137,81 BUTTONEX ocmd2 CAPTION "&Sim" TRANSPARENT SIZE 110,34 ;
STYLE BS_CENTER +WS_TABSTOP ;
ON CLICK {|| ocmd2_onClick( ) }
@ 250,81 BUTTONEX oCmd3 CAPTION "&Sim" TRANSPARENT SIZE 110,34 ;
STYLE BS_CENTER +WS_TABSTOP ;
ON CLICK {|| oCmd3_onClick( ) }
@ 70,7 SAY oLabel1 CAPTION thisform:cmsg TRANSPARENT SIZE 508,60 ;
STYLE SS_CENTER ;
COLOR 16711680 ;
ON INIT {|This| oLabel1_onInit( This ) }
oLabel1:FontBold := .T.
@ 363,81 BUTTONEX oCmd4 CAPTION "&Não" TRANSPARENT SIZE 110,34 ;
STYLE BS_CENTER +WS_TABSTOP ;
ON CLICK {|| oCmd4_onClick( ) }
@ 476,81 BUTTONEX oCmd5 CAPTION "&Não" TRANSPARENT SIZE 110,34 ;
STYLE BS_CENTER +WS_TABSTOP ;
ON CLICK {|| oCmd5_onClick( ) }
ACTIVATE DIALOG oDlg
IF EMPTY( ThisForm:lresult )
thisform:lresult := 0
ENDIF
RETURN oDlg:lresult
STATIC FUNCTION onDlgInit( This )
// recalcular o tamnho dos botoes
PRIVATE nSize, nEspaco, nWbotao, nSels, nLeft, i, cBtn
If Empty( This:asels ) .OR. LEN( This:asels ) < 2
This:asels := {"Fechar"} //{"emitir","imprimir","desistir","cancelar"}
//RETURN .f.
ENDIF
nSize := 110 * 5
nEspaco := 3 // 12/4
nsels := LEN(This:asels)
nwbotao := MIN( 245, nSize / nSels )
nEspaco := IIF( nSels > 1, 12 / ( nSels - 1 ), 10) //nEspaco +
nLeft := This:nWidth - ( nwbotao * nSels + nEspaco * nSels )
i := 1
DO WHILE i <= 5
cBtn := "oCmd"+STR(i,1)
IF i <= nsels
this:&cBtn:CAPTION := This:aSels[ i ]
this:&cBtn:Move( nLeft,, nwBotao,,0)
nLeft += nwBotao + nEspaco
ELSE
this:&cBtn:Hide()
ENDIF
i ++
ENDDO
RETURN Nil
STATIC FUNCTION ocmd1_onClick
thisform:lresult := 1
THISFORM:CLOSE()
RETURN .T.
STATIC FUNCTION ocmd2_onClick
thisform:lresult := 2
THISFORM:CLOSE()
RETURN .T.
STATIC FUNCTION oCmd3_onClick
thisform:lresult := 3
THISFORM:CLOSE()
RETURN .T.
STATIC FUNCTION oLabel1_onInit( This )
If This:Caption != Nil .And. Len( This:Caption ) < 60
This:nHeight := 42
This:nTop += 20
This:Move( ,This:nTop,, This:nHeight )
Endif
RETURN .T.
STATIC FUNCTION oCmd4_onClick
thisform:lresult := 4
THISFORM:CLOSE()
RETURN .T.
STATIC FUNCTION oCmd5_onClick
thisform:lresult := 5
THISFORM:CLOSE()
RETURN .T.
teria como apenas criar uma variavel de controle para saber que o usuário clicou no botão 1, já fechando tudo, sem apresentar nada na tela?
se sim, é dentro desta mesma função (ocmd1_onClick) que a variável tem que ser colocada (no caso do botão 1)?
Código: Selecionar todos
STATIC FUNCTION ocmd1_onClick
thisform:lresult := 1
THISFORM:CLOSE()
RETURN .T.
att,
Tales
Editado pela última vez por JoséQuintas em 18 Jul 2019 21:56, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
-
fenixsorocaba
- Usuário Nível 1

- Mensagens: 5
- Registrado em: 03 Jul 2019 11:40
- Localização: SOROCABA/SP
MsgYesNo
boa tarde! entendendo um pouco mais a função do colega Luis Basso, "finalmente" compreendi que na verdade o formulário que eu achei que abria, não é um segundo formulário...
ele é uma mensagem de exibição, que no exemplo que ele nos deu poderia ser alterada de acordo com a necessidade, para até 5 botões..(show de bola!!)
msginfo(str(DialogWask( "Selecione a Opção", {"um","dois","Três","quatro","cinco"} )))
msginfo(str(DialogWask( "Selecione a Opção", {"Sim","Não","Talvez"} )))
msginfo(str(DialogWask( "Confirme a operação", {"Ok","Cancelar"} )))
ou seja, no retorno da FUNCTION DialogWask( cmsg, aSels ), ele exibe o "clique" do botão selecionado.no caso do botão 1, = 1
STATIC FUNCTION ocmd1_onClick
thisform:lresult := 1
THISFORM:CLOSE()
RETURN .T.
agora, reformulando a minha pergunta anterior, será que existe algum outro modo que chame a função DialogWask sem ser desta forma (msginfo), para que
o usuário não tenha que clicar novamente em OK ou X para sair desta mensagem (msginfo) ?
obrigado, bom trabalho!
att,
Tales
ele é uma mensagem de exibição, que no exemplo que ele nos deu poderia ser alterada de acordo com a necessidade, para até 5 botões..(show de bola!!)
msginfo(str(DialogWask( "Selecione a Opção", {"um","dois","Três","quatro","cinco"} )))
msginfo(str(DialogWask( "Selecione a Opção", {"Sim","Não","Talvez"} )))
msginfo(str(DialogWask( "Confirme a operação", {"Ok","Cancelar"} )))
ou seja, no retorno da FUNCTION DialogWask( cmsg, aSels ), ele exibe o "clique" do botão selecionado.no caso do botão 1, = 1
STATIC FUNCTION ocmd1_onClick
thisform:lresult := 1
THISFORM:CLOSE()
RETURN .T.
agora, reformulando a minha pergunta anterior, será que existe algum outro modo que chame a função DialogWask sem ser desta forma (msginfo), para que
o usuário não tenha que clicar novamente em OK ou X para sair desta mensagem (msginfo) ?
obrigado, bom trabalho!
att,
Tales
