No artigo de hoje, vamos demonstrar em como criar textos com sombras usando a classe TSay em uma dialog.
Algumas vezes, precisamos criar algum visual para demonstrar um TSay numa tela, e certa vez me perguntaram como eu tinha feito a thumb do nosso curso de lógica em AdvPL, e foi com uma dialog nativa, abaixo segue o print:
A lógica para montar é basicamente essa:
- É necessário ter 2 cores, uma mais clara e uma mais escura (nesse exemplo chamamos de nCorLetr01 e nCorLetr02)
- Para cada label com sombra, será necessário criar dobrado, então se você for ter o texto “Daniel” terá que criar Daniel duas vezes
- Ai para criar os labels, você cria o mais claro primeiro, e depois o mais escuro por cima, com a coluna e linha menores do que o mais claro
Abaixo o código fonte desenvolvido:
//Bibliotecas #Include 'TOTVS.ch' /*/{Protheus.doc} User Function zAdvPL Funcao com tela customizada usando a classe TDialog que foi gerado pelo PDialogMaker @type Function @author Atilio @since 08/10/2022 @see https://atiliosistemas.com/portfolio/pdialogmaker/ @obs Obrigado por usar um aplicativo da Atilio Sistemas /*/ User Function zAdvPL() Local aArea := FWGetArea() Local nCorFundo := RGB(238, 238, 238) Local nJanAltura := 400 Local nJanLargur := 580 Local cJanTitulo := 'Cursos do Terminal de Informacao' Local lDimPixels := .T. Local lCentraliz := .T. Local nObjLinha := 0 Local nObjColun := 0 Local nObjLargu := 0 Local nObjAltur := 0 Local nCorLetr01 := RGB(149, 179, 215) Local nCorLetr02 := RGB(031, 073, 125) Private cFontNome := 'Tahoma' Private oFontMaior := TFont():New(cFontNome, , -158, , .T.) Private oFontMenor := TFont():New(cFontNome, , -035, , .T.) Private oDialogPvt Private bBlocoIni := {|| /*fSuaFuncao()*/ } //Aqui voce pode acionar funcoes customizadas que irao ser acionadas ao abrir a dialog //objetos Private oSaySubTi1 Private cSaySubTi1 := 'Logica em' Private oSaySubTi2 Private cSaySubTi2 := 'Logica em' Private oSayTitul1 Private cSayTitul1 := 'AdvPL' Private oSayTitul2 Private cSayTitul2 := 'AdvPL' //Cria a dialog oDialogPvt := TDialog():New(0, 0, nJanAltura, nJanLargur, cJanTitulo, , , , , , nCorFundo, , , lDimPixels) //Sub Título com azul mais claro atrás nObjLinha := 47 nObjColun := 16 nObjLargu := 250 nObjAltur := 30 oSaySubTi1 := TSay():New(nObjLinha, nObjColun, {|| cSaySubTi1}, oDialogPvt, /*cPicture*/, oFontMenor, , , , lDimPixels, nCorLetr01, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/) //Sub Título com azul mais escuro na frente nObjLinha := 44 nObjColun := 13 nObjLargu := 250 nObjAltur := 30 oSaySubTi2 := TSay():New(nObjLinha, nObjColun, {|| cSaySubTi2}, oDialogPvt, /*cPicture*/, oFontMenor, , , , lDimPixels, nCorLetr02, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/) //Título com azul mais claro atrás nObjLinha := 64 nObjColun := 23 nObjLargu := 250 nObjAltur := 160 oSayTitul1 := TSay():New(nObjLinha, nObjColun, {|| cSayTitul1}, oDialogPvt, /*cPicture*/, oFontMaior, , , , lDimPixels, nCorLetr01, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/) //Título com azul mais escuro na frente nObjLinha := 54 nObjColun := 13 nObjLargu := 250 nObjAltur := 160 oSayTitul2 := TSay():New(nObjLinha, nObjColun, {|| cSayTitul2}, oDialogPvt, /*cPicture*/, oFontMaior, , , , lDimPixels, nCorLetr02, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/) //Ativa e exibe a janela oDialogPvt:Activate(, , , lCentraliz, , , bBlocoIni) FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Rapaz, o analista com um lado artístico é outro nível.
Boa Giulliano rs…
É muita bondade e generosidade sua, são apenas muitas gambiarras rs…
Um grande abraço.