Página 1 de 1

LABEL/TEXTBOX - após criação do form

Enviado: 15 Mar 2016 00:32
por microvolution
Gente boa noite!
Após a criação do DEFINE WINDOW com seus LABELs e TEXTBOX é possível mais tarde no discorrer do programa e decisões do usuário criar novos LABELs/TEXTBOXs usando o PARENT para o formulário?
Nota de Moderação:
por Toledo: POR FAVOR, evite postar a mesma dúvida em dois ou mais tópicos, isto atrapalha o bom andamento do próprio tópico.
Leia as Regras do Fórum:
14 - Evite postar a mesma mensagem mais de uma vez, isto atrapalha e congestiona o fórum. As mensagens duplicadas terão as cópias excluídas, e o participante poderá ser punido caso o ato tenha sido intencional.

HMG LABEL/TEXTBOX - após criação do form

Enviado: 15 Mar 2016 08:47
por Toledo
microvolution escreveu: usando o PARENT para o formulário?
Amigo, você já deu a resposta... é só informar o parâmetro PARENT na criação do objeto LABEL ou TEXTBOX.

Abraços

LABEL/TEXTBOX - após criação do form

Enviado: 15 Mar 2016 11:53
por microvolution
Toledo escreveu:Amigo, você já deu a resposta...
perguntei pois pensei estar fazendo algo errado, mas, esse LABEL novo só aparece após fechar este formulário...
após este comando:

Código: Selecionar todos

   END WINDOW
ainda crio alguns DRAW. Vejam:

Código: Selecionar todos

   // (...)
   DRAW PANEL         ;
   IN WINDOW Frm_TELA_ENTRADA         ;
   AT  35 ,  10         ; 
   TO 400 , 450
   // (...)
Em seguida encerro com as seguintes linhas:

Código: Selecionar todos

   // (...)
   CENTER WINDOW   Frm_TELA_ENTRADA
   ACTIVATE WINDOW Frm_TELA_ENTRADA
return
Então, depois deste comando de encerramento (RETURN) da função o sistema volta para o local que foi chamada esta função de criação do formulário (óbvio né!) e chama a seguinte função:

Código: Selecionar todos

TRATA_CAMPOS_GUI()
Essa função tem algumas coisas, em especial:

Código: Selecionar todos

static function TRATA_CAMPOS_GUI ()
     set key TECLA_CONT_ANT to CONTEUDO_ANTERIOR
     set key TECLA_CONSULTA to CONSULTA_ARQUIVO
     set key ALT_TECLA_CONSULTA to CONSULTA_ARQUIVO
     OPCOES_CAMPOS ()
     @ 370 , 470 TEXTBOX txtCDPRODUTO  PARENT Frm_TELA_ENTRADA WIDTH 20 HEIGHT 21 FONTCOLOR BLUE BOLD NUMERIC MAXLENGTH 1 ON ENTER { || fCDPRODUTO () } // INPUTMASK "9"
//(...)
Então, este TEXTBOX não aparece no formulário. Por isso que fiz que fiz essa pergunta, pois pensava que funcionaria, mas, não funcionou.
Para matar o quebra cabeças, coloquei um MSG_INFO(), após este TEXTBOX assim:

Código: Selecionar todos

     @ 370 , 470 TEXTBOX txtCDPRODUTO  PARENT Frm_TELA_ENTRADA WIDTH 20 HEIGHT 21 FONTCOLOR BLUE BOLD NUMERIC MAXLENGTH 1 ON ENTER { || fCDPRODUTO () } // INPUTMASK "9"
     MsgInfo("Após TextBox")
     // (...)
Então, o MSGINFO só é acionado após o encerramento do formulário quando clico no X da janela.
Portanto, no meu vago conhecimento, estou entendo que após as cláusulas:

Código: Selecionar todos

   // (...) 
   CENTER WINDOW   Frm_TELA_ENTRADA 
   ACTIVATE WINDOW Frm_TELA_ENTRADA
   // (...)
nada mais adianta tentar colocar no formulário, pois ele já foi ATIVADO.
Estou correto?
Ou o que estou fazendo de errado?

LABEL/TEXTBOX - após criação do form

Enviado: 15 Mar 2016 14:50
por Toledo
microvolution escreveu:nada mais adianta tentar colocar no formulário, pois ele já foi ATIVADO.
Estou correto?
Sim, você está correto, os comandos que você colocar depois de ACTIVATE WINDOW só será executado depois que a janela for encerrada.

Para que estes comandos sejam aceitos depois que ACTIVATE WINDOW for executado, ou você tem que chamar em algum objeto que já está dentro da janela, por exemplo em um botão (BUTTON) ou no parâmetro ON INIT do DEFINE WINDOW (na IDE o ON INIT está na aba Events da propriedade da janela).

Sobre criar objetos no ON INIT veja este outro tópico:
https://pctoledo.org/forum/viewto ... 15#p104755
No tópico acima fala do StatusBar, mas o exemplo pode funcionar para criar qualquer outro objeto (LABEL, TEXTBOX, etc).
microvolution escreveu:set key TECLA_CONT_ANT to CONTEUDO_ANTERIOR
Acho que o SET KEY não vai funcionar, você teria que usar o ON KEY, veja:

C:\hmg.3.4.2\DOC\data\OnKey.htm
C:\hmg.3.4.2\SAMPLES\Events\On_Key\ON_KEY_1 (e ON_KEY_2)

Abraços,

LABEL/TEXTBOX - após criação do form

Enviado: 15 Mar 2016 15:43
por Nascimento
So endoçando o que o amigo toledo postou tem um exemplo claro que eu achei e postei

https://pctoledo.org/forum/viewto ... fc#p104545

onde cria um textbox , mais se observar cria qualquer outro controle