Catturare i clic del mouse su oggetti non Graph con JSLHo letto molto sulle funzioni mousetrap() e handle(), ma queste sembrano essere riservate agli oggetti Graph Box. Mi chiedevo se potessi aggiungere un evento "Al clic" a qualsiasi elemento grafico in una finestra? Ad esempio, nel codice seguente:
GuiWindow = New Window( "SMS1" );
theBox = Table Box(
String Col Box( "State", {"Florida", "Texas", "Main", "California"} ),
Number Col Box( "Width", {45, 66, 88, 13} ),
Number Col Box( "Length", {67, 34, 1, 78} ),
Number Col Box( "Depth", {13, 65, 32, 56} )
);
GuiWindow << Append( theBox );
Posso aggiungere una trappola per topi o un simile comportamento "al clic" a una tabella? Quindi, se l'utente dove fare clic su un punto qualsiasi della tabella, può fare qualcosa di simile Write("Ciao Mondo"); ?
Ri: Catturare i clic del mouse su oggetti non Graph con JSLQuello che vuoi è la funzione della casella del mouse.
GuiWindow = New Window( "SMS1" );
theBox = Table Box(
String Col Box( "State", {"Florida", "Texas", "Main", "California"} ),
Number Col Box( "Width", {45, 66, 88, 13} ),
Number Col Box( "Length", {67, 34, 1, 78} ),
Number Col Box( "Depth", {13, 65, 32, 56} )
);
GuiWindow << Append(
MouseBox(
theBox,
<<SETCLICKENABLE></SETCLICKENABLE>
Ri: Catturare i clic del mouse su oggetti non Graph con JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Per un tablebox puoi renderlo selezionabile e aggiungere una funzione di cambio riga.Vedere l'esempio seguente.
dt = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
Riassumere ( un = di ( età ) , c = contare , sumHt = Somma ( Altezza ) ,
meanHt = Significare ( Altezza ) , minHt = min ( Altezza ) ,
maxHt = Massimo ( Altezza )
) ;
sr = Nuova finestra ( "Riepilogo risultati" ,
tb = Scatola da tavolo (
String Col Box ( "Età" , un ) ,
Numero Col Box ( "Contare" , c ) ,
Numero Col Box ( "Somma" , sumHt ) ,
Plot Col Box ( "Somma" , sumHt ) ,
Numero Col Box ( "Significare" , meanHt ) ,
Numero Col Box ( "Mino" , minHt ) ,
Numero Col Box ( "Massimo" , maxHt )
)
) ;
tb << imposta l'ombra a righe alternate ( 1 ) << imposta i bordi delle righe ( 1 ) << imposta i bordi delle colonne ( 1 ) ;
tb << Imposta righe selezionabili ( 1 ) ;
tb << impostare la funzione di cambio riga (
Funzione ( { questo } ,
riga_elenco = questo << ottenere righe selezionate ;
Se ( nrow ( riga_elenco ) > 0 ,
one_row = riga_elenco [ 1 ] ;
Stampa ( "Riga selezionata: " || char ( one_row )) ;
) ;
) ;
) ;