Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
4 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 4 Visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
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

ListBox

23/5/2017, 10:37 por Rosangela Pires

Ola Amigos.

Para se movimentar na grid com as setas colocamos no Metodo AfterChange da grid …

Comentários: 0

TRY BEGIN E FLOCK()

17/4/2017, 10:32 por AJC

Pessoal estou tendo alguns problemas de gravação em rede, estou usando
try begin, mas vi algo na …

Comentários: 0

Exportar Dados Campo Memo Tabela DBF

10/4/2017, 10:28 por fcampos

Olá bom dia.

Estou tentando exportar os dados de algumas tabelas em formato dbf pelo foxpro.
O …

Comentários: 2

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

Os nossos membros postaram um total de 12250 mensagens em 1552 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