Créer ma propre légende<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Je crée une légende pour afficher les marqueurs - actuellement, il essaie (et échoue) de répéter la légende intégrée, mais je voudrais l'étendre plus tard.
La ligne clé dans le script est :
txtii = carboniser ( M1 [ ii , 2 ]) || " " || NmMaintenant || " = " || carboniser ( M1 [ ii , 1 ]) ;
Cela pourrait mettre "8 C = -1" dans texte. Je veux que ce soit le "marqueur de (8)", le symbole "o" ou quel que soit l'état du marqueur. Je crois qu'il s'agit d'unicode, donc je pense que j'ai juste besoin de l'analyser correctement. Merci pour toute idée.
ObtenirMarqueur = Expr (
mb1 = Mo << Obtenir () ;
Mleg = dt << marqueur par colonne ( colonne ( nm [ mb1 ])) ;
marqueurmaintenant = J ( n rangée ( dm ) , 1 , 0 ) ;
Pour ( ii = 1 , ii <= n rangée ( dm ) , ii ++,
marqueurmaintenant [ ii ] = Marqueur de ( État de la ligne ( ii ) ) ;
) ;
Colnow = dt << obtenir comme matrice ( colonne ( nm [ mb1 ])) ;
marqueurMaintenant = ColNow || marqueurMaintenant ;
marqueurMaintenant = marqueurMaintenant [ Rang ( Colnow ) , 0 ] || J ( n rangée ( marqueurMaintenant ) , 1 , 0 ) ;
marqueurMaintenant [ 1 , 3 ] = 1 ;
Pour ( ii = 2 , ii <= n rangée ( marqueurMaintenant ) , ii ++,
Si ( marqueurMaintenant [ ii , 1 ] == marqueurMaintenant [ ii - 1 , 1 ] , marqueurMaintenant [ ii , 3 ] = 0 , marqueurMaintenant [ ii , 3 ] = 1 ) ;
) ;
M1 = marqueurMaintenant [ Loc ( ColorNow [ 0 , 3 ]) , 1 :: 2 ] ;
NmMaintenant = nm [ mb1 ] ;
// show(NmNow, colornow, C1);
Essayer ( mTxtBx << supprimer ) ;
Pour ( ii = 1 , ii <= n rangée ( M1 ) , ii ++,
txtii = carboniser ( M1 [ ii , 2 ]) || " " || NmMaintenant || " = " || carboniser ( M1 [ ii , 1 ]) ;
mTxtBx [ ii ] = Zone de texte ( txtii ) ;
MBP << ajouter ( mTxtBx [ ii ]) ;
) ;
) ;
Re: Créer ma propre légendeJ'ai suivi cette idée et:
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 similaire aux marqueurs numérotés dans JMPMarkerVal ;
Essayez (mTxtBx << supprimer);
Pour(ii=1, ii<= n ligne(M1), ii++,
uni="\!" \!\\!!U" || unicode[JMPMarkerVal] || " \!"";
Afficher(ii, M1[ii,1], uni);
mTxtBx[ii]=HListeListe(
mTxta[ii]=Zone de texte(parse(uni), < Text Box(": "||NmNow||" = "||char(M1[ii,1])),
);
mbp << ajouter(mTxtBx[ii]); // mbp est un espace réservé dans la fenêtre pour la légende
);
Re: Créer ma propre légendeJe ne pense pas que les 32 symboles intégrés soient Unicode. Mais en interne, ils semblent occuper les 32 premiers caractères unicode, c'est-à-dire ceux qui ne sont pas imprimables. Essayez par exemple mval=43 et vous obtiendrez un signe plus, mais pas identique au symbole JMP.
Une idée : utilisez une table Unicode (comme celle ci-dessous) pour marquer les lignes qui correspondent le mieux aux 32 premières lignes et placez-les dans un tableau associatif qui peut être utilisé dans votre script pour traduire Marker State en symboles Unicode. (astuce : de nombreux symboles géométriques de l'hex 2500)
Nouveau tableau ( "marqueurs à gogo" , Ajouter des lignes ( 10260 ) , Nouvelle colonne ( "Marqueur" , État de la ligne , "État de ligne" , Formule ( État du marqueur ( Ligne ()))) , Nouvelle colonne ( "unicode hexadécimal" , Personnage , "Nominal" , Formule ( Droite ( Hexagone ( Ligne () , "entier" ) , 4 )))) ;
Re: Créer ma propre légendeCette section de script montre que je me rapproche
MFont = Arg ( Arg ( Obtenir les préférences ( Police de marqueur ) , 1 ) , 1 ) ; // Détermine la police utilisée pour les marqueurs
Uni = "\!" \!\\!!U" || "03B1" || "\!"" ;
mval = 1 ; // Remplacer par un autre symbole
// Ceci sera utilisé pour obtenir une valeur.
mval_h = hexagone ( 1 , "entier" ) ;
mval_h4 = substr ( mval_h , longueur ( mval_h ) - 3 ) ; // L'unicode requis est juste les 4 derniers chiffres de l'hexadécimal
montrer ( mval_h4 , longueur ( mval_h4 )) ;
mval_unicode = "\!"\!\\!!u" || mval_h4 || "\ !"" ; // Prêt pour Unicode
dt1 = nouveau tableau ( "Correct - Le symbole fonctionne" ,
ajouter des lignes ( 1 ) ,
Nouvelle colonne ( "Uni" , Personnage , Nominal , Définir les valeurs ( Insérer ({} , mval_unicode ) )) ,
) ;
État de la ligne ( Ligne () ) = État du marqueur ( Analyser ( : Uni ) ) ;
// Notez que cela fonctionne bien - le marqueur est #1 ;
nouvelle fenetre ( "Incorrect - le symbole de la deuxième case est vide" ,
Zone de liste V (
Panneau électrique ( "Uni " || carboniser ( Uni ) ,
Zone de texte ( analyser ( Uni )) ,
) ,
Panneau électrique ( "mval_unicode" || carboniser ( mval_unicode ) ,
Zone de texte ( analyser ( mval_unicode ) , << Définir la police ( MFont )) ,
) ,
)
) ;
// Malheureusement, le symbole n'est pas dans la zone de texte.