Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
5 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 4 Visitantes :: 1 Motor de busca

AMELIO

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
ACESSAR WEBSERVICE COM HTTPS

5/4/2018, 14:48 por AJC

Pessoal recebi este material em C# preciso fazer esta função em vfp9

YourBeanService port = new …

Comentários: 0

REPORT FORM - GERAR 2 RELATORIOS

18/3/2018, 19:02 por AJC

Pessoal, estou tentando gerar dois tipos de relatorio no report form
ou seja
primeira folha - …

Comentários: 2

dll pertocheck

15/12/2016, 12:45 por FERNANDOMATRELLA

Alguem teria ja desenvolvido a comunicação com essa dll estou tento muito trabalho aqui e nenhum …

Comentários: 2

Informações CPF e CNPJ

21/2/2014, 09:46 por mauro victoria

Por favor,
fiquei sabendo da possibilidade de ao digitar o CPF ou CNPJ, o sistema vai no site da …

Comentários: 6

automação do mozilla e chrome

15/1/2017, 12:16 por Handerson Mildroz

Boa tarde a todos!

Sou iniciante no VFP. Preciso de ajuda, pois tenho um código que usa o …

Comentários: 1

Estatísticas
Temos 7095 usuários registrados
O último usuário registrado atende pelo nome de Robson0

Os nossos membros postaram um total de 12257 mensagens em 1554 assuntos

Linhas Editbox

Ir em baixo

Linhas Editbox

Mensagem por Rosangela Pires em 30/5/2016, 01:39

Amigos,

Temos como saber o numero de linhas de um editbox, mesmo diminuindo ou aumentando a largura do editbox.
Rosangela
avatar
Rosangela Pires
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Re: Linhas Editbox

Mensagem por lardecristo em 2/6/2016, 10:04

Para usar é só passar o objeto.
Por exemplo:
Código:
lnLinha = GetVisibleLines(THISFORM.Edit1)
MESSAGEBOX(lnLinha)
[Você precisa estar registrado e conectado para ver este link.]

Código:
#INCLUDE FoxPro.h

*==================================
FUNCTION GetVisibleLines(oObj)
   * oObj - Editbox reference
   * returns: number of visible lines
   * asLines - array filled with lines as you see them in an Editbox
   * asLines is optional parameter

   LOCAL i, sValue, nSolidLines, s
   LOCAL nWidth, sFontStyle, nSize, nLines, sLines[1]

   WITH oObj
      nWidth= .Width- 2*(.Margin+IIF(.BorderStyle=0,0,2))-IIF(.ScrollBars=2,22,2) &&string width in Editbox

      sValue= .Value
      nSolidLines= ALINES(sLines,sValue)

      nSolidLines= IIF(nSolidLines#1, nSolidLines, IIF(EMPTY(sLines[1]),0,nSolidLines))
      nLines= 0
      FOR i=1 TO nSolidLines
         s= sLines[i]
         DO WHILE .T.
            i0= GetMaxPosition(oObj, s, nWidth)
            nLines= nLines+1
            IF i0=LEN(s)
               EXIT
            ENDIF
            s= LTRIM(SUBSTR(s,i0+1))
         ENDDO
      ENDFOR
   ENDWITH

RETURN nLines


FUNCTION GetMaxPosition(oObj, sValue, nWidth)
   * returns i1 where left(sValue,i1) - maximum substring that fits nWidth

   LOCAL i0, nWidth0, i1, nWidth1, i2, nWidth2, sFontStyle, nSize

   WITH oObj
      sFontStyle= GetFontStyle(oObj)
      nSize= FONTMETRIC(TM_AVECHARWIDTH, .FontName, .FontSize, sFontStyle) &&average symbol width in pixels

      i2= LEN(sValue)
      nWidth2= TXTWIDTH(sValue, .FontName, .FontSize, sFontStyle)*nSize &&line width
      IF nWidth2<=nWidth
         RETURN i2
      ENDIF

      i1= 0
      nWidth1= 0
      DO WHILE i2-i1>1
         i0= i1+INT((nWidth-nWidth1)/(nWidth2-nWidth1)*(i2-i1)) &&linear approach
         i0= IIF(i0<=i1, i1+1,IIF(i0>=i2, i2-1,i0)) &&correction, because function is not linear

         IF i0-i1>i2-i0 &&right substring is shorter then left one
            nWidth0= nWidth2-nSize*TXTWIDTH(SUBSTR(sValue,i0+1,i2-i0),;
            .FontName, .FontSize, sFontStyle) &&line width to i0

         ELSE &&left substring is shorter then right one
            nWidth0= nWidth1+nSize*TXTWIDTH(SUBSTR(sValue,i1+1,i0-i1),;
            .FontName, .FontSize, sFontStyle) &&line width to i0
         ENDIF

         DO CASE
            CASE nWidth0<=nWidth
               i1= i0
               nWidth1= nWidth0

            CASE nWidth0>nWidth
               i2= i0
               nWidth2= nWidth0

            OTHERWISE &&nWidth0=nWidth
               i1= i0
               EXIT
         ENDCASE
      ENDDO
   ENDWITH

RETURN i1

*==================================
FUNCTION GetFontStyle(oObj) &&FontStyle string for fontmetric procedure

   LOCAL rc

   rc= ""
   WITH oObj
      rc= rc+IIF(.FontBold, "B","")
      rc= rc+IIF(.FontItalic, "I","")
      rc= rc+IIF(.FontOutline, "O","")
      rc= rc+IIF(.FontShadow, "S","")
      rc= rc+IIF(.FontStrikethru,"-","")
      rc= rc+IIF(.FontUnderline, "U","")
   ENDWITH

   RETURN rc
ENDFUNC
avatar
lardecristo
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Re: Linhas Editbox

Mensagem por Rosangela Pires em 2/6/2016, 12:03

Amigo LardeCristo,

Obrigado pela sua ajuda.

Vou testar o seu exemplo.

Novamente agradeço sua ajuda, alias ajudas, sempre que necessito.
Suas soluções servem para mim, como acho para outros, com as mesmas dúvidas.

Obrigado

Rosangela
avatar
Rosangela Pires
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Re: Linhas Editbox

Mensagem por Rosangela Pires em 3/6/2016, 02:52

Amigo Lardecristo,

Funcionou perfeitamente a função.

Muito Obrigado.

Podemos dar como encerrado o tópico.

Rosangela
avatar
Rosangela Pires
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Re: Linhas Editbox

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum