Clipper On Line • Ver Tópico - Variavel em Macro

Variavel em Macro

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Variavel em Macro

Mensagempor chicaomogi2014 » 10 Fev 2017 18:03

fiz uma rotina para macro usando o codigo

  tloop1  := 1
   do while _tloop1 <= 10
      _varplanocartao3 := "cartao" + alltrim(str(_tloop1))
      @ _lposy+14, _lposx+45 TEXTBOX &_varplanocartao3 WIDTH 38 HEIGHT 20 SIZE 10
      _tloop1++
   enddo


O codigo acima conseguiu criar perfeitamente os TEXTBOX.

mas na hora de pegar o valor com a macro da erro.

valor1 := lista.cartao1.value   ====> Assim pega o valor normalmente

valor1 := "lista.cartao1.value"
valor2 := &valor1   =============================== da a mensagem   'Erro de Sintaxe &'
Nota de Moderação:
Toledo: Mensagem editada para colocar a tag [ code ]
Veja como utilizar esta tag: Clique aqui
chicaomogi2014
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 13
Data de registro: 03 Ago 2014 01:33
Cidade/Estado: Mogi das Cruzes / SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

VARIAVEL EM MACRO

Mensagempor fladimir » 10 Fev 2017 18:27

E se colocar entre PARENTESES passa?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2436
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

VARIAVEL EM MACRO

Mensagempor chicaomogi2014 » 10 Fev 2017 18:44

Continua o mesmo erro

Error BASE/1449 Erro de sintaxe: &

estranho que se chamar ela direto ele mostra o valor do TEXTBOX então teoricamente a variavel do TEXTBOX esta OK

Porque crio varios TEXTBOX com a macro & e depois chamo uma função para gravar as TEXTBOX com seus respectivos valores.

Mas se nao houver jeito, vou fazer usando uma matriz.
chicaomogi2014
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 13
Data de registro: 03 Ago 2014 01:33
Cidade/Estado: Mogi das Cruzes / SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Variavel em Macro

Mensagempor Toledo » 10 Fev 2017 19:14

Amigo, veja se isto funciona:

valor1 := "cartao1"
valor2 := GetProperty( "lista", valor1, "Value" )


Obs.: este código é referente a MiniGui, então este tópico será movido para a seção MiniGui.

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

Variavel em Macro

Mensagempor chicaomogi2014 » 10 Fev 2017 20:35

Isso resolveu pra mim.

Muito bom, obrigado pela dica.
chicaomogi2014
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 13
Data de registro: 03 Ago 2014 01:33
Cidade/Estado: Mogi das Cruzes / SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Variavel em Macro

Mensagempor Claudio Soto » 11 Fev 2017 13:52

No funciona porque las directivas tipo
lista.cartao1.value
son directivas decorativas, en realidad son directivas #translate de hb que en tiempo de compilación son sustituidas por el compilador por las funciones equivalentes, por eso en tiempo de ejecución dan error.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

Variavel em Macro

Mensagempor JoséQuintas » 11 Fev 2017 19:24

Acho que assim fica mais fácil de entender:

lista.cartao1.value

Isso em execução não existe, porque é traduzido pelo pré-compilador conforme #define da minigui

Um equivalente, que também não daria certo pelo mesmo motivo.

#define K_ESC 27

mVar := "K_ESC"
? &mVar


A "conversão" vale para o fonte, mas não vale na execução.
Em execução esse K_ESC não existe.
Seria a mesma situação do anterior, parece variável mas não é, vale apenas pra ser usado no fonte ANTES de compilar.
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: 18159
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Variavel em Macro

Mensagempor fladimir » 11 Fev 2017 21:28

entendi com a explicação obrigado pelos esclarecimentos, apesar de não ser minha dúvida, acabei ficando com dúvida..kkkk..

Agora não já entendi...vlw
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2436
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Variavel em Macro

Mensagempor Pablo César » 12 Fev 2017 19:52

Bom eu não sou muito bom no português ( nem no inglês, nem espanhol Imagem ) mas vou tentar te explicar...

O que quer dizer o Dr. Claudio é que usando a função GetProperty( "lista", valor1, "Value" ) direto, não irá dar erro porque da forma de lista.cartao1.value isto é: <formulario>.<controle>.<propriedade> é a forma interpretada porque usa o #xtranslate. E como o formulário e/ou controle não estão ainda ativados ou definidos, o compilador não os reconhece. Mas a função irá compilar e só dará erro caso não exista.

Eu prefiro direto da função. Se bem que as vezes isso contraria a indicação de uso. Porque se no futuro a função sofre alguma alteração, você terá também que fazer alterações do seu código. Embora a interpretada, sempre manterá retrocompatibilidade.

Me supe explicar Claudio ? Estoy correcto ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Variavel em Macro

Mensagempor Claudio Soto » 13 Fev 2017 12:37

Exacto Pablo
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 14 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