Erschaffe meine eigene Legende<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich erstelle eine Legende, um Markierungen anzuzeigen. Derzeit wird versucht (und scheitert), die integrierte Legende zu wiederholen, aber ich möchte sie später erweitern.
Die Schlüsselzeile im Skript lautet:
txtii = verkohlen ( M1 [ ii , 2 ]) || " " || NmJetzt || " = " || verkohlen ( M1 [ ii , 1 ]) ;
Dies könnte zu „8 C = -1“ führen Text. Ich möchte, dass es der „Marker von (8)“, das Symbol „o“ oder was auch immer der Markerstatus ist, ist. Ich glaube, dass es sich dabei um Unicode handelt, daher denke ich, dass ich es einfach richtig analysieren muss. Vielen Dank für alle Ideen.
GetMarker = Ausdruck (
mb1 = mb << Erhalten () ;
Mleg = dt << Markierung nach Spalte ( Spalte ( nm [ mb1 ])) ;
markernow = J ( n Reihe ( dm ) , 1 , 0 ) ;
Für ( ii = 1 , ii <= n Reihe ( dm ) , ii ++,
markernow [ ii ] = Markierung von ( Zeilenstatus ( ii ) ) ;
) ;
Colnow = dt << als Matrix bekommen ( Spalte ( nm [ mb1 ])) ;
markerNow = ColNow || markerNow ;
markerNow = markerNow [ Rang ( Colnow ) , 0 ] || J ( n Reihe ( markerNow ) , 1 , 0 ) ;
markerNow [ 1 , 3 ] = 1 ;
Für ( ii = 2 , ii <= n Reihe ( markerNow ) , ii ++,
Wenn ( markerNow [ ii , 1 ] == markerNow [ ii - 1 , 1 ] , markerNow [ ii , 3 ] = 0 , markerNow [ ii , 3 ] = 1 ) ;
) ;
M1 = markerNow [ Ort ( ColorNow [ 0 , 3 ]) , 1 :: 2 ] ;
NmJetzt = nm [ mb1 ] ;
// show(NmNow, colornow, C1);
Versuchen ( mTxtBx << löschen ) ;
Für ( ii = 1 , ii <= n Reihe ( M1 ) , ii ++,
txtii = verkohlen ( M1 [ ii , 2 ]) || " " || NmJetzt || " = " || verkohlen ( M1 [ ii , 1 ]) ;
mTxtBx [ ii ] = Textfeld ( txtii ) ;
mbp << anhängen ( mTxtBx [ ii ]) ;
) ;
) ;
Betreff: Erstelle meine eigene LegendeIch bin dieser Idee gefolgt und:
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, der den in JMPMarkerVal nummerierten Markierungen ähnelt;
Try(mTxtBx << delete);
For(ii=1, ii<= n row(M1), ii++,
uni="\!" \!\\!!U" || unicode[JMPMarkerVal] || " \!"";
Show(ii, M1[ii,1], uni);
mTxtBx[ii]=HList Box(
mTxta[ii]=Textfeld(parse(uni), < Textfeld(": "||NmNow||" = "||char(M1[ii,1])),
);
mbp << append(mTxtBx[ii]); // mbp ist ein Platzhalter im Fenster für die Legende
);
Betreff: Erstelle meine eigene LegendeIch glaube nicht, dass die 32 integrierten Symbole Unicode sind. Aber intern scheinen sie die ersten 32 Unicode-Zeichen zu belegen, also die nicht druckbaren. Versuchen Sie es beispielsweise mit mval=43 und Sie erhalten ein Pluszeichen, das jedoch nicht mit dem JMP-Symbol identisch ist.
Eine Idee: Verwenden Sie eine Unicode-Tabelle (wie die untenstehende), um die Zeilen zu markieren, die am besten mit den ersten 32 Zeilen übereinstimmen, und fügen Sie sie in ein assoziatives Array ein, das in Ihrem Skript verwendet werden kann, um den Markierungsstatus in Unicode-Symbole zu übersetzen. (Tipp: viele geometrische Symbole ab Hex 2500)
Neuer Tisch ( „Marker in Hülle und Fülle“ , Zeilen hinzufügen ( 10260 ) , Neue Spalte ( "Marker" , Zeilenstatus , „Zeilenstatus“ , Formel ( Markierungsstatus ( Reihe ()))) , Neue Spalte ( „Hex-Unicode“ , Charakter , „Nominal“ , Formel ( Rechts ( Verhexen ( Reihe () , "ganze Zahl" ) , 4 )))) ;
Betreff: Erstelle meine eigene LegendeDieser Abschnitt des Skripts zeigt, dass ich näher komme
MFont = Arg ( Arg ( Holen Sie sich Präferenzen ( Markierungsschriftart ) , 1 ) , 1 ) ; // Bestimmen Sie die für Markierungen verwendete Schriftart
Uni = „\!“ \!\\!!U" || „03B1“ || „\!““ ;
mval = 1 ; // Für ein anderes Symbol ändern
// Dies wird verwendet, um einen Wert zu erhalten.
mval_h = verhexen ( 1 , "ganze Zahl" ) ;
mval_h4 = Unterstr ( mval_h , Länge ( mval_h ) - 3 ) ; //Der erforderliche Unicode besteht nur aus den letzten 4 Ziffern der Hexadezimalzahl
zeigen ( mval_h4 , Länge ( mval_h4 )) ;
mval_unicode = "\!"\!\\!!u" || mval_h4 || „\!““ ; // Unicode bereit
dt1 = neuer Tisch ( „Richtig – Symbol funktioniert“ ,
Zeilen hinzufügen ( 1 ) ,
Neue Spalte ( „Uni“ , Charakter , Nominell , Werte festlegen ( Einfügung ({} , mval_unicode ) )) ,
) ;
Zeilenstatus ( Reihe () ) = Markierungsstatus ( Analysieren ( : Uni ) ) ;
// Beachten Sie, dass dies gut funktioniert – der Marker ist #1;
neues Fenster ( „Falsch – Symbol für das zweite Feld ist leer“ ,
V-Listenfeld (
Panel-Box ( „uni“ || verkohlen ( Uni ) ,
Textfeld ( analysieren ( Uni )) ,
) ,
Panel-Box ( „mval_unicode“ || verkohlen ( mval_unicode ) ,
Textfeld ( analysieren ( mval_unicode ) , << Schriftart festlegen ( MFont )) ,
) ,
)
) ;
// Leider befindet sich das Symbol nicht im Textfeld.