Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Disparar um método no rightclick do header do grid
Message
From
19/07/2003 14:37:37
Peter Wagner
Point Informática Ltda.
Limeira, Brazil
 
 
To
19/07/2003 13:46:10
Cleber Ferrari
Capta Tecnologia
Brazil
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00811779
Message ID:
00811788
Views:
15
This message has been marked as a message which has helped to the initial question of the thread.
No evento init da sua classe grid vc pode inserir um código deste tipo:
LOCAL oCol
FOR EACH oCol IN THIS.COLUMNS
	IF TYPE('oCol.Header1')='O'
		oCol.REMOVEOBJECT('Header1')
		oCol.NEWOBJECT('Header1','Header_indexa','Header_indexa.prg')
	ENDIF
	oCol = .NULL.
ENDFOR
Neste caso estou substituindo o comportamento do evento click por um contido no Header_indexa.prg
(indexar automaticamente o resultado do CA), este prg é uma nova classe que o header de cada coluna ira responder ao evento click, no seu caso use o evento RightClick como procedimento no código.
Vejá esta é apenas uma forma de fazer, e somente um exemplo...
No meu exemplo, a parte superior me permite determinar que classe com respectivo procedimento eu desejo definir p/ o objeto na grade.
A parte inferior é parte de um código de exemplo p/ o evento click p/ uma grade.
DEFINE CLASS Header_indexa AS HEADER
     PROCEDURE CLICK
	LOCAL nome_cursor, nome_coluna, nrecno, nome_grade
	nrecno = IIF(EOF() OR BOF(),1,RECNO())
	nome_coluna = THIS.PARENT.CONTROLSOURCE
	nome_coluna  = SUBSTR(nome_coluna,AT('.',nome_coluna) + 1)
	nome_cursor = SUBSTR(nome_coluna,1,AT('.',nome_coluna) -1)
	nome_grade = THIS.PARENT.PARENT.NAME
	IF TAGCOUNT(nome_cursor) > 0
		FOR nCount = 1 TO 30
			IF !EMPTY(TAG(nCount))  
				IF UPPER(TAG(nCount)) = UPPER(nome_coluna)
					DO CASE
					CASE UPPER(JUSTSTEM(THIS.PICTURE)) = "UP"		
						SET ORDER TO TAG nome_coluna DESCENDING
					CASE UPPER(JUSTSTEM(THIS.PICTURE)) = "DOWN"		
						SET ORDER TO TAG nome_coluna ASCENDING
					ENDCASE
					THIS.PARENT.PARENT.REFRESH	
					GOTO nrecno
					EXIT 	
				ENDIF
			ENDIF
		ENDFOR
	ENDIF
    ENDPROC
ENDDEFINE
Espero que ajude...
[], s

Peter
Previous
Reply
Map
View

Click here to load this message in the networking platform