Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

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

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Espessura do cursor intermitente

7/3/2017, 09:08 por Jefferson Matakas

Bom dia a todos !!

Existe uma opcao no windows que pode ser acessada atraves da 'central da …

Comentários: 0

DESENVOLVIMENTO EM REDES

4/3/2017, 18:45 por AJC

Pessoal tem ou conhece livros ou material para programação em
redes usando banco de dados nativo …

Comentários: 0

USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 4

Como preencher campos vazios

9/2/2017, 11:55 por Linghston

Pessoal boa tarde,

É o seguinte, eu preciso preencher os campos de uma coluna da tabela DBF que …

Comentários: 2

Enviar msg para WhatsAPP via VFP

7/2/2017, 10:31 por Eliana

Olá Pessoal!

Alguém sabe se é possível enviar mensagem para o WhatsAPP via VFP?


Grata


Comentários: 0

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

Os nossos membros postaram um total de 31 mensagens em 17 assuntos

Linhas Editbox

Ver o tópico anterior Ver o tópico seguinte 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

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


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