Duvida sobre um o processamento de BUTTON

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

ivanil
Usuário Nível 3
Usuário Nível 3
Mensagens: 166
Registrado em: 11 Set 2004 15:13
Localização: Florianópolis/SC

Duvida sobre um o processamento de BUTTON

Mensagem por ivanil »

Ola Quintas;

Esse seu exemplo funcionará muito bem; você ainda poderá acessar todas as propriedades validas do objeto por this.

STATIC FUNCTION MyClick()
Local cName := This.Name
Return cName

A grande questão de usar this/thiswindow após retorno da função no bloco está mais ligado a erro do próprio programador e é difícil detectar, pois aos olhos parece estar tudo certo.

Para você entender bem este detalhe interno te convido a visitar o núcleo da MInigui; você vera que pode implementar coisas bem interessantes.
Fernando Almeida
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Set 2016 12:53
Localização: Dourados - MS

Duvida sobre um o processamento de BUTTON

Mensagem por Fernando Almeida »

Boa noite Sr. Ivanil, agradeço imenso a sua colaboração.
Sobre o consumo de memória, não é por ter feito esta rotina de definição de botões de mesas das respectivas secções do restaurante porque ainda
não a tinha feito.
Ao abrir algumas mesas com todos as validações, desde verificar os tempos no processo de confecção na produção, caso esse artigo tenha ligação
com a produção, mudando a cor da designação do artigo na grid, tendo ele atingido o tempo de confecção. verifico tambem se a mesa está inativa a determinado tempo, a aviso com uma imagem e o respectivo tempo. Tambem avalio o estado da mesa, se está aberta ou a sua conta já está fechada, processando de acordo com.
Pergunto-lhe, para fazer essas verificações criei um temporizador e esse tempo, definido na configuração da empresa, sendo atingido ele vai a uma função e verifica essas condições e dá os resultados.
Está tudo a funcionar bem, mas consome um pouco de memória.
Quanto ao erro que lhes apresentei, realmente faltava o parentesco na recriação do botão, e era por isso que não funcionava.
Eu pensei que se a função para fazer essa apresentação é chamada de dentro do control, não era preciso mensionar o parentesco.
Mas agora pergunto-lhe o sreguinte:
Ex.: DEFINE BUTTON &oNomeBotao
PARENT &oForm
Ele está a criar o botão no Formulario e não na PAGE do TAB que está criado dentro desse formulario. Como faço para relaciona-lo ao Control
dentro do formulario.
Exemplo, o formulario de nome FormBuscaMesa e o Tabelador de nome TAB_Busca com as diversas pages.
Posso fazer Parent "FormBuscaMesa.Tab_Busca"
Há quanto a criar os arquivos TXT com as definições dos botões era para poder definir as as coordenadas de apresentação e imagens e captions e tooltips
botão a botão. mas acabei por retirar isso e uso mesmo o DBF com esses dados.
Fernando Almeida
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Set 2016 12:53
Localização: Dourados - MS

Duvida sobre um o processamento de BUTTON

Mensagem por Fernando Almeida »

Me desculpe, aproveito para lhe dizer que tentei concatenado oForm+OControl e o resultado foi este.
oForm com o valor do nome do formulario e oControl com o nome do Control
Ex.: oForm :="FormBuscaMesa"
oControl :="Tab_BuscaMesa"

Código: Selecionar todos

Data: 28/05/2023 Hora: 22:02:34
Erro: HMG 3.4.4 Estável (32 bits)
Janela:[b] FormBuscaMesa.Tab_BuscaMesa [/b]não está definido. Programa encerrado
Chamado de _DEFINEMIXEDBUTTON(361)
Chamado de ACERTAPAG(163)
Chamado de (b)BUSCAMESAS(229)
Chamado de _DOCONTROLEVENTPROCEDURE(6056)
Chamado de EVENTS(1801)
Chamado de DOMESSAGELOOP(0)
Chamado de _ACTIVATEWINDOW(5717)
Chamado de DOMETHOD (9003)
Chamado de BUSCAMESAS(839)
Chamado de (b)MAIN_BUTTON_PEDIDOS_DE_VENDA_ACTION(1269)
Chamado de _DOCONTROLEVENTPROCEDURE(6056)
Chamado de EVENTS(1801)
Chamado de DOMESSAGELOOP(0)
Chamado de _ACTIVATEWINDOW(5717)
Chamado de MAIN_BUTTON_PEDIDOS_DE_VENDA_ACTION(51)
Chamado de MAIN_FORM_ONINIT(81)
Chamado de (b)MAIN(14)
Chamado de _PROCESSINITPROCEDURE(5876)
Chamado de _ACTIVATEWINDOW(5627)
Chamado de DOMETHOD(9003)
Chamado de MAIN(84)
ivanil
Usuário Nível 3
Usuário Nível 3
Mensagens: 166
Registrado em: 11 Set 2004 15:13
Localização: Florianópolis/SC

Duvida sobre um o processamento de BUTTON

Mensagem por ivanil »

Fernando Almeida escreveu: Mas agora pergunto-lhe o seguinte:
Ex.:
DEFINE BUTTON &oNomeBotao
PARENT &oForm

Ele está a criar o botão no Formulário e não na PAGE do TAB que está criado dentro desse formulário. Como faço para relacioná-lo ao Control
dentro do formulário.
neste caso, como voce esta destruindo um objeto e reconstruindo fora da criação da Janela, após o End Button; você precisa adicionar ao TAB manualmente, use o método abaixo:

AddControl( ControlName , nPagenumber , nRow , nCol )
ou seja
Nomeform.nomeTab.AddControl...

Na pasta doc tem o minigui.chm que tem tudo documentado, é bom dar uma olhada porque às vezes tem coisas que você pode fazer e ainda nem sabe que existe...

at.

Ivanil
ivanil
Usuário Nível 3
Usuário Nível 3
Mensagens: 166
Registrado em: 11 Set 2004 15:13
Localização: Florianópolis/SC

Duvida sobre um o processamento de BUTTON

Mensagem por ivanil »

Fernando Almeida escreveu: Me desculpe, aproveito para lhe dizer que tentei concatenado oForm+OControl e o resultado foi este.
oForm com o valor do nome do formulario e oControl com o nome do Control
Ex.: oForm :="FormBuscaMesa"
oControl :="Tab_BuscaMesa"

Data: 28/05/2023 Hora: 22:02:34
Erro: HMG 3.4.4 Estável (32 bits)
Janela: FormBuscaMesa.Tab_BuscaMesa não está definido. Programa encerrado
Chamado de _DEFINEMIXEDBUTTON(361)
Chamado de ACERTAPAG(163)
...
Chamado de MAIN(84)
Não sei se esta pergunta foi dirigida a mim... mas reveja seu código.
Responder