MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    [Resolvido]Centralizar horizontalmente e verticalmente

    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido]Centralizar horizontalmente e verticalmente Empty Centralizar horizontalmente e verticalmente

    Mensagem  andre.lr 3/7/2012, 19:21

    Prezados, há alguma forma de formatar uma caixa de texto em um formulário para que o conteúdo fique sempre centralizado tanto horizontalmente quanto verticalmente?

    Ou seja se a caixa for grande e tiver apenas uma palavra escrita ela deverá estar exatamente alinhada no centro da caixa tanto verticalmente quanto horizontalmente assim como conseguimos fazer com as tabelas nos documentos em word!

    Agradeço antecipadamente aos que ajudarem!!
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Centralizar horizontalmente e verticalmente Empty Re: [Resolvido]Centralizar horizontalmente e verticalmente

    Mensagem  criquio 3/7/2012, 19:29

    A horizontal você pode definir nas propriedades do campo. Para a vertical, não serve definir o campo para se ajustar ao conteúdo? Ou seja, definir as propriedades "Pode ampliar" e "Pode reduzir" como Sim?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido]Centralizar horizontalmente e verticalmente Empty Re: [Resolvido]Centralizar horizontalmente e verticalmente

    Mensagem  andre.lr 3/7/2012, 19:40

    Criquio testei aqui e pelo jeito não é só isso não, continua centralizado horizontalmente, porém, verticalmente não, no caso do meu campo deixei todas as margens = a zero, por isso como a caixa eh grande e as vezes escrevo pouco nela o texto fica com alinhamento vertical na parte superior ao invés de centralizado e na hora de imprimir o documento fica feio!

    Não queria ter que mecher nas margens porque as vezes eu escrevo mais coisas no campo e ele não alinha automáticamente na vertical daí uma parte do texto acaba não aparecendo.... será que tem alguma opção que centralize verticalmente de forma automática como da pra fazer no word?
    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido]Centralizar horizontalmente e verticalmente Empty Re: [Resolvido]Centralizar horizontalmente e verticalmente

    Mensagem  andre.lr 4/7/2012, 20:12

    UP!!!!
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Centralizar horizontalmente e verticalmente Empty Re: [Resolvido]Centralizar horizontalmente e verticalmente

    Mensagem  criquio 5/7/2012, 03:01

    Elaborei aqui uma forma de driblar a falta desse recurso. Para tanto, utilizaremos o Timer para fazer a posição do cursor se mover dentro do campo de forma a podermos contar o número de linhas. Enviaremos o cursos para o início do texto, depois, utilizando a tecla End em um SendKeys, enviaremos o cursos para o final da linha. Em seguida, utilizando a seta para baixo em outro SendKeys, enviaremos o cursor para baixo e aumentaremos 1 à contagem. O Timer fará isso até chegar na última posição da última linha. Depois, utilizaremos esse número para fazer o cálculo, utilizando a propriedade TopMargin(Margem superior) do campo. Siga os passos abaixo:

    1 - No escopo do módulo vba do formulário, faça ficar assim:

    Código:
    Option Compare Database
    Option Explicit
    Dim T As Integer
    2 - No evento "Ao iniciar" do formulário ou "Ao clicar" de um botão ou outro que melhor convier, coloque:

    Código:
    Me.NomeDoCampo.SetFocus
    Me.NomeDoCampo.SelStart = 0
    SendKeys "{END}"
    T = 1
    TimerInterval = 1
    3 - No evento "No timer", coloque:
    Código:
        If Me.NomeDoCampo.SelStart < Len(Me.NomeDoCampo) Then
            SendKeys "{DOWN}"
            SendKeys "{END}"
            T = T + 1
        Else
            Me.NomeDoCampo.TopMargin = (Me.NomeDoCampo.Height / 2) - T * 170
            Me.OutroControle.SetFocus
            TimerInterval = 0
        End If
    Como o tipo e tamanho da letra pode ser diferente, pode ser necessário alterar o 170 para mais ou para menos para diminuir ou aumentar a margem superior.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido]Centralizar horizontalmente e verticalmente Empty Re: [Resolvido]Centralizar horizontalmente e verticalmente

    Mensagem  andre.lr 6/7/2012, 13:11

    Obrigado Criquio, o duro é que se trata justamente daquele meu formulário com mais de 120 campos e ai eu teria q escrever esse código para cada um dos campos é capaz até de dar um pau aqui rss... que pena que o access não tem essa opção de formatação =/ vou mandar um E-mail para Microsoft rsss...

    Mesmo assim resolvido, obrigado pelo empenho sempre em ajudar-nos!
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Centralizar horizontalmente e verticalmente Empty Re: [Resolvido]Centralizar horizontalmente e verticalmente

    Mensagem  criquio 6/7/2012, 13:35

    É possível utilizar um For... Next para percorrer todos os campos, mas isso vai causar uma perda de desempenho no momento em que a ação estiver sendo executada. Eu particularmente, acho que o bônus não compensa o ônus. Eu ficaria com tudo alinhado no topo mesmo. Aí vai de cada um.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Centralizar horizontalmente e verticalmente Empty Resolução

    Mensagem  CassioFabre 7/10/2016, 12:37

    Bom dia.

    Mesmo que o tópico já esteja marcado como resolvido e seja de 2012 (não é minha inteção desenterrá-lo), vou colocar aqui uma que encontrei para se outro usuário do fórum buscar tenha algo simples em mãos, além da excelente resposta do Críquio.

    Encontrei no site Tecnun ( http://www.tecnun.com.br/Lists/Postagens/Post.aspx?ID=10 ) uma resolução simples e que pode ser colocada em um módulo para atender a diversos formulários e relatórios. O código segue:

    Código:
    Function CentralizarControleVerticalmente()
       
        Dim ctr As control
        Dim altura As Double
        Dim tamFonte As Double
        Dim pixelEmCentimetro As Double
        Dim TwipEmCentimetro As Double
       
        Set ctr = Screen.ActiveControl
       
        pixelEmCentimetro = 0.02645833333333
        TwipEmCentimetro = 0.001763888888889
        tamFonte = ctr.FontSize * pixelEmCentimetro
        altura = ctr.Height
       
        ctr.TopMargin = ((((altura / 15) / 2) * pixelEmCentimetro) - tamFonte) / TwipEmCentimetro

     
    End Function

    A única alteração que fiz no meu caso foi tirar a parcela Set ctr = Screen.ActiveControl e deixar a definição de ctr para o campo necessário quando se for usar a função no formulário. fincando o título da função Function CentralizarControleVerticalmente(ctr As control).

    Obviamente o problema disso é que a função tem que ser chamada parada cada controle do formulário, talvez a opção original já tenha previsto esse caso, mas para minha utilização aqui, ficou mais viável a forma como fiz. Um laço de repetição qualquer resolveria este problema.

    Abraço.

    Conteúdo patrocinado


    [Resolvido]Centralizar horizontalmente e verticalmente Empty Re: [Resolvido]Centralizar horizontalmente e verticalmente

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 17:52