Crea la mia leggenda<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto creando una legenda per mostrare i marcatori - attualmente sta provando (e fallendo) a ripetere la legenda incorporata, ma vorrei estenderla in seguito.
La linea chiave nello script è:
txtii = char ( M1 [ ii , 2 ]) || " " || NmAdesso || " = " || char ( M1 [ ii , 1 ]) ;
Questo potrebbe inserire "8 C = -1". testo. Voglio che sia il "marcatore di (8)", il simbolo "o" o qualunque sia lo stato del marcatore. Credo che questi siano unicode, quindi penso di dover solo analizzarlo correttamente. Grazie per qualsiasi idea.
GetMarker = Espr (
mb1 = mb << Ottenere () ;
Mleg = dt << marcatore per colonna ( colonna ( nm [ mb1 ])) ;
markernow = J ( n riga ( sm ) , 1 , 0 ) ;
Per ( ii = 1 , ii <= n riga ( sm ) , ii ++,
markernow [ ii ] = Marcatore di ( Stato riga ( ii ) ) ;
) ;
Ora = dt << ottenere come matrice ( colonna ( nm [ mb1 ])) ;
markerNow = ColAdesso || markerNow ;
markerNow = markerNow [ Rango ( Ora ) , 0 ] || J ( n riga ( markerNow ) , 1 , 0 ) ;
markerNow [ 1 , 3 ] = 1 ;
Per ( ii = 2 , ii <= n riga ( markerNow ) , ii ++,
Se ( markerNow [ ii , 1 ] == markerNow [ ii - 1 , 1 ] , markerNow [ ii , 3 ] = 0 , markerNow [ ii , 3 ] = 1 ) ;
) ;
M1 = markerNow [ Loc ( ColoreOra [ 0 , 3 ]) , 1 :: 2 ] ;
NmAdesso = nm [ mb1 ] ;
// show(NmNow, colornow, C1);
Tentativo ( mTxtBx << eliminare ) ;
Per ( ii = 1 , ii <= n riga ( M1 ) , ii ++,
txtii = char ( M1 [ ii , 2 ]) || " " || NmAdesso || " = " || char ( M1 [ ii , 1 ]) ;
mTxtBx [ ii ] = Casella di testo ( txtii ) ;
mbp << aggiungere ( mTxtBx [ ii ]) ;
) ;
) ;
Re: Crea la mia leggendaHo seguito questa idea e:
Unicode = {
"253C", "2573", "25A1", "25C7", "25B3", "0059", "005A", "25CB",
"25AD", "25AF", "2217", "16EB", "25AC", "25AE", "25A0", "25C6",
"25BD", "25C1", "25B7", "25B2", "25BC", "25C0", "25B6", "1431",
"2164", "1438", "1433", "2502", "2212", "2215", "2216"
};// Unicode simile ai marcatori numerati in JMPMarkerVal;
Prova(mTxtBx << cancella);
For(ii=1, ii<= n riga(M1), ii++,
uni="\!" \!\\!!U" || unicode[JMPMarkerVal] || " \!"";
Mostra(ii, M1[ii,1], uni);
mTxtBx[ii]=HLListBox(
mTxta[ii]=Casella di testo(parse(uni), < Casella di testo(": "||NmNow||" = "||char(M1[ii,1])),
);
mbp << append(mTxtBx[ii]); // mbp è un segnaposto nella finestra per la legenda
);
Re: Crea la mia leggendaNon credo che i 32 simboli incorporati siano Unicode. Ma internamente sembrano occupare i primi 32 caratteri unicode, cioè quelli non stampabili. Prova ad esempio mval=43 e otterrai un segno più, tuttavia non identico al simbolo JMP.
Un'idea: usa una tabella unicode (come quella qui sotto) per contrassegnare le righe che meglio corrispondono alle prime 32 righe e inseriscile in un array associativo che può essere utilizzato nel tuo script per tradurre Marker State in simboli unicode. (suggerimento: molti simboli geometrici da esadecimale 2500)
Nuova Tavola ( "marcatori a bizzeffe" , Aggiungi righe ( 10260 ) , Nuova Colonna ( "Segnale" , Stato riga , "Stato riga" , Formula ( Stato marcatore ( Riga ()))) , Nuova Colonna ( "unicode esadecimale" , Carattere , "Nominale" , Formula ( Giusto ( Esadecimale ( Riga () , "numero intero" ) , 4 )))) ;
Re: Crea la mia leggendaQuesta sezione della sceneggiatura mostra che mi sto avvicinando
MFont = Arg ( Arg ( Ottieni preferenze ( Carattere marcatore ) , 1 ) , 1 ) ; // Determina il carattere utilizzato per i marcatori
uni = "\!" \!\\!!U" || "03B1" || "\!"" ;
mval = 1 ; // Cambia per un simbolo diverso
// Questo verrà utilizzato per ottenere un valore.
mval_h = esadecimale ( 1 , "numero intero" ) ;
mval_h4 = sost ( mval_h , lunghezza ( mval_h ) - 3 ) ; //L'unicode richiesto è solo le ultime 4 cifre dell'esadecimale
spettacolo ( mval_h4 , lunghezza ( mval_h4 )) ;
mval_unicode = "\!"\!\\!!u" || mval_h4 || "\!"" ; // Unicode pronto
dt1 = nuova tavola ( "Corretto - Il simbolo funziona" ,
aggiungere righe ( 1 ) ,
Nuova Colonna ( "Uni" , Carattere , Nominale , Imposta valori ( Inserire ({} , mval_unicode ) )) ,
) ;
Stato riga ( Riga () ) = Stato marcatore ( Analizza ( : Uni ) ) ;
// Nota che funziona bene - il marcatore è #1;
nuova finestra ( "Sbagliato - il simbolo per la seconda casella è vuoto" ,
Casella di riepilogo V (
Scatola del pannello ( "uni" || char ( uni ) ,
Casella di testo ( analizzare ( uni )) ,
) ,
Scatola del pannello ( "mval_unicode" || char ( mval_unicode ) ,
Casella di testo ( analizzare ( mval_unicode ) , << Imposta carattere ( MFont )) ,
) ,
)
) ;
// Purtroppo, il simbolo non è nella casella di testo.