Jump to content
Fivewin Brasil

identificar campo obrigatorio no GET


marcioe

Recommended Posts

Em 18/07/2023 at 11:29, kapiaba disse:

Bom dia Ricardo. É uma boa ideia, más o Márcio é chato para kralho e não quer alterar a TGET.PRG vamos a outra ideia. E até agora NADA DE RECURSOS. kkkkkkkkkkkkkkkkkk

abs.

Regards, saludos.

 

Kapiaba,

Ainda considerando alterar a classe TGET,  aquelas alteraçoes que passei acima funcionam perfeitamente com Recursos.

Segue um exemplo de utilização (testado com WORKSHOP THE BEST):

#include "FiveWin.ch"
#include "get.ch"

static oDlg
//---------------------------------------------------------------------------------------
function main()

    private oNome, oEndereco, oCidade
    private cNome := cEndereco := cCidade := space(100)

    DEFINE DIALOG oDlg RESOURCE DIALOG_1
        REDEFINE GET oNome VAR cNome ID 101
        REDEFINE GET oEndereco VAR cEndereco ID 102
        REDEFINE GET oCidade VAR cCidade ID 103
    ACTIVATE DIALOG oDlg CENTERED ON INIT iniciar()

return nil

//---------------------------------------------------------------------------------------
function iniciar()

      //Configurar os  GETs com PlaceHolder.
      //Primeiro parâmetro é o texto que será apresentado no GET
      //Segundo parâmetro é a COR do texto que será apresentado no GET
      oNome:SetPlcHld('*Nome Obrigatório', RGB(255,0,0)) //em cor vermelha
      oEndereco:SetPlcHld('*Endereço Obrigatório', RGB(255,0,0)) //em cor vermelha
      oCidade:SetPlcHld('Cidade') // Em cor cinza (padrão)

return nil

 

exemploGet4.png

Link to comment
Share on other sites

35 minutos atrás, kapiaba disse:

Excelente. Dá para melhorar bem Mais. Poste o ARQUIVO.RC  Se bem que com SAYs(inclusive uando o Hide()/Show()), é possivel escrever na parte de cima do GET e não dentro do GET, más blz, quanto mais modelos melhor para todo mundo.

 

abs.

Kapi, é um SAY, mas é um SAY que pertence ao GET e não a janela. SE, por um motivo qualquer, o GET mude de posição na janela em tempo de execução, o SAY vai junto com ele, sem nenhum problema.

Observe esse detalhe na classe TGET:

...

local oWnd := self  //oWnd é o proprio objeto GET
....
@ 2, 4 SAY ::oPlcHld ... OF oWnd Pixel 
 
//OF oWnd, ou seja o SAY é do GET. Ele está no TOP 2, LEFT 4 do GET. Como se o GET fosse uma janela
Link to comment
Share on other sites

16 horas atrás, ricardomouramarques disse:

Eu ouvi "breja"? Kkkk

Eu acho que dá para tomar umas. Estou só esperando o Márcio dizer que conseguiu fazer. Se ele aprovar, vai enviar o dinheiro para as brejas na minha conta e ai, marcamos, ok? Poderiamos até fazer um ENCONTRO DE FIVEWINNERS, o que achas?

abs.

 

Regards, saludos.

Link to comment
Share on other sites

Dessa forma já atende 90%,  o chato é ter que mudar classe.
Será que não dar para fazer uma 'NOVA CLASSE" Herdando os dados da classe "mae", dai essa Nova classe colocaria nos meus fontes para compilar, dai quando mudar a versão do Five não tenho que "mudar" de novo

Link to comment
Share on other sites

OverRide é um recurso fantastico do (x)Harbour. Você substitui um método dentro de uma classe por um customizado. Chame o OverRide no inicio da sua aplicação.

No exemplo abaixo o método Initiate dentro da classe TDialog é substituido pela funcao xTDialog_Initiate. Então em algum lugar vc vai ter uma funcao xTDialog_Initiate recebendo os mesmos parametros que o método substituido recebe (no caso o initiate)

 

 

Function Configure_Override()
OVERRIDE METHOD Initiate   IN CLASS TDialog       WITH xTDialog_Initiate
Return
 
Function xTDialog_Initiate( hWndFocus, hWnd )
Local SELF := HB_QSelf()
/*
SEU CODIGO
*/
Return .t.
 
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...