Mache 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 eingebaute 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 "8 C = -1" einfügen Text. Ich möchte, dass es der 'Marker von (8)', das Symbol 'o' oder was auch immer der Markerstatus ist, ist. Ich glaube, das sind Unicode, also denke ich, ich muss es nur richtig analysieren. Danke für Ideen.
GetMarker = Ausdruck (
mb1 = mb << Erhalten () ;
Mleg = dt << Markierung nach Spalte ( Säule ( nm [ mb1 ])) ;
jetzt markieren = J ( n Reihe ( dm ) , 1 , 0 ) ;
Zum ( ii = 1 , ii <= n Reihe ( dm ) , ii ++,
jetzt markieren [ ii ] = Markierung von ( Zeilenzustand ( ii ) ) ;
) ;
Kolnow = dt << als Matrix erhalten ( Säule ( nm [ mb1 ])) ;
MarkerJetzt = ColNow || MarkerJetzt ;
MarkerJetzt = MarkerJetzt [ Rang ( Kolnow ) , 0 ] || J ( n Reihe ( MarkerJetzt ) , 1 , 0 ) ;
MarkerJetzt [ 1 , 3 ] = 1 ;
Zum ( ii = 2 , ii <= n Reihe ( MarkerJetzt ) , ii ++,
Wenn ( MarkerJetzt [ ii , 1 ] == MarkerJetzt [ ii - 1 , 1 ] , MarkerJetzt [ ii , 3 ] = 0 , MarkerJetzt [ ii , 3 ] = 1 ) ;
) ;
M1 = MarkerJetzt [ Lok ( ColorNow [ 0 , 3 ]) , 1 :: 2 ] ;
NmJetzt = nm [ mb1 ] ;
// show(NmNow, colornow, C1);
Versuchen ( mTXtBx << löschen ) ;
Zum ( 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 ]) ;
) ;
) ;
Re: Erschaffe 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 << löschen);
Für(ii=1, ii<= n Zeile(M1), ii++,
uni="\!" \!\\!!U" || unicode[JMPMarkerVal] || " \!"";
Show(ii, M1[ii,1], uni);
mTxtBx[ii]=HList Box(
mTxta[ii]=Text Box(parse(uni), < Text Box(": "||NmNow||" = "||char(M1[ii,1])),
);
mbp << append(mTxtBx[ii]); // mbp ist ein Platzhalter im Fenster für die Legende
);
Re: Erschaffe meine eigene LegendeIch glaube nicht, dass die 32 eingebauten Symbole Unicode sind. Aber intern scheinen sie die ersten 32 Unicode-Zeichen zu belegen, also die nicht druckbaren. Versuchen Sie zB mval=43 und Sie erhalten ein Pluszeichen, jedoch nicht identisch mit dem JMP-Symbol.
Eine Idee: Verwenden Sie eine Unicode-Tabelle (wie die untenstehende), um die Zeilen zu markieren, die am besten zu den ersten 32 Zeilen passen, 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)
Neue Tabelle ( "Marker in Hülle und Fülle" , Zeilen hinzufügen ( 10260 ) , Neue Spalte ( "Marker" , Zeilenzustand , "Zeilenstatus" , Formel ( Markierungszustand ( Die Zeile ()))) , Neue Spalte ( "hex Unicode" , Charakter , "Nominal" , Formel ( Recht ( Verhexen ( Die Zeile () , "ganze Zahl" ) , 4 )))) ;
Re: Erschaffe meine eigene LegendeDieser Abschnitt des Skripts zeigt, dass ich näher komme
MSchrift = Arg ( Arg ( Einstellungen erhalten ( Markierungsschrift ) , 1 ) , 1 ) ; // Bestimmen Sie die Schriftart, die für Markierungen verwendet wird
uni = "\!" \!\\!!U" || "03B1" || "\!"" ;
mval = 1 ; // Ändern für ein anderes Symbol
// Dies wird verwendet, um einen Wert zu erhalten.
mval_h = verhexen ( 1 , "ganze Zahl" ) ;
mval_h4 = Substr ( mval_h , Länge ( mval_h ) - 3 ) ; //Der erforderliche Unicode sind nur die letzten 4 Ziffern der Hexadezimalzahl
Show ( 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 , Nominal , Werte einstellen ( Einfügung ({} , mval_unicode ) )) ,
) ;
Zeilenzustand ( Die Zeile () ) = Markierungszustand ( Analysieren ( : Uni ) ) ;
// Beachten Sie, dass dies gut funktioniert - der Marker ist #1;
neues Fenster ( "Falsch - Symbol für zweites Kästchen 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 ( MSchrift )) ,
) ,
)
) ;
// Leider ist das Symbol nicht im Textfeld.