alex2002 Posted November 21, 2020 Report Share Posted November 21, 2020 Olá pessoal, Tenho notado que nos micros mais novos, as dialogs estão ficando muito pequenas. Sei que no fórum aqui houve uma solução pra isso. Alguém lembra ou usa a solução? Quero aumentar o tamanho da dialog de acordo com a resolução do windows, assim consigo fazer ficar bacana o sistema. Mas não me lembro nem a pau onde está essa solução. Um abraço, Alexandre Pereira Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 23, 2020 Report Share Posted November 23, 2020 http://forums.fivetechsupport.com/viewtopic.php?f=6&t=19298&p=164219&hilit=display3#p164219 Abs. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 23, 2020 Report Share Posted November 23, 2020 New Dowlnoad: https://mega.nz/file/dRd0Wb4S#mpX40r-Nu50evm3P0BuXxgUrObniAl9RR4Eplb8ovcM Xeiro... Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 23, 2020 Report Share Posted November 23, 2020 PUTZ, não dá para usa isso, gera uma LENTIDÃO do kraliyio(), e fica tudo distorcido no diálogo. Testa ahi Alex e me diz. Abs. Quote Link to comment Share on other sites More sharing options...
alex2002 Posted November 23, 2020 Author Report Share Posted November 23, 2020 Vou testar e te falo. Obrigado Jão. Alexandre Pereira Quote Link to comment Share on other sites More sharing options...
mkyx Posted November 24, 2020 Report Share Posted November 24, 2020 Pode fazer assim: Local aCoors := GetCoors( FindWindow("Shell_TrayWnd","") )DEFINE DIALOG oDlg FROM 0,0 TO aCoors[1]-30, aCoors[4]-7 PIXEL TITLE "TODA LA PANTALLA" ou assim: nCol:=GetSysMetrics(0) nLin:=GetSysMetrics(1) DEFINE DIALOG oDlg FROM 0,0 TO nLin-20,nCol-30 title "Título do diálogo" PIXEL Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 24, 2020 Report Share Posted November 24, 2020 E para RECURSOS? Eu e o Alex, usamos RECURSOS... aBS. Quote Link to comment Share on other sites More sharing options...
alex2002 Posted November 24, 2020 Author Report Share Posted November 24, 2020 12 horas atrás, mkyx disse: Pode fazer assim: Local aCoors := GetCoors( FindWindow("Shell_TrayWnd","") )DEFINE DIALOG oDlg FROM 0,0 TO aCoors[1]-30, aCoors[4]-7 PIXEL TITLE "TODA LA PANTALLA" ou assim: nCol:=GetSysMetrics(0) nLin:=GetSysMetrics(1) DEFINE DIALOG oDlg FROM 0,0 TO nLin-20,nCol-30 title "Título do diálogo" PIXEL Obrigado amigo, Mas a solução não seria apenas redimensionar a dialog mas sim todo o conteúdo dentro. Exatamente a solução que o João postou (não testei ainda nos meus fontes, mas vi que é exatamente isso pelo que observei do exemplo). O que tem acontecido é que hoje as resoluções são cada vez melhores e os monitores maiores, isso faz com que o GET, SAY, BUTTON... por exemplo fiquem nanico nestas telas e chega a ficar feio. Para podermos aumentar tudo fica complicado, teríamos que mexer em tamanho das fontes além de redimensionar tudo. A solução que o João postou faz exatamente isso, ela redimensiona fazendo um relacionamento entre o que foi desenhado e a resolução atual. Assim que testar eu posto o parecer aqui. Um abraço, Alexandre Pereira Quote Link to comment Share on other sites More sharing options...
rochinha Posted November 27, 2020 Report Share Posted November 27, 2020 Amiguinhos, A EasyDialog fazisto. Quote Link to comment Share on other sites More sharing options...
betovsp Posted November 27, 2020 Report Share Posted November 27, 2020 15 horas atrás, rochinha disse: Amiguinhos, A EasyDialog fazisto. Onde tem essa classe Rochinha? Quote Link to comment Share on other sites More sharing options...
rochinha Posted November 28, 2020 Report Share Posted November 28, 2020 Amiguinhos, Acho que na área de download do forum. Creio que o auto liberou esta classe junto com EasyReport. Quote Link to comment Share on other sites More sharing options...
joaosolution Posted December 1, 2020 Report Share Posted December 1, 2020 Boa tarde Utilizo a opção da clase Display.prg, não verifiquei lentidão. É trabalhoso pois quem trabalha com recursos terá que declarar todos os itens das dialogs, say, label,etc. Caso queiram alguma ajuda estou a disposição. Att João Bosco Quote Link to comment Share on other sites More sharing options...
kapiaba Posted December 1, 2020 Report Share Posted December 1, 2020 Boas notícias do Liñares. http://forums.fivetechsupport.com/viewtopic.php?f=6&t=19298&start=30 Abs Quote Link to comment Share on other sites More sharing options...
Ariston Santos Posted December 6, 2020 Report Share Posted December 6, 2020 Uso este método da dialog.prg (modificada) que tá dando certo até o momento. Modo de usar: ACTIVATE DIALOG oDlg ON INIT (oDlg:MISetSize(.T.), oDlg(0, 0)) Método declarado na dialog.prg METHOD MISetSize( lChFnt ) Método definido: METHOD MISetSize( lChFnt ) CLASS TDialog LOCAL hDlg := ::hWnd LOCAL hCtrl := GetWindow( hDlg, GW_CHILD ) LOCAL hFont, oFont, I, AINFO, aRect, nWidth, nHeight, lRepaint:=.T. LOCAL nPorH, nPorV, nIdControl, nPosControl DEFAULT lChFnt := .F. aPor := DLG_RESOLUCION( Self ) nPorH := aPor[1] nPorV := aPor[2] if nPorh=1 .and. nPorv=1 return nil endif nWidth := ::nWidth * nPorH nHeight:= ::nHeight * nPorV Super:SetSize( nWidth, nHeight, lRepaint ) ::Move( MAX( WndTop( hDlg),1), MAX(WndLeft( hDlg),1) ) **** Redimensionamento dos Controles While hCtrl != 0 .AND. GetParent( hCtrl ) == hDlg aRect := GetClientRect( hCtrl ) nWidth := (aRect[4]-aRect[2]) * nPorH nHeight := (aRect[3]-aRect[1]) * nPorV WndSetSize( hCtrl, nWidth, nHeight, lRepaint ) WndLeft( hCtrl, WndLeft( hCtrl) * nPorh) WndTop( hCtrl, WndTop( hCtrl) * nPorv) hCtrl = GetWindow( hCtrl, GW_HWNDNEXT ) Enddo *** Redimensionamento das Fontes FOR I=1 TO LEN(::aControls) IF ::aControls[I]:ofont != nil hFont := ::aControls[I]:ofont:hFont aInfo = GetFontInfo( hFont ) oFont = TFont():New( ::aControls[I]:ofont:cFaceName, ; IIF(!lChFnt, aInfo[2], (aInfo[2]*nPorH)), (aInfo[1] * nPorV),,; ::aControls[I]:ofont:lBold, ; ::aControls[I]:ofont:nEscapement, ; ::aControls[I]:ofont:nOrientation, ; aInfo[3], ::aControls[I]:ofont:lItalic, ; ::aControls[I]:ofont:lUnderline, ; ::aControls[I]:ofont:lStrikeOut, ; ::aControls[I]:ofont:nCharSet, ; ::aControls[I]:ofont:nOutPrecision, ; ::aControls[I]:ofont:nClipPrecision, ; ::aControls[I]:ofont:nQuality, ) ::aControls[I]:SETFONT(ofont) endif NEXT SysRefresh() Return Nil FUNCTION DLG_RESOLUCION( oDlg ) LOCAL aPor := {1,1},; nWidth := GetSysMetrics(0),; nHeight := GetSysMetrics(1) nTWid := WndWidth(FindWindow( 'Shell_TrayWnd',nil)) IF nTWid < nWidth // TrayBar position: Right or left * nWidth -= nTWid ENDIF nThei := WndHeight(FindWindow( 'Shell_TrayWnd',nil)) IF nThei < nHeight // TrayBar position: Bottom or top * nHeight -= nThei ENDIF nBwid := ((100/oDlg:nWidth)*nWidth)/100 nBhei := ((100/oDlg:nHeight)*nHeight)/100 aPor := {nBwid, nBhei} RETURN aPor Quote Link to comment Share on other sites More sharing options...
kapiaba Posted December 7, 2020 Report Share Posted December 7, 2020 Ariston, O correto, não seria: ACTIVATE DIALOG oDlg ON INIT( oDlg:MISetSize( .T. ), oDlg:MISetSize( 0, 0 ) ) Abs. Quote Link to comment Share on other sites More sharing options...
Ariston Santos Posted December 7, 2020 Report Share Posted December 7, 2020 Opa! ACTIVATE DIALOG oDlg ON INIT( oDlg:MISetSize( .T. ), oDlg:Move( 0, 0 ) ) Obrigado, Mestre. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted December 7, 2020 Report Share Posted December 7, 2020 Ariston, como diminuo a FONTE, tá grande para caramba, e fica parecendo tela de MODO CONSOLE. mas funciona. Quote Link to comment Share on other sites More sharing options...
Ariston Santos Posted December 7, 2020 Report Share Posted December 7, 2020 Neste trecho a fonte é redimensionada. Veja aí o que pode ser feito. IF ::aControls[I]:ofont != nil hFont := ::aControls[I]:ofont:hFont aInfo = GetFontInfo( hFont ) oFont = TFont():New( ::aControls[I]:ofont:cFaceName, ; IIF(!lChFnt, aInfo[2], (aInfo[2]*nPorH)), (aInfo[1] * nPorV),,; ::aControls[I]:ofont:lBold, ; ::aControls[I]:ofont:nEscapement, ; ::aControls[I]:ofont:nOrientation, ; aInfo[3], ::aControls[I]:ofont:lItalic, ; ::aControls[I]:ofont:lUnderline, ; ::aControls[I]:ofont:lStrikeOut, ; ::aControls[I]:ofont:nCharSet, ; ::aControls[I]:ofont:nOutPrecision, ; ::aControls[I]:ofont:nClipPrecision, ; ::aControls[I]:ofont:nQuality, ) ::aControls[I]:SETFONT(ofont) endif Especificamente aqui: IIF(!lChFnt, aInfo[2], (aInfo[2]*nPorH)), (aInfo[1] * nPorV),,; Ah. Na função DLG_RESOLUCION( oDlg ), descomente as linhas para ficar conforme abaixo, senão não será levada em consideração a barra de botões do Windows. nTWid := WndWidth(FindWindow( 'Shell_TrayWnd',nil)) IF nTWid < nWidth // TrayBar position: Right or left nWidth -= nTWid /* Descomentada */ ENDIF nThei := WndHeight(FindWindow( 'Shell_TrayWnd',nil)) IF nThei < nHeight // TrayBar position: Bottom or top nHeight -= nThei /* Descomentada */ ENDIF Quote Link to comment Share on other sites More sharing options...
kapiaba Posted December 7, 2020 Report Share Posted December 7, 2020 KKKKKKK, a bunito, "jogou" a bomba pra mim.... kkkkkkkkkkkkkkkkkkkkkkk Quote Link to comment Share on other sites More sharing options...
Ariston Santos Posted December 7, 2020 Report Share Posted December 7, 2020 É que eu ainda não precisei fazer esse tipo de modificação. Para min sempre deu certo. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.