Clipper On Line • Ver Tópico - Criação dinâmica de controles

Criação dinâmica de controles

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Criação dinâmica de controles

Mensagempor Heero » 19 Ago 2018 23:22

Olá,

Três anos de cadastro e só agora resolvi criar um tópico. É que dessa vez não sei mesmo como fazer. Me desculpem se já tem alguma solução a respeito no fórum, realmente não achei.

Estou convertendo um sistema usando MiniGUI e me deparei com uma situação no qual preciso criar vários labels juntamente com textbox. Porém ao declarar o nome do controle, parece que não se pode usar variáveis de referência ou macro.

Tentei utilizando FOR:
   

qtcpo =tab_qtcpo // Estou pegando a quantidade de campos de uma tabela

for i=1 to qtcpo
    @ 02,000 label &qtcpo;
       width 400;
       height 030;
       value 'test';
       font 'verdana' size 12;
next


Já estou convencido que realmente não tenha como fazer, pelo menos não dessa forma que estou tentando. Tem jeito de contornar isso sem ter que criar uma a uma? Pois a quantidade é variada.

Obrigado pela atenção.
Ricardo Rodrigues
Harbour 3.2 + BCC + Minigui
Cursando Análise e Desenvolvimento de Sistemas
Heero
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 51
Data de registro: 13 Jul 2015 22:10
Cidade/Estado: Guarulhos/SP
Curtiu: 13 vezes
Mens.Curtidas: 5 vezes

Criação dinâmica de controles

Mensagempor Heero » 19 Ago 2018 23:24

Erro apresentado:
Anexos
erro.png
Ricardo Rodrigues
Harbour 3.2 + BCC + Minigui
Cursando Análise e Desenvolvimento de Sistemas
Heero
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 51
Data de registro: 13 Jul 2015 22:10
Cidade/Estado: Guarulhos/SP
Curtiu: 13 vezes
Mens.Curtidas: 5 vezes

Criação dinâmica de controles

Mensagempor JoséQuintas » 20 Ago 2018 00:18

Macro de número não existe

Controle com um nome que não é nome, é número

Corrigindo isso, é um começo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Criação dinâmica de controles

Mensagempor Toledo » 20 Ago 2018 07:28

Faz assim que vai dar certo:

for i=1 to qtcpo
    cLbl := "Lbl_"+AllTrim(Str(i))
    @ 02,000 label &cLbl ;
       width 400;
       height 030;
       value 'test';
       font 'verdana' size 12;
next


Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Criação dinâmica de controles

Mensagempor Heero » 20 Ago 2018 08:10

Toledo,

Muito obrigado!
Continuou a apresentar o mesmo erro, porém ao substituir as aspas duplas por simples funcionou.

No fim ficou dessa forma:

      
wlin := 40
for i=1 to qtcpo
    cLbl := 'Lbl_'+AllTrim(Str(i))
    cTxt := 'Txt_'+AllTrim(Str(i))
    wlin := wlin + 20
   @ wlin,000 label &cLbl ;
       width 400;
       height 030;
       value 'test';
       font 'verdana' size 12
         
   @ wlin,040 textbox &cTxt ;
       width 100;
       height 025;
       value 'testing';
       font 'verdana' size 12
next


JoséQuintas:
Desculpe pela falha.

Obrigado! Problema resolvido.
Anexos
resultado.png
Ricardo Rodrigues
Harbour 3.2 + BCC + Minigui
Cursando Análise e Desenvolvimento de Sistemas
Heero
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 51
Data de registro: 13 Jul 2015 22:10
Cidade/Estado: Guarulhos/SP
Curtiu: 13 vezes
Mens.Curtidas: 5 vezes

Criação dinâmica de controles

Mensagempor JoséQuintas » 21 Ago 2018 17:28

Ok.
Talvez mais fácil pra lembrar: o nome do controle é o mesmo nome de uma variável.
Isto também é interessante lembrar quando for abrir mais de um form, porque não pode usar nome repetido.
Lógico... multithread é outra história, porque não vai existir nome repetido.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 9 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro