Jump to content
Fivewin Brasil

Ladinilson

Membros
  • Posts

    523
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by Ladinilson

  1. Confessa que tu gostou kkkk
  2. Fiz uma Dialog e depois uma outra dialog em cima e obtive essse efeito... Na dialog usei uma transparência que o efeito ficou muito bom. Na primeira Dialog... FUNCTION VENDA() LSFundoTela := "C:\FUNDOEMPRESA\FUNDO.JPG" DEFINE IMAGE oBmpLS FILE LSFundoTela DEFINE DIALOG TelMCaixa1 RESOURCE 'pedidosm3A' TITLE 'Vendas' FONT oFont COLOR nRGB(255, 255,255),RGB(255,255,255) TelMCaixa1:bPainted := { | hDC | PalBmpDraw( hDC, 0, 0, oBmpLS:hBitmap ,; oBmpLS:hPalette, ; TelMCaixa1:nWidth, ; TelMCaixa1:nHeight ) } TelMCaixa1:bStart := { || VENDA2(),TelMCaixa1:END() } ACTIVATE DIALOG TelMCaixa1 ON INIT DISPLAYT(TelMCaixa1,vFatorTVen,.f.) CENTER Na segunda Dialog... FUNCTION VENDA2() DEFINE DIALOG TelMCaixa RESOURCE 'pedidos' TITLE 'Vendas' TelMCaixa:nOpacity = 200 ACTIVATE DIALOG TelMCaixa ON INIT DISPLAYT(TelMCaixa,vFatorTVen,.f.) CENTER Lembrando que as Dialogs tem que ter o mesmo tamanho e para isso uso o no ACTIVE como: ON INIT DISPLAYT(TelMCaixa1,vFatorTVen,.f.) #include "FiveWin.ch" #include "common.ch" #include "xbrowse.ch" ********************************************************************* * NOME......: DISPLAY(oWnd,nResolution) * * VERSAO....: 3.0 - Julho de 2010 * * AUTOR.....: William de Brito Adami e FiveWidi, que iniciou este projeto * no Forum Espanhol de Fivewin . * * DESCRICAO.: Funcao para exibir a tela sempre igual em qualquer * resolucao, independente da fonte ou controle utilizado. * * PARAMETROS: oWnd: Window ou Dialog a ser redimensionado * nResolution: Numero correspondente a resolucao * que se desenhou inicialmente a tela. * ********************************************************************* function displayT( oWnd, nResolution, lFullres ) local lAutoresize:=.t. , nWhatSize:=0, lRepaint:=.t. * atencao: nResolution identifica em que resolucao foram inicialmente * desenhadas as telas, e DEVE ter um dos seguintes valores: * * 1 = 640 X 480 * 2 = 800 X 600 * 3 = 1024 X 768 * 4 = 1152 X 864 * 5 = 1280 X 800 * 6 = 1280 X 1024 * 7 = 1600 X 1200 * 8 = 768 X 1024 * 9 = 1440 X 900 * 10 = 1280 X 768 * 11 = 1280 X 720 AutResiz( lAutoresize, nWhatSize, oWnd, nResolution, lRepaint, lFullres ) return nil /* (20/08/2009) Inicio do REdesenvolvimento da funcao. Parametros recebidos : lAutoresize: ativa / desativa redimensionamento automatico nWhatSize: permite for‡ar o redimensionamento a valores concretos; permitindo desta maneira que a aplica‡ao possa ter um valor ao qual redimensionar as telas. oWnd: Objeto/janela/dialogo/controle a ser redimensionado. nResolution: Numero que identifica que resolucao tinha a tela na qual se desenhou o objeto. lRepaint: Indicador se deve repintar o objeto uma vez redimensionado. lFullres: Indica se os textos devem ser redimensionados no tamanho maximo do resource desenhado. Esta funcao deve ser utilizada no evento ON INIT do ACTIVATE das WINDOWs e DIALOGs . Exemplo: ACTIVATE DIALOG oDlg ON INIT display(oDlg,2,.t.) //desenhada em 800 X 600 -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* */ FUNCTION AutResiz( lAutoresize, nWhatSize, oWnd, nResolution, lRepaint,lFullres ) // Resolucao da tela no momento de definir os controles. Local nOriWidth, nOriHeight // o normal seria que fosse a resolucao atual da tela (nWhatSize=0). // Se permite forcar esta resolucao mediante o valor de nWhatSize=1,2,3,4,5,6,7,.... Local nWidth, nHeight // Sao as relacoes entre a resolucao de tela e a resolucao de desenho. Local nFactorWitdh, nFactorHeight Local nContador,ofonttmp DEFAULT lRepaint := .T. nOriWidth := 0 nOriHeight := 0 nWidth := 0 nHeight := 0 nContador := 0 If ABS(nResolution) = 1 nOriWidth := 640 nOriHeight := 480 ElseIf ABS(nResolution) = 2 nOriWidth := 800 nOriHeight := 600 ElseIf ABS(nResolution) = 3 nOriWidth := 1024 nOriHeight := 768 ElseIf ABS(nResolution) = 4 nOriWidth := 1152 nOriHeight := 864 ElseIf ABS(nResolution) = 5 nOriWidth := 1280 nOriHeight := 800 ElseIf ABS(nResolution) = 6 nOriWidth := 1280 nOriHeight := 1024 ElseIf ABS(nResolution) = 7 nOriWidth := 1600 nOriHeight := 1200 ElseIf ABS(nResolution) = 8 nOriWidth := 768 nOriHeight := 1024 ElseIf ABS(nResolution) = 9 nOriWidth := 1440 nOriHeight := 900 ElseIf ABS(nResolution) = 10 nOriWidth := 1280 nOriHeight := 768 ElseIf ABS(nResolution) = 11 nOriWidth := 1280 nOriHeight := 720 ElseIf ABS(nResolution) = 12 nOriWidth := 2560 nOriHeight := 1440 // 12 2560 x 1440 0.92% ElseIf ABS(nResolution) = 13 nOriWidth := 2560 nOriHeight := 1600 // 13 2560x1600 8:5 WQXGA 0.05% ElseIf ABS(nResolution) = 14 nOriWidth := 1920 nOriHeight := 1080 //14 1920x1080 16:9 HD 1080 10.97% ElseIf ABS(nResolution) = 15 nOriWidth := 1680 nOriHeight := 1050 //15 1680x1050 8:5 WSXGA+ 3.29% ElseIf ABS(nResolution) = 16 nOriWidth := 1366 nOriHeight := 768 // 16 1366x768 HD 22.98% ElseIf ABS(nResolution) = 17 nOriWidth := 1360 nOriHeight := 768 //17 1360x768 2.33% ElseIf ABS(nResolution) = 18 nOriWidth := 1280 nOriHeight := 1080 // 18 1280x1080 0.001% ElseIf ABS(nResolution) = 19 nOriWidth := 1280 nOriHeight := 960 // 19 1280x960 0.46% ElseIf ABS(nResolution) = 20 nOriWidth := 1280 nOriHeight := 600 // 20 1280x600 0.01% ElseIf ABS(nResolution) = 21 nOriWidth := 720 nOriHeight := 480 // 21 720x480 3:2 NTSC 0.001% Else ScrResolution( @nOriWidth, @nOriHeight ) Endif If nWhatSize = 1 nWidth := 640 nHeight := 480 ElseIf nWhatSize = 2 nWidth := 800 nHeight := 600 ElseIf nWhatSize = 3 nWidth := 1024 nHeight := 768 ElseIf nWhatSize = 4 nWidth := 1152 nHeight := 864 ElseIf nWhatSize = 5 nWidth := 1280 nHeight := 800 ElseIf nWhatSize = 6 nWidth := 1280 nHeight := 1024 ElseIf nWhatSize = 7 nWidth := 1600 nHeight := 1200 ElseIf nWhatSize = 8 nWidth := 768 nHeight := 1024 ElseIf nWhatSize = 9 nWidth := 1440 nHeight := 900 ElseIf nWhatSize = 10 nWidth := 1280 nHeight := 768 ElseIf nWhatSize = 11 nWidth := 1280 nHeight := 720 ElseIf nWhatSize = 12 nWidth := 2560 nHeight := 1440 // 12 2560 x 1440 0.92% ElseIf nWhatSize = 13 nWidth := 2560 nHeight := 1600 // 13 2560x1600 8:5 WQXGA 0.05% ElseIf nWhatSize = 14 nWidth := 1920 nHeight := 1080 //14 1920x1080 16:9 HD 1080 10.97% ElseIf nWhatSize = 15 nWidth := 1680 nHeight := 1050 //15 1680x1050 8:5 WSXGA+ 3.29% ElseIf nWhatSize = 16 nWidth := 1366 nHeight := 768 // 16 1366x768 HD 22.98% ElseIf nWhatSize = 17 nWidth := 1360 nHeight := 768 //17 1360x768 2.33% ElseIf nWhatSize = 18 nWidth := 1280 nHeight := 1080 // 18 1280x1080 0.001% ElseIf nWhatSize = 19 nWidth := 1280 nHeight := 960 // 19 1280x960 0.46% ElseIf nWhatSize = 20 nWidth := 1280 nHeight := 600 // 20 1280x600 0.01% ElseIf nWhatSize = 21 nWidth := 720 nHeight := 480 // 21 720x480 3:2 NTSC 0.001% Else ScrResolution( @nWidth, @nHeight ) Endif If lAutoresize .and. nOriHeight != nHeight /* Este sera o caso habitual, ao qual se pretende redimensionar os controles na resolucao da tela na qual estao viendo. */ If nResolution > 0 nFactorWitdh := nWidth / nOriWidth nFactorHeight := nHeight / nOriHeight ElseIf nResolution < 0 nFactorWitdh := nOriWidth / nWidth nFactorHeight := nOriHeight / nHeight EndIf If lRepaint oWnd:Hide() EndIf * se aumentou a altura If nFactorHeight > 1 ***************************** * se tiver barbutton * NOVO * ***************************** if ownd:obar <> NIL ownd:obar:nwidth:=ownd:obar:nwidth* nfactorwitdh ownd:obar:nHeight:=ownd:obar:nHeight*nfactorheight ownd:obar:nbtnwidth:=ownd:obar:nbtnwidth*nfactorwitdh ownd:obar:nbtnHeight:=ownd:obar:nbtnHeight*nfactorheight for i= 1 to len(ownd:obar:acontrols) ownd:obar:acontrols[i]:Move( ownd:obar:acontrols[i]:nTop * nFactorHeight , ; ownd:obar:acontrols[i]:nLeft * nFactorWitdh, ; ownd:obar:acontrols[i]:nWidth * nFactorWitdh, ; ownd:obar:acontrols[i]:nHeight * nFactorHeight , ; .F. ) * redimensiona o BMP da BARBUTTON o:=ownd:obar:acontrols[i]:hbitmap1 if o<>0 hbmp:=ownd:obar:acontrols[i]:hbitmap1 nbmpwidth := nbmpwidth(hbmp) nbmpheight:= nbmpheight(hbmp) larg:=nbmpwidth*nfactorwitdh alt:=nbmpheight*nfactorheight o:=resizebmp(o,larg ,alt ) ownd:obar:acontrols[i]:hbitmap1:=o endif next ownd:obar:refresh() endif If oWnd:ClassName()$"/TIMAGE/" ad:=getcoors(ownd:hWnd) oWnd:Move( oWnd:nTop * nFactorHeight , ; oWnd:nLeft * nFactorWitdh, ; ((ad[4]-ad[2])) * nFactorWitdh, ; ((ad[3]-ad[1])) * nFactorHeight , ; .F. ) Else oWnd:Move( oWnd:nTop * nFactorHeight , ; oWnd:nLeft * nFactorWitdh, ; oWnd:nWidth * nFactorWitdh, ; oWnd:nHeight * nFactorHeight , ; .F. ) EndIf EndIf if oWnd:ClassName()$"/TFOLDER/TPAGES/" If ValType( oWnd:aDialogs ) = "A" For nContador := 1 To Len( oWnd:aDialogs ) AutResiz( lAutoresize, nWhatSize, oWnd:aDialogs[nContador], nResolution, .F.,lFullres ) EndFor EndIf Elseif oWnd:ClassName()$"/TBTNBMP/" ********************************* * redimensiona o BMP do BTNBMP o:=oWnd:hbitmap1 if o<>0 hbmp:=ownd:hbitmap1 nbmpwidth := nbmpwidth(hbmp) nbmpheight:= nbmpheight(hbmp) larg:=nbmpwidth*nfactorwitdh alt:=nbmpheight*nfactorheight o:=resizebmp(o,larg ,alt ) oWnd:hbitmap1:=o endif ********************************* elseif oWnd:ClassName()$"/TCOMBOBOX/TDBCOMBO/" Else If ValType( oWnd:aControls ) = "A" For nContador := 1 To Len( oWnd:aControls ) AutResiz( lAutoresize, nWhatSize, oWnd:aControls[nContador], nResolution, .F.,lFullres ) * ajuste de fontess * controle TSAY if ownd:acontrols[nContador]:classname$"/TSAY/TSAYREF/" ajustaalt(ownd:acontrols[nContador],nfactorheight,lFullres) ajustalarg(ownd:acontrols[nContador],ownd,nfactorwitdh,lFullres) ELSEif ownd:acontrols[nContador]:classname$"/TGET/TSSAY/TDSAY/" ajustaalt(ownd:acontrols[nContador],nfactorheight,lFullres) ajl_FLD(ownd:acontrols[nContador],nFactorWitdh) ELSEif ownd:acontrols[nContador]:classname$"/TFOLDER/TPAGES/TCOMBOBOX/TGROUP/TTREE/TCHECKBOX/TBTNBMP/TTOOLBAR/TRADIO/TDBCOMBO/TTABS/TXBROWSE/TSBROWSE/TWBROWSE/" aja_FLD(ownd:acontrols[nContador],nFactorHeight) ajl_FLD(ownd:acontrols[nContador],nFactorWitdh) endif EndFor EndIf EndIf * se diminuiu a altura If nFactorHeight < 1 ***************************** * se tiver barbutton * NOVO * ***************************** if ownd:obar <> NIL ownd:obar:nwidth:=ownd:obar:nwidth* nfactorwitdh ownd:obar:nHeight:=ownd:obar:nHeight*nfactorheight ownd:obar:nbtnwidth:=ownd:obar:nbtnwidth*nfactorwitdh ownd:obar:nbtnHeight:=ownd:obar:nbtnHeight*nfactorheight for i= 1 to len(ownd:obar:acontrols) ownd:obar:acontrols[i]:Move( ownd:obar:acontrols[i]:nTop * nFactorHeight , ; ownd:obar:acontrols[i]:nLeft * nFactorWitdh, ; ownd:obar:acontrols[i]:nWidth * nFactorWitdh, ; ownd:obar:acontrols[i]:nHeight * nFactorHeight , ; .F. ) * redimensiona o BMP da BARBUTTON o:=ownd:obar:acontrols[i]:hbitmap1 if o<>0 hbmp:=ownd:obar:acontrols[i]:hbitmap1 nbmpwidth := nbmpwidth(hbmp) nbmpheight:= nbmpheight(hbmp) larg:=nbmpwidth*nfactorwitdh alt:=nbmpheight*nfactorheight o:=resizebmp(o,larg ,alt ) ownd:obar:acontrols[i]:hbitmap1:=o endif next ownd:obar:refresh() endif *************************************** if oWnd:ClassName()$"/TIMAGE/" ad:=getcoors(ownd:hWnd) oWnd:Move( oWnd:nTop * nFactorHeight , ; oWnd:nLeft * nFactorWitdh, ; ((ad[4]-ad[2])) * nFactorWitdh, ; ((ad[3]-ad[1])) * nFactorHeight , ; .F. ) Elseif oWnd:ClassName()$"/TBTNBMP/" oWnd:Move( oWnd:nTop * nFactorHeight , ; oWnd:nLeft * nFactorWitdh, ; oWnd:nWidth * nFactorWitdh, ; oWnd:nHeight * nFactorHeight , ; .F. ) ********************************* * redimensiona o BMP do BTNBMP o:=oWnd:hbitmap1 if o<>0 hbmp:=ownd:hbitmap1 nbmpwidth := nbmpwidth(hbmp) nbmpheight:= nbmpheight(hbmp) larg:=nbmpwidth*nfactorwitdh alt:=nbmpheight*nfactorheight o:=resizebmp(o,larg ,alt ) oWnd:hbitmap1:=o endif ********************************* Else oWnd:Move( oWnd:nTop * nFactorHeight , ; oWnd:nLeft * nFactorWitdh, ; oWnd:nWidth * nFactorWitdh, ; oWnd:nHeight * nFactorHeight , ; .F. ) endif If ValType( oWnd:aControls ) <> "A" * ajuste de fontess * controle TSAY if ownd:classname$"/TSAY/TSAYREF/" ajustaalt(ownd,nfactorheight,lFullres) ajustalarg(ownd,ownd,nfactorwitdh,lFullres) ELSEif ownd:classname$"/TGET/TSSAY/TDSAY/" ajustaalt(ownd,nfactorheight,lFullres) ajl_FLD(ownd,nFactorWitdh) ELSEif ownd:classname$"/TFOLDER/TPAGES/TCOMBOBOX/TGROUP/TTREE/TCHECKBOX/TBTNBMP/TTOOLBAR/TRADIO/TDBCOMBO/TTABS/TXBROWSE/TSBROWSE/TWBROWSE/" aja_FLD(ownd,nFactorHeight) ajl_FLD(ownd,nFactorWitdh) endif EndIf EndIf If lRepaint if oWnd:lCentered // *** AAA ***// oWnd:Center() // *** AAA ***// endif // *** AAA ***// oWnd:Show() EndIf *************************************** * se for resolucao igual a que desenhou *************************************** elseif lAutoresize .and. nOriHeight = nHeight if lfullres If nResolution > 0 nFactorWitdh := nWidth / nOriWidth nFactorHeight := nHeight / nOriHeight ElseIf nResolution < 0 nFactorWitdh := nOriWidth / nWidth nFactorHeight := nOriHeight / nHeight EndIf If oWnd:ClassName()$"/TFOLDER/TPAGES/" If ValType( oWnd:aDialogs ) = "A" For nContador := 1 To Len( oWnd:aDialogs ) AutResiz( lAutoresize, nWhatSize, oWnd:aDialogs[nContador], nResolution, .F.,lfullres ) EndFor EndIf elseif oWnd:ClassName()$"/TIMAGE/" //TBITMAP/TLISTBOX/TWBROWSE/TSSAY/TDSAY/TSAYREF/" ad:=getcoors(ownd:hWnd) oWnd:Move( oWnd:nTop * nFactorHeight , ; oWnd:nLeft * nFactorWitdh, ; ((ad[4]-ad[2])) * nFactorWitdh, ; ((ad[3]-ad[1])) * nFactorHeight , ; .F. ) elseif oWnd:ClassName()$"/TCOMBOBOX/TDBCOMBO/" Else If ValType( oWnd:aControls ) = "A" For nContador := 1 To Len( oWnd:aControls ) AutResiz( lAutoresize, nWhatSize, oWnd:aControls[nContador], nResolution, .F.,lfullres ) * ajuste de fontes * controle TSAY if ownd:acontrols[nContador]:classname$"/TSAY/TSAYREF/" ajustaalt(ownd:acontrols[nContador],nfactorheight,lFullres) ajustalarg(ownd:acontrols[nContador],ownd,nfactorwitdh,lFullres) ELSEif ownd:acontrols[nContador]:classname$"/TGET/TSSAY/TDSAY/" ajustaalt(ownd:acontrols[nContador],nfactorheight,lFullres) ajl_FLD(ownd:acontrols[nContador],nFactorWitdh) ELSEif ownd:acontrols[nContador]:classname$"/TFOLDER/TPAGES/TCOMBOBOX/TGROUP/TTREE/TCHECKBOX/TBTNBMP/TTOOLBAR/TRADIO/TDBCOMBO/TTABS/TXBROWSE/TSBROWSE/TWBROWSE/" aja_FLD(ownd:acontrols[nContador],nFactorHeight) ajl_FLD(ownd:acontrols[nContador],nFactorWitdh) endif EndFor EndIf EndIf endif EndIf Return Nil FUNCTION AjustaLarg(oq,ownd,nfact,lfullres) * se nao tiver fonte atribuida, nao faz ! LOCAL cFontName := iif ( oq:oFont=NIL , "NAOFAZ" ,oq:oFont:cFaceName ) LOCAL lFlagReleaseFont := .F.,; nAlturaDaFonte,; nLarguraDaFonte := oq:ofont:nwidth,; nLarguraDoControle ,; nTime := SECONDS()+3,; oFontTmp,ofont if cFontName="NAOFAZ" return nil endif if oq:oFont:nWidth = NIL // *** AAA ***// oq:oFont:nWidth := 0 // *** AAA ***// endif // *** AAA ***// nAlturaDaFonte := oq:oFont:nHeight nlarguradafonte:=nlarguradafonte*nfact nLarguraDoControle := oq:nWidth if lFullres WHILE SECONDS() < nTime // Evita congelamento da aplicação caso não seja possível recalcular a fonte nLarguraDaFonte += 1 // Nao funciona com numeros facionados DEFINE FONT oFontTmp; NAME cFontName; SIZE nLarguraDaFonte,ABS(nAlturaDaFonte) lFlagReleaseFont := .T. IF oWnd:GetWidth(oq:varget(),oFontTmp) >= nLarguraDoControle EXIT ENDIF oq:SetFont(oFontTmp) oFont := oq:ofont //osay:GetFont() RELEASE FONT oFontTmp lFlagReleaseFont := .F. ENDDO IF lFlagReleaseFont RELEASE FONT oFontTmp ENDIF oq:SetFont(oFont) else DEFINE FONT oFontTmp; NAME cFontName; SIZE abs(nLarguraDaFonte),ABS(nAlturaDaFonte) oq:SetFont(oFontTmp) oFont := oq:ofont //osay:GetFont() RELEASE FONT oFontTmp endif * oq:Refresh() RETURN NIL FUNCTION AjustaAlt(oq,fact,lFullres) * se nao tiver fonte , nao faz ! LOCAL cFontName := iif ( oq:oFont=NIL , "NAOFAZ" ,oq:oFont:cFaceName ) LOCAL lFlagReleaseFont := .F., nAlturaDaFonte, nAlturaDoControle LOCAL nLarguraDaFonte, nTime:= SECONDS()+3, oFontTmp,ofont * se nao tiver fonte, volta sem ajustar if cfontname="NAOFAZ" return nil endif if oq:oFont:nWidth = NIL // *** AAA ***// oq:oFont:nWidth := 0 // *** AAA ***// endif // *** AAA ***// nAlturaDaFonte:=oq:ofont:nheight if lFullres * se tiver fonte , ajusta nAlturaDoControle := (oq:nHeight)-6 nLarguraDaFonte := oq:oFont:nWidth nAlturadaFonte:=nalturadafonte*fact WHILE SECONDS() < nTime // Evita congelamento da aplicação caso não seja possível recalcular a fonte nAlturaDaFonte += 0.1 // Na altura o fracionamento funcionou DEFINE FONT oFontTmp; NAME cFontName; SIZE nLarguraDaFonte,nAlturaDaFonte lFlagReleaseFont := .T. IF oFontTmp:nHeight >= nAlturaDoControle EXIT ENDIF oq:SetFont(oFontTmp) oFont := oq:ofont //oSay:GetFont() RELEASE FONT oFontTmp lFlagReleaseFont := .F. ENDDO IF lFlagReleaseFont RELEASE FONT oFontTmp ENDIF oq:SetFont(oFont) else nLarguraDaFonte := oq:oFont:nWidth nAlturadaFonte:=nalturadafonte*fact DEFINE FONT oFontTmp; NAME cFontName; SIZE abs(nLarguraDaFonte),ABS(nAlturaDaFonte) oq:SetFont(oFontTmp) oFont := oq:ofont //osay:GetFont() RELEASE FONT oFontTmp endif * oq:Refresh() RETURN NIL FUNCTION ajl_FLD(oq,nf) * se nao tiver fonte , nao faz LOCAL cFontName := iif ( oq:oFont=NIL , "NAOFAZ" ,oq:oFont:cFaceName ) LOCAL lFlagReleaseFont := .F., nAlturaDaFonte, nLarguraDaFonte := 0,; nLarguraDoControle ,nTime:= SECONDS()+3, oFontTmp,ofont if cfontname="NAOFAZ" return nil endif if oq:oFont:nWidth = NIL // *** AAA ***// oq:oFont:nWidth := 0 // *** AAA ***// endif // *** AAA ***// nLarguraDoControle := oq:nWidth nAlturaDaFonte := oq:oFont:nHeight nLarguraDaFonte = nLarguraDaFonte*nf DEFINE FONT oFontTmp; NAME cFontName; SIZE abs(nLarguraDaFonte),ABS(nAlturaDaFonte) oq:SetFont(oFontTmp) oFont := oq:ofont //osay:GetFont() RELEASE FONT oFontTmp If oq:ClassName()$"/TXBROWSE/" for i=1 to len(oq:acols) * pega tamanho anterior X factor ov:=oq:aCols[i]:nWidth * nf * atualiza o novo tamanho da coluna oq:aCols[i]:nWidth := ov next elseif oq:classname$"/TDSAY/" oq:Refresh() elseif oq:ClassName()$"/TWBROWSE/" * atualiza a largura das colunas for i=1 to len(oq:acolsizes) oq:acolsizes[i]:=oq:acolsizes[i]*nf next endif * oq:Refresh() RETURN NIL FUNCTION aja_FLD(oq,nf) LOCAL cFontName := iif ( oq:oFont=NIL , "NAOFAZ" ,oq:oFont:cFaceName ) LOCAL lFlagReleaseFont := .F., nAlturaDaFonte := 0,; nLarguraDaFonte, oFontTmp,ofont if cfontname="NAOFAZ" return nil endif if oq:oFont:nWidth = NIL // *** AAA ***// oq:oFont:nWidth := 0 // *** AAA ***// endif // *** AAA ***// nLarguraDaFonte := oq:oFont:nWidth nAlturadaFonte:=nalturadafonte*nf DEFINE FONT oFontTmp; NAME cFontName; SIZE abs(nLarguraDaFonte),ABS(nAlturaDaFonte) oq:SetFont(oFontTmp) oFont := oq:ofont //osay:GetFont() RELEASE FONT oFontTmp If oq:ClassName()$"/TXBROWSE/" oq:nRowHeight := oq:nRowHeight* nf oq:nStretchcol:=STRETCHCOL_LAST elseif oq:ClassName()$"/TSBROWSE/" oq:nHeightCell:=oq:nHeightCell * nf * oq:nheightHead:=oq:nheightHead*nf * oq:nheightFoot:=oq:nheightFoot*nf endif * oq:Refresh() RETURN NIL Espero que ajude! Abraços
  3. Amigo entendo pelo seu vasto conhecimento em várias linguagens mas a postagem do amigo é sobre IDADE e SAÚDE. Deves ser uma cara novo e entendo sua busca e estudo sobre outras linguagens mas quem é das antigas como eu que programei em dBase III depois mudei para o Clipper Summer 87 e em meados de 1992 conheci o Fivewin pela necessidade da plataforma gráfica, tive todo o tempo para estudar os botões, dialogs e penduricários pois tive uma grande alegria e esperança diga-se de passagem na linguagem a AGRADEÇO MUITO a ela e jamais iria diminuir a mesma que tento foi e é nossa "companheira". Imagine um sistema de automação comercial ter que mudar toda a linguagem, corrigir bugs e procurar bibliotecas que substitem as DLLs e LIBs da nossa vida além de ter clientes querendo sua caveira quando tudo trava ou o registro "some" como era um erro do xBase antes lembra? Pois é, essa postagem e sobre aposentadoria e não ter mais saúde e tempo para ficar madrugadas a fio na frente de um monitor. Abraços
  4. Posso até entender que tudo gira em torno de ferramentas para acessar em qualquer lugar e em qualquer smartphone mas tenho como por exemplo, servidores em nuvens para isso e todos vocês conhecem ferramentas alternativas. Falo por mim como "desânimo", aprender quase 90% novamente de todo o conhecimento que tive durante a vida pois os comandos e sintaxes estão na mente e as linhas de código saem naturalmente mas a falta de tempo e idade para isso de desenvolver em outra ferramenta não nos permite mais e acho que pode ser um ponto do caso do amigo mas entendo a necessidade de inovações mas convenhamos...."tortura" é demais hein! Pra mim tortura e o que o João passa com o Corinthians dele! kkkk
  5. Bom dia, A todos queria dizer que quem desenvolveu seus produtos, ficará apenas no suporte pois a internet em banda larga facilitou MUITO nossa empreitada e acreditem, POUCAS PROFISSÕES podem lhe dar um certo "conforto" (mas é claro que devemos estar sempre de olho nas inovações) pois acreditem, tem gente com sistemas em Clipper no DOS e até hoje ganham seu dinheiro apenas no suporte então o que seria "se aposentar". Obrigado
  6. Tudo bem sofredor kkk aEmpresa:= "" cQuery := "SELECT * FROM serial WHERE serial_id = '123456789'" // <- Numero do seu serial oSql:exec( cQuery,,.t.,@aEmpresa ) vsenha := aEmpresa[1][1] // <- Verifica o campo senha para liberar (campo 1 do arquivo) XBROWSE(aEmpresa) // <- para ver todos os campos do SELECT que foram atribuídos para a array Regards, salutos.
  7. Não entendi bulhufas mas seria nessa linha... oRsPar := FW_OpenRecordSet(oApp:oCon,"SELECT " +; ...
  8. Bom dia senhores, Desculpem minha falta total de conhecimento em SQL mas queria ver o que esta errado na linha onde declaro a varável e se esta tudo errado kkk O intuito é filtrar o campo SERIAL_ID e atribuir o valor do campo SENHA a uma variável de nome VSENHA. oSql := SR_GetConnection() cQuery := "SELECT * FROM serial WHERE serial_id = "+"'"+ALLTRIM(STR(nSerialHD(),20))+"'" oSql:exec(cQuery) cQuery := "DECLARE @vsenha VARCHAR(10)" oSql:exec(cQuery) cQuery := "SELECT senha INTO vsenha" oSql:exec(cQuery) ?? vsenha Obrigado
  9. Tente dar uma "aliviada" na memória a cada envio com : HB_GCALL( .T. ) Espero que ajude. E o Corinthinas e Vasco começa seu ano bem kkkkkk
  10. Acho que quiz dizer aqueles que não precisam de uma caixa (humano) e funcionam com uma tela touch screen, uma pin pad e impressora. Comum em condomínios e aqui no condomínio tem do Mateus.
  11. Amigo boa tarde, queria mais informações da versão que tens do FastReport. Poderia me contactar no ladinilson@hotmail.com ou 91 98054-9339 (Whatsapp)
  12. Queria também alguns recursos mas ninguém consegue falar com eles imagina ter este recurso. Marca e Teotokos me chamem no email: ladinilson@hotmail.com
  13. Já tinha baixado e testado! Versão 4.15 demo
  14. Bom tarde, No site do Xailler tem a versão 4.15 para baixar para demo e nela já tem a opção do QR Code no código de barras. Alguém tem esta versão? Se tem me mande seu contato para saber como conseguiu e tirar dúvidas por favor! Obrigado
  15. kkkkk Todo corinthiano é conservador kkkkkk
  16. É só trocar esse seu PC-XT que até o Windows 3.1 funciona de boa! kkkkkkkkkkkkkk
  17. Percebi que só acontece no Chrome, no Edge esta normal! Obrigado
  18. Bom dia senhores, Por favor quem for o responsável do forum ajeitar a pesquisa na questão de acessar as página pois quando preciso e acredito que os senhores também, procuro a solução nas postagens já feitas. Obrigado
  19. Infelizmente NENHUM mas NENHUM chega perto do Team Viewer. Fato!
  20. Mandei e-mail, mandei mensagem pelo message do face e nenhuma resposta até hoje
  21. Boa tarde caros colegas, Como faço um filtro para multiplos elementos dentro de uma array por exemplo: AADD(aCartelas,{Cartelas->n01,Cartelas->n02,Cartelas->n03,Cartelas->n04,Cartelas->n05,Cartelas->n06,Cartelas->n07,Cartelas->n08,Cartelas->n09,Cartelas->n10,Cartelas->n11,Cartelas->n12,; Cartelas->n13,Cartelas->n14,Cartelas->n15,Cartelas->n16,Cartelas->n17,Cartelas->n18,Cartelas->n19,Cartelas->n20,Cartelas->n21,Cartelas->n22,Cartelas->n23,Cartelas->n24}) E filtrar todos que tenham o valor 10 em qualquer posição por exemplo? Obrigado
  22. Boa tarde meus caros, Vi no forum Fivetech e achei muito interessante... https://forums.fivetechsupport.com/viewtopic.php?f=6&t=43606&p=262819&hilit=webview&sid=8efa6c7f71a54c2ccc82865186ca336e#p262819 Alguém já testou ou fez algo? Abraços
  23. A dúvida amigo é onde podemos comprar e como comprar.
×
×
  • Create New...