Página 3 de 4

Re: Cor do texto do bloco de código fonte

Enviado: 21 Jun 2010 12:26
por Maligno
Quando há alguma divergência com relação à quebra de linha, o UE sempre avisa se quer converter. Mas no caso eu colei o código e não recebi qualquer aviso. Sinal de que o problema é o Notepad, que realmente deixa tudo truncado, em linha única.

Re: Cor do texto do bloco de código fonte

Enviado: 21 Jun 2010 18:40
por Toledo
alxsts escreveu:Quando acionei o botão "Responder", a parte da página destinada ao código fonte ficou desposicionada, sobrepondo o rodapé da página.
Qual é o navegador que você está usando? Eu testei aqui com o Mozilla Firefox e Opera e está tudo normal.
Maligno escreveu:Reparei um problema: o botão "Colar" só funciona depois que tiver clicado ao menos uma vez no botão "Expandir/Contrair".
Este botão para copiar o código é um arquivo Flash (SWF) e tanto no Firefox, como no Opera, tem este problema. Não sei dizer porque, mas o botão para funcionar você tem que clicar sobre ele uma vez, ai na segunda vez funciona sem problemas. No Internet Explorer isto não acontece.
Maligno escreveu:No modo "expandido" tá certinho.
Bom, já fiz um teste aqui, com a tag nova, e tanto no modo "expandido", como no "retraído", o underline tá aparecendo agora.
Maligno escreveu:Aliás, o tag está com o nome [ CODEX ].
Sim, coloquei um nome diferente para não interferir na tag CODE original. Depois que tudo estiver certo, altero o nome da tag nova.
Maligno escreveu:essa string no canto superior esquerdo ("Código") vai ficar assim, desse tamanho?
Eu não consegui diminuir a altura desta linha (célula) onde está os botões, tentei de tudo aqui, mas nada deu certo. Então, para não ficar muito espaço vago, optei em colocar um título grande.
JoséQuintas escreveu:Não sei no caso do Windows Vista e Windows 7, que são mais chatos em alertas ainda.
Realmente, no Windows Vista é solicitado uma confirmação para jogar o conteúdo na área de transferência.
JoséQuintas escreveu:Não sei se é possível/fácil deixar a numeração de linha fora da janela do texto.
Note que quando a linha do código é muito grande e não cabe tudo na mesma linha, então é feito um quebra de linha, mas a numeração continua a mesma. Então, tive que usar uma tabela para mostrar a numeração e cada linha do código. Não sei se é possível desabilitar a coluna da numeração na hora de selecionar o código, vou ver se dá, senão não poderei usar tabela.

Abraços,

Re: Cor do texto do bloco de código fonte

Enviado: 21 Jun 2010 21:43
por JoséQuintas
Então, tive que usar uma tabela para mostrar a numeração e cada linha do código. Não sei se é possível desabilitar a coluna da numeração na hora de selecionar o código, vou ver se dá, senão não poderei usar tabela.
Tomara que a coluna tenha algo parecido com a propriedade "Visible".
Aí dá até pra acrescentar um botão mostrar/esconder numeração, e já vai ocupando o espaço do título. rs.

Re: Cor do texto do bloco de código fonte

Enviado: 21 Jun 2010 23:24
por alxsts
Olá!
Toledo escreveu:Qual é o navegador que você está usando? Eu testei aqui com o Mozilla Firefox e Opera e está tudo normal.
Toledo:
no momento em que houve o problema, estava usando o IE8. Foi quando estava respondendo a tua mensagem (por Toledo » 21 Jun 2010 08:55). Deveria ter feito um print screen mas, devido ao "corre corre do dia", passou batido...
Agora, em casa, com o FireFox está tudo bem. Estranhamente, em casa, quando tento abrir este tópico com o IE8, recebo a famosa
mensagem "O IE8 encontrou um problema e precisa ser fechado". Mas isso é na minha máquina, dá em outros sites.

Re: Cor do texto do bloco de código fonte

Enviado: 22 Jun 2010 09:52
por Toledo
Olá Alexandre, fiz um teste usando o IE8 e realmente as tabelas desta tag nova ficavam espalhadas no final da página, mas já resolvi o problema. Agora, tanto no Firefox, como no Opera e no IE8, a tag está sendo apresentada corretamente. Isto acontecia porque eu coloquei um posicionamento absoluto para a tag e por isto ela não respeitava o tamanho da divisão (DIV HTML com scroll), que fica no final da página mostrando todas as mensagens do tópico.

O bom disto tudo é que tentando resolver este problema, consegui descobrir porque eu não estava conseguindo definir um tamanho para a linha de título da tag nova. Então resolvi dois problemas de uma vez só!

Bom, agora só tenho que mudar o ícone da opção "Retrair código" e tentar resolver um novo problema que percebi quando estava fazendo os testes da tag no IE8. Quando no tópico tem dois ou mais códigos com esta tag nova e se clica no botão "Expandir código", todas as tags que estão na página são expandidas ao mesmo tempo.

Abraços,

Re: Cor do texto do bloco de código fonte

Enviado: 22 Jun 2010 10:48
por Toledo
JoséQuintas escreveu:É que às vezes postam fontes gigantes, e só interessam poucas linhas dele.
JoséQuintas, tentei alterar a tag nova para não selecionar a coluna de numeração, mas não deu certo. Então a única saída neste caso é pressionar a tecla CTRL e fazer a seleção das linhas que você quer, ai use o CTRL+C para copiar.

Abraços,

Re: Cor do texto do bloco de código fonte

Enviado: 22 Jun 2010 10:54
por Maligno
Não entendi. Porque fazer sumir os números das linhas, se elas não são copiadas para o Clipboard? Essa parte me parece muito boa.

Re: Cor do texto do bloco de código fonte

Enviado: 22 Jun 2010 19:21
por Toledo
Toledo escreveu:Então a única saída neste caso é pressionar a tecla CTRL e fazer a seleção das linhas que você quer
Esquece o que eu disse... isto também não dá certo! Então coloquei um outro botão para ver o código em uma outra janela (PopUp), ai você pode selecionar e copiar as linhas que você quiser.

Bom, já terminei as alterações desta nova tag, acho que não está faltando mais nada.
* FUNCTAB.PRG

    Static Tab_Numero := 0              // Num.Tab Atual
    Static Tab_List   := {}             // Array com as Tabs
    Static Tab_Conf   := {0,0,20,70,{}} // Config.Tabs
    Static Tab_Edit   := .f.            // Se pode editar
    Static Tab_NoTab  := {}             // Gets Fora da Tab


    #define K_MOUSELEFT 1002

    Function TabBegin(nLini,nColi,nLinf,nColf)
    nLini      := iif(nLini==NIL,0,nLini)
    nColi      := iif(nColi==NIL,0,nColi)
    nLinf      := iif(nLinf==NIL,MaxRow(),nLinf)
    nColf      := iif(nColf==NIL,MaxCol(),nColf)
    Tab_List   := {}
    Tab_Numero := 0
    Tab_Conf   := {nLini,nColi,nLinf,nColf,{}}
    Tab_NoTab  := {}
    return NIL


    Function NewTab(cNome)

    aadd(Tab_List, {} )
    Tab_Numero  := Len(Tab_List)
    cNome := iif(cNome==NIL,"Tab"+Str(Len(Tab_List),1),cNome)
    if Len(cNome) < 5
       cNome := Pad(cNome,5)
    endif
    aadd(Tab_Conf[5],cNome)
    return NIL


    Function PageEnd()
    Tab_Numero := Tab_Numero - 1
    return NIL


    Function Label( mLinha,mColuna,mTexto )
    local oGet
    oGet := GetNew( mLinha,mColuna,&([{|x|"]+mTexto+["}]),NIL,,,)
    If Tab_Numero == 0
       aadd( Tab_NoTab, oGet )
    Else
       oGet:Row      := oGet:Row + Tab_Conf[1]+3
       oGet:Col      := oGet:Col + Tab_Conf[2]+1
       oGet:PreBlock := { |x| .f. }
       oGet:Tag      := {Tab_Numero,.f.}
       aadd( Tab_List[ Tab_Numero ], oGet )
    Endif
    return NIL


    Function TextBox(oGet)

    If Tab_Numero == 0
       aadd( Tab_NoTab, oGet)
    Else
       oGet:Row := oGet:Row + Tab_Conf[1]+3
       oGet:Col := oGet:Col + Tab_Conf[2]+1
       aadd( Tab_List[ Tab_Numero ], oGet )
    Endif
    return NIL


    Function ReadTabs()

    Local cColor, cTexto, nCont, nColTab, nKey
    Private aMouseHot := {}
    Tab_Numero := 1
    cColor := SetColor()
    do while .t.
       aMouseHot := {}
       @ Tab_Conf[1]+2, Tab_Conf[2] to Tab_Conf[3], Tab_Conf[4]
       nColTab := Tab_Conf[2]+1
       for nCont = 1 to Len(Tab_List)
          if nCont == Tab_Numero
             set key -(19+nCont) to
          else
             set key -(19+nCont) to MudaTab
          endif
          cTexto := Tab_Conf[5,nCont]
          @ Tab_Conf[1], nColTab to Tab_Conf[1]+1, nColTab+Len(cTexto)+1
          @ Tab_Conf[1]+1, nColTab say Chr(179)+cTexto+Chr(179)
          if nCont == Tab_Numero
             @ Tab_Conf[1]+2, nColTab say Chr(217)+Space(Len(cTexto))+Chr(192)
          endif
          if Tab_Numero == nCont
             set color to N/W
          endif
          @ Tab_Conf[1]+1, nColTab+1 say cTexto
          aadd(aMouseHot,{Tab_Conf[1]+1,nColTab+1,Tab_Conf[1]+1,nColTab+Len(cTexto),-19+nCont})
          nColTab := nColTab+Len(cTexto)+2
          set color to (cColor)
       next
       Scroll(Tab_Conf[1]+3,Tab_Conf[2]+1,Tab_Conf[3]-1,Tab_Conf[4]-1,0)
       GetList := {}
       // GetList := Tab_List[Tab_Numero]
       For nCont = 1 To Len(Tab_NoTab)
          aadd(GetList,Tab_NoTab[nCont])
       Next
       For nCont = 1 To Len(Tab_List[Tab_Numero])
          aadd(GetList, Tab_List[Tab_Numero][nCont])
       Next
       for nCont = 1 to Len(GetList)
          GetList[nCont]:Display()
       next
       if Tab_Edit
          read
          nKey := 0
       else
          clear gets
          nKey := MyInkey(0)
       endif
       if LastKey() == 27
          exit
       elseif LastKey() == 5
          if Tab_Numero > 1
             Tab_Numero := Tab_Numero - 1
          endif
       elseif nKey == K_MOUSELEFT
          for nCont = 1 to Len(aMouseHot)
             if MouseRow() >= aMouseHot[nCont,1] .and. ;
                MouseCol() >= aMouseHot[nCont,2] .and. ;
                MouseRow() <= aMouseHot[nCont,3] .and. ;
                MouseRow() <= aMouseHot[nCont,4]
                Tab_Numero := nCont // KeyBoard Chr(aMouseHot[nCont,5])
             endif
          next
       elseif LastKey() != 23 .and. LastKey() > 0
          Tab_Numero := Tab_Numero + 1
          if Tab_Numero > Len(Tab_List)
             exit
          endif
       endif
    enddo
    Tab_List := {}
    for nCont = 1 to Len(Tab_List)
       set key -(19+nCont) to
    next
    return NIL


    Function MudaTab()
    Tab_Numero := Abs(LastKey())-19
    clear gets
    return NIL


    Function TabEdit(lDigita)
    Local nReturn
    nReturn := Tab_Edit
    If lDigita != NIL
       Tab_Edit := lDigita
    Endif
    Return nReturn


    Function MouseToTecla(nKey)
    local nCont
    if Type("aMouseHot") != "A"
       aMouseHot := {}
    endif

    for nCont = 1 to Len(aMouseHot)
       if MouseRow() >= aMouseHot[nCont,1] .and. ;
          MouseCol() >= aMouseHot[nCont,2] .and. ;
          MouseRow() <= aMouseHot[nCont,3] .and. ;
          MouseCol() <= aMouseHot[nCont,4]
          nKey := aMouseHot[nCont,5]
          Tab_Numero := nCont
          KeyBoard Chr(23)
       endif
    next
    return nKey



    /* oGet := GetNew( 10, 10, {|x| "OLA MUNDO"},; 
    //        NIL, "@R (999)999-9999", "N/BG, W+/BG" )

    //   oGet := GetNew( 10, 10, {|x| IF(x == NIL, cVar, cVar := x)},;
    //                      "cVar", "@R (999)999-9999", "N/BG, W+/BG" )

    // Function GetNew2( nRow, nCol, bVar, cValue, cPict, cColor, bWhen, bValid )
    // Local oGet
    // cValue := iif( bVar == NIL, Eval(bVar), cValue )
    // bWhen  := iif( bWhen == NIL, {||.t.}, bWhen )
    // bValid := iif( bValid == NIL, {||.t.}, bValid )
    // oGet := GetNew( nRow, nCol, bVar, cValue, cPict, cColor )
    // oGet:PreBlock := bWhen
    // oGet:PostBlock := bValid
    // return oGet */
Pessoal, dê a sua opinião... tá bom assim?

Abraços,

Re: Cor do texto do bloco de código fonte

Enviado: 22 Jun 2010 19:38
por Maligno
Toledo, você se superou. Está excelente. Mesmo! Parabéns. :)

Re: Cor do texto do bloco de código fonte

Enviado: 22 Jun 2010 22:30
por Dr.Microso
Parabéns pelo trabalho F.E.N.O.M.E.N.A.L!

Apenas uma dica extremamente simples (para se testar) e que pode conferir "algo mais" ao visual: a borda do box.

Se der uma pequena variação na sua tonalidade (cinza, metálico/algo próximo da cor do botão da primeira célula ou uma cor de transição entre o azul predominante e o azul escuro do box), poderá-se criar uma persperctiva de profundidade (saindo da ídeia de plano chapado), como se o azul-claro-predominante fosse a "parte externa de algo" e o azul-escuro seu interior. Resumindo, a cor atual do box permite explorar o lado dimensão, coisa impraticável nas cores anteriores, observe... O fórum é o corpo e os códigos seu núcleo (iiihhhh, viajei muito?!?)...
Pode parecer "frescura", mas o contexto funcional já foi suplantando em algumas alterações anteriores, entrou-se também no mérito visual, e creio, isso pode melhorar este contexto, destacando ainda mais.

É apenas outro pitaco dentre outros tantos daqui, avalie, a obra é sua!
Aliás, uma vez mais: bravo Toledo, bravo!!!

Re: Cor do texto do bloco de código fonte

Enviado: 22 Jun 2010 22:45
por alxsts
Olá!

Parabéns Toledo!

Realmente ficou um trabalho de excelente qualidade, tanto no aspecto funcional quanto no visual. Quisera eu conhecer um décimo do que você mostrou conhecer no assunto programação web.

Gostei também do código usado como exemplo. Muito sugestivo.

Percebeu que o Internet Explorer serve para alguma coisa?

Re: Cor do texto do bloco de código fonte

Enviado: 24 Jun 2010 00:51
por Toledo
Dr.Microso escreveu:Apenas uma dica extremamente simples (para se testar) e que pode conferir "algo mais" ao visual: a borda do box.
Francis, mudei a cor da borda do box para um tom de cinza.
alxsts escreveu:Gostei também do código usado como exemplo. Muito sugestivo.
Alexandre, acho que peguei este código em um tópico na seção CA-Clipper, só para exemplificar.

Bom, já alterei a tag CODE para esta nova formatação, então todos os códigos fontes nas mensagens já estão com visual novo.

Abraços,

Re: Cor do texto do bloco de código fonte

Enviado: 24 Jun 2010 09:18
por PAULO S
Toledo,
Venho acompanhando este desenvolvimento e quero parabeniza-lo pelo trabalho. Ficou sensacional !
Se compararmos como eram apresentados os códigos a pouco tempo atrás, e atualmente, a mudança foi fantástica.
Mais uma vez, parabéns.
:-Y :{

Re: Cor do texto do bloco de código fonte

Enviado: 24 Jun 2010 09:44
por Toledo
Paulo, obrigado!

Mas ainda falta algumas coisas para serem feitas, que com o tempo eu vou ajustando. Como por exemplos destacar as funções e comandos do Harbour e suas LIBs (MiniGui, HwGui, Fivewin, etc) e também mudar a cor dos comentários feitos com // (comentário de apenas uma linha), como eu fiz com os /* */ (comentário de várias linhas).

Exemplo:

Código: Selecionar todos

* FUNCTAB.PRG
    Static Tab_Numero := 0              // Num.Tab Atual
    Static Tab_List   := {}             // Array com as Tabs
    Static Tab_Conf   := {0,0,20,70,{}} // Config.Tabs

/* oGet := GetNew( 10, 10, {|x| "OLA MUNDO"},; 
            NIL, "@R (999)999-9999", "N/BG, W+/BG" )

       oGet := GetNew( 10, 10, {|x| IF(x == NIL, cVar, cVar := x)},;
                          "cVar", "@R (999)999-9999", "N/BG, W+/BG" ) */
Abraços,

Re: Cor do texto do bloco de código fonte

Enviado: 24 Jun 2010 13:24
por anacatacombs
Parabéns Toledo..
Realmente ficou muito bom !
Tive um pouco de dificuldade para ler, mas não me leve em consideração, a visão em condições de uso não é um de meus dotes...
E com aquele botão "Ver código" resolve o problema de todos os cegos do fórum.
:)