Hoje iremos responder essa pergunta, do motivo de um TGet não exibir a lupa quando vinculamos ele a um F3 (LookUp).
Se você já criou um TGet, vinculou ele a uma consulta padrão, e ele exibiu aquela interrogação no lugar da lupa, provavelmente já se deparou com essa dúvida.
Um dos alunos também postou em nosso grupo do WhatsApp, então eu decidi fazer uns testes e preparar esse artigo.
O que acontece, é que quem controla esse ícone é o atributo lHasButton, e você deve passar como .T. logo ao acionar o método New do TGet, para que ele entenda que irá exibir o ícone, do contrário ele vai exibir uma interrogação ou um trema.
Abaixo um print de exemplo com um TGet normal, um TGet normal usando CSS, um TGet com lHasButton e um TGet com lHasButton e CSS.
E abaixo o código fonte desenvolvido do exemplo acima:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zTstTGet Funcao com tela customizada usando a classe TDialog que foi gerado pelo PDialogMaker @type Function @author Atilio @since 17/06/2022 @see https://atiliosistemas.com/portfolio/pdialogmaker/ @obs Obrigado por usar um aplicativo da Atilio Sistemas /*/ User Function zTstTGet() If Select("SX2") == 0 RPCSetEnv("99", "01", "Administrador", "", "") EndIf fMontaTela() Return Static Function fMontaTela() Local aArea := FWGetArea() Local nCorFundo := RGB(238, 238, 238) Local nJanAltura := 281 Local nJanLargur := 358 Local cJanTitulo := 'Exemplo TGet' Local lDimPixels := .T. Local lCentraliz := .T. Local nObjLinha := 0 Local nObjColun := 0 Local nObjLargu := 0 Local nObjAltur := 0 Private cFontNome := 'Tahoma' Private oFontPadrao := TFont():New(cFontNome, , -12) Private oDialogPvt Private bBlocoIni := {|| /*fSuaFuncao()*/ } //Aqui voce pode acionar funcoes customizadas que irao ser acionadas ao abrir a dialog //objeto0 Private oSayObj0 Private cSayObj0 := 'Normal' //objeto1 Private oGetObj1 Private xGetObj1 := Space(TamSX3('B1_COD')[1]) //objeto2 Private oSayObj2 Private cSayObj2 := 'Com CSS' //objeto3 Private oGetObj3 Private xGetObj3 := Space(TamSX3('B1_COD')[1]) //objeto4 Private oSayObj4 Private cSayObj4 := 'Com lHasButton' //objeto5 Private oGetObj5 Private xGetObj5 := Space(TamSX3('B1_COD')[1]) //objeto6 Private oSayObj6 Private cSayObj6 := 'Com lHasButton e CSS' //objeto7 Private oGetObj7 Private xGetObj7 := Space(TamSX3('B1_COD')[1]) //objeto8 Private oBtnObj8 Private cBtnObj8 := 'Confirmar' Private bBtnObj8 := {|| MsgInfo('Clicou no OK', 'Atenção')} //Cria a dialog oDialogPvt := TDialog():New(0, 0, nJanAltura, nJanLargur, cJanTitulo, , , , , , nCorFundo, , , lDimPixels) //objeto0 - usando a classe TSay nObjLinha := 4 nObjColun := 4 nObjLargu := 70 nObjAltur := 6 oSayObj0 := TSay():New(nObjLinha, nObjColun, {|| cSayObj0}, oDialogPvt, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/) //objeto1 - usando a classe TGet nObjLinha := 3 nObjColun := 74 nObjLargu := 100 nObjAltur := 10 oGetObj1 := TGet():New(nObjLinha, nObjColun, {|u| Iif(PCount() > 0 , xGetObj1 := u, xGetObj1)}, oDialogPvt, nObjLargu, nObjAltur, /*cPict*/, /*bValid*/, /*nClrFore*/, /*nClrBack*/, oFontPadrao, , , lDimPixels) oGetObj1:cF3 := 'SB1' //objeto2 - usando a classe TSay nObjLinha := 19 nObjColun := 4 nObjLargu := 70 nObjAltur := 6 oSayObj2 := TSay():New(nObjLinha, nObjColun, {|| cSayObj2}, oDialogPvt, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/) //objeto3 - usando a classe TGet nObjLinha := 18 nObjColun := 74 nObjLargu := 100 nObjAltur := 10 oGetObj3 := TGet():New(nObjLinha, nObjColun, {|u| Iif(PCount() > 0 , xGetObj3 := u, xGetObj3)}, oDialogPvt, nObjLargu, nObjAltur, /*cPict*/, /*bValid*/, /*nClrFore*/, /*nClrBack*/, oFontPadrao, , , lDimPixels) oGetObj3:cF3 := 'SB1' oGetObj3:SetCSS("TGet{ color: #000000; selection-background-color: #369CB5; background-color: #FFFFFF; padding-left: 3px; padding-right: 3px; border-top-left-radius:3px; border-bottom-left-radius:3px; border: 1px solid #C5C9CA; border-right: 0px; }QPushButton{ border: 1px solid #C5C9CA; background-color: #FFFFFF; border-left: 0px; border-top-right-radius:3px; border-bottom-right-radius:3px; outline: none; }TGet:disabled { color: #000000; border: 1px solid #E8EBF21; border-right: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; background-color: #E8EBF1;}QPushButton:disabled{ background-color: #E8EBF1; }tLabel{color: #000000;}") //objeto4 - usando a classe TSay nObjLinha := 34 nObjColun := 4 nObjLargu := 70 nObjAltur := 6 oSayObj4 := TSay():New(nObjLinha, nObjColun, {|| cSayObj4}, oDialogPvt, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/) //objeto5 - usando a classe TGet nObjLinha := 33 nObjColun := 74 nObjLargu := 100 nObjAltur := 10 lHasButton := .T. oGetObj5 := TGet():New(nObjLinha, nObjColun, {|u| Iif(PCount() > 0 , xGetObj5 := u, xGetObj5)}, oDialogPvt, nObjLargu, nObjAltur, /*cPict*/, /*bValid*/, /*nClrFore*/, /*nClrBack*/, oFontPadrao, , , lDimPixels, /*uParam15*/, /*uParam16*/, /*bWhen*/, /*uParam18*/, /*uParam19*/, /*bChange*/, /*lReadOnly*/, /*lPassword*/, /*uParam23*/, /*cReadVar*/, /*uParam25*/, /*uParam26*/, /*uParam27*/, lHasButton) oGetObj5:cF3 := 'SB1' //objeto6 - usando a classe TSay nObjLinha := 49 nObjColun := 4 nObjLargu := 70 nObjAltur := 6 oSayObj6 := TSay():New(nObjLinha, nObjColun, {|| cSayObj6}, oDialogPvt, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/) //objeto7 - usando a classe TGet nObjLinha := 48 nObjColun := 74 nObjLargu := 100 nObjAltur := 10 lHasButton := .T. oGetObj7 := TGet():New(nObjLinha, nObjColun, {|u| Iif(PCount() > 0 , xGetObj7 := u, xGetObj7)}, oDialogPvt, nObjLargu, nObjAltur, /*cPict*/, /*bValid*/, /*nClrFore*/, /*nClrBack*/, oFontPadrao, , , lDimPixels, /*uParam15*/, /*uParam16*/, /*bWhen*/, /*uParam18*/, /*uParam19*/, /*bChange*/, /*lReadOnly*/, /*lPassword*/, /*uParam23*/, /*cReadVar*/, /*uParam25*/, /*uParam26*/, /*uParam27*/, lHasButton) oGetObj7:cF3 := 'SB1' oGetObj7:SetCSS("TGet{ color: #000000; selection-background-color: #369CB5; background-color: #FFFFFF; padding-left: 3px; padding-right: 3px; border-top-left-radius:3px; border-bottom-left-radius:3px; border: 1px solid #C5C9CA; border-right: 0px; }QPushButton{ border: 1px solid #C5C9CA; background-color: #FFFFFF; border-left: 0px; border-top-right-radius:3px; border-bottom-right-radius:3px; outline: none; }TGet:disabled { color: #000000; border: 1px solid #E8EBF21; border-right: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; background-color: #E8EBF1;}QPushButton:disabled{ background-color: #E8EBF1; }tLabel{color: #000000;}") //objeto8 - usando a classe TButton nObjLinha := 116 nObjColun := 2 nObjLargu := (nJanLargur/2) - 2 nObjAltur := 15 oBtnObj8 := TButton():New(nObjLinha, nObjColun, cBtnObj8, oDialogPvt, bBtnObj8, nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels) //Ativa e exibe a janela oDialogPvt:Activate(, , , lCentraliz, , , bBlocoIni) FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.