Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
1 usuário online :: Nenhum usuário registrado, Nenhum Invisível e 1 Visitante

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
COMO ESTÃO DESENVOLVENDO EM WEB?

22/8/2016, 10:48 por AJC

Pessoal, já lí sobre vários topicos aqui no forum sobre desenvolvimento web
mas ainda nada …

Comentários: 3

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: 1

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: 1

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

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

Os nossos membros postaram um total de 12260 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