Página 1 de 1

Atribuição genérica?

Enviado: 15 Mar 2011 00:56
por rcb2002
Pessoal, olha a minha dúvida: Antigamente no Clipper usei algo assim...

Código: Selecionar todos

	for c = 6 to 14
	    tvar  = "m"+alltrim(str(c+4))
	    &tvar = alltrim(str(&(field(c))))
	next
Olha que beleza, em 4 linhas eu tinha "c" variáveis. Hoje na MiniGUI me deparei com uma situação onde preciso tratar Labels e TextBoxes assim, de forma genérica também:

Código: Selecionar todos

	FOR n = 1 to nRange
		Main.Label_2.Value := AllTrim(Right(BC->Desenho,3)) + " - " + AllTrim(STR(BC->Formatom2)) + "m²"
	NEXT
só que eu queria, falando grosseiramente, que o Label2 variasse conforme o "n", entende? Até o limite nRange... de modo q o objeto pudesse ser chamado de Label_n e N variaria junto com o loop?

Desculpem se a pergunta é absurda; por isso aceito qualquer idéia.
Abraço

Re: Atribuição genérica?

Enviado: 15 Mar 2011 07:55
por Toledo
Ricardo, faça um teste com este código:

Código: Selecionar todos

#include "hmg.ch"

Function Main

	DEFINE WINDOW Form_Main ;
		AT 0,0 ;
		WIDTH 550 HEIGHT 350 ;
		TITLE 'Atribuição genérica?' ;
		MAIN 

		@ 20,30 LABEL Label_1 ;
		WIDTH 300 HEIGHT 24 ;
		VALUE 'Teste com Label 1'

		@ 70,30 LABEL Label_2 ;
		WIDTH 300 HEIGHT 24 ;
		VALUE 'Teste com Label 2'

		@ 120,30 LABEL Label_3 ;
		WIDTH 300 HEIGHT 24 ;
		VALUE 'Teste com Label 3'

		@ 170,30 LABEL Label_4 ;
		WIDTH 300 HEIGHT 24 ;
		VALUE 'Teste com Label 4'

		@ 220,30 LABEL Label_5 ;
		WIDTH 300 HEIGHT 24 ;
		VALUE 'Teste com Label 5'

		@ 270,30 LABEL Label_6 ;
		WIDTH 300 HEIGHT 24 ;
		VALUE 'Teste com Label 6'

		@ 120,420 BUTTON Button_1 ;
		CAPTION "Mudar Label" ;
		WIDTH 100 HEIGHT 28 ;
		ACTION Mudar_Label()


	END WINDOW

	CENTER WINDOW Form_Main

	ACTIVATE WINDOW Form_Main

Return 

Function Mudar_Label()
For i=1 to 6
	tvar = "Label_"+AllTrim( Str( i ,4,0) )
	Form_Main.&(tvar).Value := "Label alteração "+AllTrim( Str( i ,4,0))
Next
Return Nil
Obs.: compilado e testado com a HMG Oficial versão 3.0.35

Abraços,

Re: Atribuição genérica?

Enviado: 21 Mar 2011 13:46
por rcb2002
Como sempre estou sem palavras: funcionou perfeitamente... longa vida a esse Fórum!!!