gauge — u_pbt_gauge #
← Komponentenreferenz · Inhalt des Handbuchs
Lineare Anzeige: ein Wert entlang einer geraden Skala, waagerecht oder senkrecht — ein Balken oder eine Marke, farbige Bereiche, die sagen, ob es gut ist, ein Zielwert, eine Anzeige im Format Ihrer Wahl.
▶ Live ansehen — Demoanwendung, Kachel Linear gauge : die Vorschau, der erzeugende Code und diese Seite nebeneinander.
Kurz gefasst #
| Userobject | u_pbt_gauge |
| Elementklasse | n_pbt_gauge_range (of_range(key)) |
| Dient zu | Eine Größe auf einen Blick ablesen — Füllstand einer Platte, Monatsumsatz gegen sein Ziel, Pegel eines Tanks, Lautstärkeregler |
| Prinzip | Sie geben eine Skala, einen Wert und Bereiche an; Teilstriche, Zahlen, Farben und Animation sind unsere Sache |
| Familie | Zwilling von angulargauge: gleiche Methoden, gleiche Ereignisse und, abgesehen von der Geometrie, gleiche Eigenschaften — hier die Ausrichtung und die Lage der Bereiche, dort die Winkel und die runden Enden |
Schnellstart #
// Three ranges of the scale, each with the tone of what it means
uo_gauge.of_add_range(/*key*/ "ok", /*from*/ 0, /*to*/ 70)
uo_gauge.of_add_range(/*key*/ "warn", /*from*/ 70, /*to*/ 90)
uo_gauge.of_add_range(/*key*/ "full", /*from*/ 90, /*to*/ 100)
uo_gauge.of_range(/*key*/ "ok").is_tone = u_pbt_gauge.TONE_SUCCESS
uo_gauge.of_range(/*key*/ "warn").is_tone = u_pbt_gauge.TONE_WARN
uo_gauge.of_range(/*key*/ "full").is_tone = u_pbt_gauge.TONE_DANGER
// The title, the unit, and the value : the bar slides to it
uo_gauge.is_title = "Disk usage"
uo_gauge.is_unit = "%"
uo_gauge.id_value = 64
Skala, Wert und Bereiche #
Die Skala reicht von id_minimum bis id_maximum (standardmäßig 0 bis 100). Der Wert id_value wird so zurückgelesen, wie Sie ihn angegeben haben: Außerhalb der Skala wird er am nächsten Ende als Anschlag gezeichnet, und die Anzeige schreibt ihn trotzdem — eine Anzeige, die stillschweigend umschriebe, was die Anwendung gemessen hat, würde zweimal lügen. Vom Code gesetzt, löst er kein Ereignis aus, wie SetItem: ue_value_changed sagt, was der Benutzer getan hat. NULL wird ignoriert: der vorige Wert bleibt — prüfen Sie einen Messwert, der fehlen kann (GetItemNumber liefert NULL), bevor Sie ihn setzen.
Die Zahlen folgen is_format, dem Anzeigeformat eines DataWindow (#,##0.0, $#,##0, 0% schreibt den ANTEIL der Skala — 50 auf 0..200 ergibt 25 %, wie der Fortschrittsbalken), mit den Trennzeichen der Anzeigesprache. Ohne Format wählt die Skala die Nachkommastellen der Anzeige — zwei für eine Skala von 0 bis 1, keine für 0 bis 100 —, nie der Wert, der in einer Sekunde 43 und in der nächsten 42,55 schriebe; die Zahlen der Skala haben die ihres Abstands.
Ein Bereich färbt einen Teil der Skala: seine Farbe ist die, die Sie angeben, sonst die seines Tons (TONE_SUCCESS, TONE_WARN, TONE_DANGER, TONE_INFO = der Akzent des Themas, TONE_NEUTRAL — ein Farbsatz je hellem oder dunklem Modus), sonst die der Palette. Bereiche überlagern sich in der Reihenfolge des Hinzufügens; of_current_range() sagt, in welchem der Wert liegt. Sie werden entlang der Spur gezeichnet, unter dem Balken. Ein Bereich enthält seinen Anfang, aber nicht sein Ende: auf der Grenze, die zwei Bereiche teilen (60 zwischen 0–60 und 60–85), liegt der Wert in dem, der dort beginnt, unabhängig von der Reihenfolge des Hinzufügens; das Ende der Skala gehört dem Bereich, der es erreicht. Die Palettenfarbe eines Bereichs wird beim Hinzufügen festgelegt: das Entfernen eines Bereichs färbt keinen anderen um. Ein Bereich ganz außerhalb der Skala wird nicht gezeichnet.
Eigenschaften #
| Eigenschaft | Typ | Standard | Rolle |
|---|---|---|---|
is_title | string | "" | Der Titel, am Anfang der Zeile der Anzeige. Markup erlaubt; er benennt die Komponente auch für einen Bildschirmleser. Ohne Titel benennt sie der reine Text des Tooltips (is_super_tooltip_title, sonst is_tooltip), sonst das Wort „Anzeige“ in der Anzeigesprache |
id_value | double | 0 | Der Wert. Er gleitet an seinen Platz; außerhalb der Skala am Anschlag gezeichnet und unverändert zurückgelesen. Vom Code gesetzt, stumm; NULL wird ignoriert, der vorige Wert bleibt |
id_minimum | double | 0 | Der Anfang der Skala. Eine Skala, deren Minimum nicht unter dem Maximum liegt, ist leer: kein Teilstrich, keine Zahl, kein Bereich, keine Marke und kein Zielwert, und of_current_range() liefert eine leere Zeichenkette. Um eine Skala umzukehren: ib_reversed |
id_maximum | double | 100 | Das Ende der Skala |
is_format | string | "" | Das Anzeigeformat aller Zahlen — Anzeige, Skala, Grenzen eines Bereichs —, in der Syntax eines DataWindow-Formats (#,##0.00, $#,##0, 0%), Trennzeichen der Anzeigesprache. Leer = die Anzeige hat die Nachkommastellen der Skala (zwei für 0 bis 1, keine für 0 bis 100), die Zahlen der Skala die ihres Abstands (0,0, 0,2… 1,0) |
is_unit | string | "" | Wird in der Anzeige nach dem Wert geschrieben (%, km/h) |
ib_show_value | boolean | true | Zeigt die Anzeige — Wert und Einheit — am Ende der Titelzeile |
id_tick_step | double | 0 | Der Abstand zwischen zwei nummerierten Teilstrichen. 0 = von der Skala gewählt: ein runder Schritt (1, 2, 2,5 oder 5 mal eine Zehnerpotenz, dann 3, 4,5 oder 6), der auf beide Enden fällt, wenn es einen gibt — 0 bis 90 in Zehnern, −50 bis 50 in 25ern, 0 bis 360 in 60ern —, sonst ab dem Minimum gezählt (32 bis 212 in 20ern). Ein von Ihnen angegebener Schritt wird immer ab dem Minimum gezählt; ein Schritt mit mehr als 200 Teilstrichen fällt auf den automatischen zurück. Jedes Ende trägt einen nummerierten Teilstrich. Passen nicht alle Zahlen, wird eine von k geschrieben, damit der Abstand regelmäßig bleibt, und beide Enden werden immer geschrieben. Die Zahlen haben die Nachkommastellen ihres Schritts. Der gewählte Schritt ist nie feiner als das, was is_format schreibt (0 bis 3 im Format #,##0: 0, 1, 2, 3); ein von Ihnen angegebener Schritt bleibt Ihrer, und das Format rundet seine Zahlen |
ii_minor_ticks | integer | 4 | Kleine Teilstriche zwischen zwei nummerierten (0 bis 9) |
ib_show_ticks | boolean | true | Zeigt die Teilstriche |
ib_show_labels | boolean | true | Zeigt die Zahlen der Skala |
id_target | double | 0 | Ein Zielwert — ein Ziel, eine Schwelle —, quer über die Spur markiert, solange ib_show_target wahr ist |
ib_show_target | boolean | false | Zeigt die Marke von id_target |
is_pointer | string | bar | Wie der Wert gezeigt wird (Konstanten POINTER_*): BAR, ein vom Minimum aus gefüllter Balken; MARKER, ein Dreieck neben der Spur. Unbekannt = BAR |
il_value_color | long | -1 | Die Farbe des Werts — der Balken oder die Marke; -1 = der Akzent des Themas |
il_track_color | long | -1 | Die Farbe von die Spur; -1 = ein Ton der Textfarbe des Themas |
ii_thickness | integer | 0 | Die Dicke der Spur in Pixeln (0 bis 80); 0 = automatisch: 14 für einen Balken, 8 für eine Marke |
ib_reversed | boolean | false | Das Maximum am Anfang der Skala: links bei einer waagerechten Anzeige (rechts bei Rechts-nach-links-Leserichtung), unten bei einer senkrechten. Die Pfeile schieben die Marke weiterhin in ihre Richtung |
is_orientation | string | horizontal | Die Richtung der Skala (Konstanten ORIENTATION_*). Eine waagerechte Skala folgt der Leserichtung: von rechts nach links steht ihr Minimum rechts — die Taste Rechts schiebt die Marke weiterhin nach rechts. Unbekannt = HORIZONTAL |
ib_editable | boolean | false | Der Benutzer bewegt den Wert: den Balken ziehen, auf die Skala klicken, Pfeile, Bild auf/ab (zehn Schritte), Pos1 und Ende. Die Pfeile folgen dem Bildschirm: Rechts schiebt nach rechts, Oben nach oben, was auch immer die Skala umgekehrt hat (Rechts-nach-links, ib_reversed). Jede Geste löst ue_value_changed einmal aus — eine Taste setzt den Wert wie die Hand sofort, und ein abgebrochenes Ziehen (Meldungsfenster, Alt+Tab) endet wie ein Loslassen; Esc während des Ziehens stellt den Wert wieder her (ein von Ihrem Code inzwischen geschriebener Wert bleibt), ohne die Abbrechen-Schaltfläche des Fensters zu drücken; die Menü-Taste benennt den Bereich, in dem der Wert liegt |
id_step | double | 0 | Die Schrittweite von Hand und Tasten; 0 = die Genauigkeit, die die Anzeige zeigt (die Nachkommastellen von is_format oder die von der Skala gewählten): auf einer Skala von 0 bis 7 liefert die Hand 2,6, nie ein 2,61, das der Benutzer nicht gelesen hat; eine Taste bewegt um ein Hundertstel der Skala, nie weniger als eine angezeigte Stelle. Beide Enden bleiben erreichbar, wenn der Schritt die Skala nicht teilt: von 0 bis 100 in 30ern durchläuft der Wert 0, 30, 60, 90, 100 |
ib_track_drag | boolean | false | Mit ib_editable, auf Wunsch: Während der Benutzer den Wert zieht, folgt ue_value_tracking der Hand — eine live gehörte Lautstärke, eine neu gezeichnete Vorschau. ue_value_changed kommt weiterhin einmal, beim Loslassen; wird ein Ziehen abgebrochen (Esc, ib_editable oder ib_enabled vom Code auf false gesetzt), meldet ue_value_tracking auch den Wert, von dem es ausging |
ib_value_tooltip | boolean | true | Das Feld, das den Bereich unter dem Zeiger mit seinen Grenzen benennt. Es ist nicht is_tooltip, der Tooltip der ganzen Komponente. Der Tooltip eines Bereichs (sein is_tooltip) wird in dieses Feld geschrieben, auch bei false |
ib_pointer_tooltip | boolean | false | Auf Wunsch: das Feld benennt auch den Wert unter der Maus — auf dem Balken oder der Marke — und den Zielwert, mit ihrer Zahl im Format der Anzeige. Die Bereiche behalten ihr eigenes Feld (ib_value_tooltip) |
ib_value_follows_range | boolean | false | Auf Wunsch: der Wert — der Balken oder die Marke — nimmt die Farbe des Bereichs an, in dem er liegt (des oben gezeichneten, wenn sich zwei überlappen): rot im roten Bereich. Außerhalb jedes Bereichs behält er il_value_color, sonst den Akzent des Themas. Während der Wert gleitet, folgt die Farbe dem gezeichneten Wert |
id_origin | double | 0 | Wo der Balken beginnt (POINTER_BAR): ein Wert unter dem Ursprung wächst in die andere Richtung — eine Abweichung, eine Varianz, eine Skala von −50 bis 50, die bei 0 beginnt. Solange er nicht gesetzt ist — oder nachdem er wieder auf NULL gesetzt wurde —, beginnt der Balken beim Minimum und folgt ihm, und die Eigenschaft liest das Minimum zurück; außerhalb der Skala am nächsten Ende |
is_range_placement | string | beside | Wo die Bereiche gezeichnet werden (Konstanten PLACEMENT_*): beside, ein eigenes Band entlang der Spur; behind, sie füllen die Spur, heller, und ein dünnerer Balken läuft darüber, der Zielwert quer — der „Bullet Graph“ eines Dashboards. Unbekannt = beside, so zurückgelesen. Dahinter behält der Balken einen schmalen Rand in der Farbe der Seite: ein roter Balken bleibt auf seinem eigenen roten Band sichtbar; die helleren Bänder sind Dekoration, der Bereich wird im Feld und von einem Bildschirmleser gelesen |
ib_auto_height | boolean | false | Die Komponente meldet ihre ideale Höhe, und das Userobject passt sich an (ue_auto_height). Eine waagerechte Anzeige meldet, was sie zeichnet, Titel inbegriffen. Eine senkrechte Anzeige meldet nichts: von waagerecht auf senkrecht umgestellt, behält das Userobject die zuletzt gemeldete Höhe |
ib_enabled | boolean | true | Ausgegraut zeigt sie weiter ihren Wert, reagiert aber nicht mehr: kein Klick, keine Taste, kein Ziehen, und sie verlässt die Tab-Reihenfolge |
ib_animated | boolean | true | Der Wert gleitet Bild für Bild an seinen Platz — der Balken wächst — und kommt vom Anfang der Skala (ihrem Minimum), wenn die Komponente gezeichnet wird. Eine während des Gleitens geänderte Eigenschaft (Titel, Einheit, Farbe, Größe) unterbricht es nicht. Ein Arbeitsplatz mit reduzierten Animationen animiert nie; die Hand des Benutzers wird nie animiert; ein unter of_set_redraw(false) gesetzter Wert gleitet bei der Wiederaufnahme |
ii_anim_duration | integer | 450 | Dauer des Gleitens in Millisekunden (0 bis 5000) |
is_anim_easing | string | ease-out | Die Kurve des Gleitens (Konstanten EASING_*, die Namen von LiveCharts2): back-out schießt über und kehrt zurück, bounce-out springt, elastic-out schnellt. Ein Überschießen bleibt auf der Skala. Unbekannt = ease-out |
is_theme_style | string | "" | Visueller Stil der Komponente (Konstanten THEME_STYLE_*); leer = der der Anwendung, bei jeder Änderung übernommen |
is_theme_mode | string | "" | Helle oder dunkle Variante (Konstanten THEME_MODE_*); leer = die der Anwendung, bei jeder Änderung übernommen |
il_theme_accent | long | -1 | Akzentfarbe dieser Komponente (-1 = Akzent des Themas) |
is_tooltip | string | "" | Einfacher Tooltip beim Überfahren der Komponente |
is_super_tooltip_title | string | "" | Titel des erweiterten Tooltips (hat Vorrang vor is_tooltip) |
is_super_tooltip_text | string | "" | Text des erweiterten Tooltips (Rich-Markup erlaubt) |
is_super_tooltip_image | string | "" | Bild des erweiterten Tooltips |
Methoden #
| Methode | Rolle | |
|---|---|---|
of_add_range ( string as_key, double ad_from, double ad_to { , long al_color } ) | Fügt einen farbigen Bereich von ad_from bis ad_to hinzu (verkehrt herum angegebene Grenzen werden richtig herum gezeichnet); die Überladung mit Farbe legt sie fest, sonst der Ton, dann die Palette. Liefert 0 nach dem Hinzufügen, -5, wenn der Schlüssel leer ist, / oder ` | enthält oder schon vergeben ist (ein Hinzufügen ersetzt nie), -2`, wenn die Komponente nicht erzeugt ist. Die Palettenfarbe wird beim Hinzufügen vergeben: das Entfernen eines Bereichs färbt keinen anderen um |
of_clear_ranges ( ) | Entfernt alle Bereiche — ihre Handles gehen mit —, Wert und Einstellungen bleiben. Liefert 0 danach, -2, wenn die Komponente nicht erzeugt ist | |
of_current_range ( ) | Der Schlüssel des Bereichs, in dem der Wert jetzt liegt, eine leere Zeichenkette, wenn er in keinem liegt oder die Skala leer ist. Wo sich zwei Bereiche überlappen, gewinnt der zuletzt hinzugefügte — der oben gezeichnete. Ein ausgeblendeter Bereich zählt nicht; ein Bereich, den der Demomodus nicht zeichnet, zählt: was diese Methode liest, hängt nie von der Lizenz ab. Ein Bereich enthält seinen Anfang, aber nicht sein Ende: auf der gemeinsamen Grenze zweier Bereiche liegt der Wert in dem, der dort beginnt, unabhängig von der Reihenfolge; das Ende der Skala gehört dem Bereich, der es erreicht. Ein Bereich außerhalb der Skala (nicht gezeichnet) zählt ebenfalls | |
of_range ( string as_key ) | Das Handle n_pbt_gauge_range eines Bereichs, um Grenzen, Farbe, Ton, Namen oder Sichtbarkeit zu lesen oder zu ändern | |
of_remove_range ( string as_key ) | Entfernt einen Bereich; sein Handle wird zerstört. Liefert 0 nach dem Entfernen, -5, wenn kein Bereich diesen Schlüssel hat, -2, wenn die Komponente nicht erzeugt ist | |
of_reset ( ) | Leert die Bereiche — Handles inbegriffen — und setzt alle Eigenschaften auf ihren Ursprungswert zurück. Liefert 0 danach, -2, wenn die Komponente nicht erzeugt ist |
Ereignisse #
| Ereignis | Ausgelöst, wenn |
|---|---|
ue_value_changed (double ad_value) | Nur mit ib_editable: der Benutzer hat den Wert bewegt — einmal je Ziehen (beim Loslassen oder wenn das Ziehen abgebrochen wird: ein Meldungsfenster unter der Hand, Alt+Tab), je Klick, je Taste. Ein von Ihrem Code gesetzter Wert löst es nicht aus, auch nicht während eines Ziehens. Um der Hand während des Ziehens zu folgen: ib_track_drag |
ue_value_tracking (double ad_value) | Nur mit ib_editable und ib_track_drag, während der Benutzer den Wert zieht: jede neue Position der Hand, dann — wenn das Ziehen abgebrochen wird: Esc, oder ib_editable / ib_enabled von Ihrem Code auf false gesetzt — der Wert, von dem es ausging. Der Endwert kommt weiterhin einmal in ue_value_changed |
ue_range_clicked (string as_key) | Ein Bereich wurde angeklickt — oder mit Eingabe oder Leertaste auf dem Bereich der Tastatur bestätigt (Tab, dann die Pfeile). Nicht bei einer bearbeitbaren Komponente: dort setzt ein Klick den Wert |
ue_range_rclicked (string as_key, long al_x, long al_y) | Rechtsklick auf einen Bereich oder Menü-Taste (Umschalt+F10) auf dem Bereich der Tastatur — bei einer bearbeitbaren Komponente auf dem Bereich, in dem der Wert liegt: der Ort, um ein Menü zu öffnen; al_x, al_y: wo das Menü zu öffnen ist, in Bildschirmpixeln — der Zeiger, oder über die Tastatur (Menütaste, Umschalt+F10) die Mitte des Bereichs; ein contextmenu öffnet sich dort unverändert (uo_menu.of_show(al_x, al_y)) |
ue_auto_height (long al_height) | Mit ib_auto_height: das Userobject wurde gerade auf seine ideale Höhe gebracht |
Elementeigenschaften #
Ein Bereich wird über seinen Schlüssel angesprochen: uo_gauge.of_range("warn").is_tone = u_pbt_gauge.TONE_WARN.
| Eigenschaft | Typ | Standard | Rolle |
|---|---|---|---|
id_from | double | 0 | Der Anfang des Bereichs auf der Skala |
id_to | double | 0 | Sein Ende. Verkehrt herum angegebene Grenzen werden richtig gezeichnet und unverändert zurückgelesen |
il_color | long | -1 | Seine Farbe; -1 = die seines Tons, sonst der Palette. Die geerbten Elementfarben (il_accent, il_back_color, il_text_color und ihre Hover-Varianten) haben keine Wirkung auf einen Bereich: il_color und is_tone entscheiden |
is_tone | string | "" | Sein Ton (Konstanten TONE_* der Komponente): SUCCESS, WARN, DANGER, INFO (der Akzent des Themas), NEUTRAL — ein Satz je hellem oder dunklem Modus, Groß- und Kleinschreibung egal. il_color hat Vorrang; ein unbekannter Ton gilt als kein Ton |
is_label | string | "" | Sein Name, im Feld unter dem Zeiger und für einen Bildschirmleser; leer = sein Schlüssel. Markup erlaubt |
ib_visible | boolean | true | Blendet den Bereich aus, ohne ihn zu entfernen; wie ein Kontrollkästchen löst es kein Ereignis aus |
is_tooltip | string | "" | Sein Tooltip, in das Feld geschrieben, das den Bereich unter dem Zeiger benennt — nie eine zweite Blase. Markup erlaubt |
is_super_tooltip_title | string | "" | Der fette Titel seines Tooltips, im Feld unter seinem Namen geschrieben |
is_super_tooltip_text | string | "" | Der Text seines Tooltips, im Feld. Markup erlaubt |
is_super_tooltip_image | string | "" | Ein Bild oben in seinem Tooltip, im Feld (Bundle-Pfad, absoluter Pfad oder resources.dll:name) |
Beispiele #
Ein lebendiges Dashboard #
// Local variables
double ld_used
// Timer event of the window : the bar slides to each new reading
ld_used = ids_monitor.GetItemNumber(1, "disk_used")
// A missing reading (NULL) is ignored by the gauge : test it, or the last one stays
if not IsNull(ld_used) then uo_gauge.id_value = ld_used
// Which range is it in now ? An alert outside the good one
st_alert.visible = (uo_gauge.of_current_range() <> "ok")
Umsatz gegen sein Ziel #
// Dollars, a number every 50 000, up to 250 000
uo_gauge.id_maximum = 250000
uo_gauge.id_tick_step = 50000
uo_gauge.is_format = "$#,##0"
// The goal : a mark across the bar
uo_gauge.id_target = 200000
uo_gauge.ib_show_target = true
// Point at the bar or at the goal : the panel says its number
uo_gauge.ib_pointer_tooltip = true
uo_gauge.id_value = 168400
Ein Bullet Graph für das Dashboard #
// Dollars in thousands, on a scale up to 300
uo_gauge.is_format = "$#,##0k"
uo_gauge.id_maximum = 300
// Three qualitative zones : poor, satisfactory, good
uo_gauge.of_add_range(/*key*/ "poor", /*from*/ 0, /*to*/ 150)
uo_gauge.of_add_range(/*key*/ "fair", /*from*/ 150, /*to*/ 225)
uo_gauge.of_add_range(/*key*/ "good", /*from*/ 225, /*to*/ 300)
uo_gauge.of_range(/*key*/ "poor").is_tone = u_pbt_gauge.TONE_DANGER
uo_gauge.of_range(/*key*/ "fair").is_tone = u_pbt_gauge.TONE_WARN
uo_gauge.of_range(/*key*/ "good").is_tone = u_pbt_gauge.TONE_SUCCESS
// The zones BEHIND a thinner bar, the plan across it
uo_gauge.is_range_placement = u_pbt_gauge.PLACEMENT_BEHIND
uo_gauge.id_target = 250
uo_gauge.ib_show_target = true
// The bar takes the colour of the zone it is in
uo_gauge.ib_value_follows_range = true
uo_gauge.id_value = 212
Eine Abweichung vom Budget #
// A scale centred on zero : the bar starts at 0, to the left below it
uo_gauge.id_minimum = -50
uo_gauge.id_maximum = 50
uo_gauge.id_origin = 0
uo_gauge.id_value = -18
Ein Wert, den der Benutzer einstellt #
// The user moves the value, by steps of 5
uo_gauge.ib_editable = true
uo_gauge.id_step = 5
// Event ue_value_changed of uo_gauge : apply what the user chose
ii_level = Integer(ad_value)
Eine live eingestellte Lautstärke #
// The user drags the value, and the sound follows the hand
uo_gauge.ib_editable = true
uo_gauge.ib_track_drag = true
// Event ue_value_tracking of uo_gauge : the volume heard while the hand moves
inv_player.ii_volume = Integer(ad_value)
// Event ue_value_changed of uo_gauge : the volume kept when the hand lets go
ii_saved_volume = Integer(ad_value)
Ein Menü auf einem Bereich #
// Event ue_range_rclicked of uo_gauge : remember the range, then open the menu
// at the pointer of the window
is_menu_range = as_key
m_range.PopMenu(/*xlocation*/ w_main.PointerX(), /*ylocation*/ w_main.PointerY())
Bewährte Praxis #
- Höchstens drei Bereiche, mit ihren Tönen: gut, Vorsicht, schlecht. Darüber hinaus liest das Auge die Farbe unter dem Balken nicht mehr.
- Ein Format statt einer Rechnung:
0%auf einer Skala von 0 bis 1,$#,##0für Geld — der Wert bleibt der des Codes. - Bei einem oft aktualisierten Dashboard behalten Sie die Animation: der Wert gleitet von seiner Position aus, er beginnt nicht von vorn.
- Eine Farbe mit Bedeutung setzen Sie über den Ton; überlassen Sie den Wert dem Akzent des Themas, er folgt dem hellen oder dunklen Thema.
- Für einen Bericht kommt das Bild der Anzeige, wie sie auf dem Bildschirm steht, vom Sockel:
of_save_as_png(oderof_save_as_jpg),of_print_to_pdf,of_print— der Endwert, nie ein Balken auf halbem Weg.
Vom gemeinsamen Sockel geerbt #
Diese Mitglieder gibt es bei jeder visuellen Komponente — sie sind nicht dieser eigen. Sie werden einmal in den übergreifenden Kapiteln beschrieben; diese Tabelle sagt nur, wo man sie liest.
| Mitglieder | Rolle | Beschrieben in |
|---|---|---|
of_count · of_keys_at · of_has | Durchlaufen, was die Komponente enthält | 3.2 Die Items |
of_reset | Die Komponente zurücksetzen | 3.6 Eine Komponente zurücksetzen: of_reset() |
of_register_shortcut · of_clear_shortcuts | Tastenkürzel der Komponente | 3.5 Tastenkombinationen |
of_is_created · of_is_ready · of_get_last_error | Ob sie entstanden ist, ob sie bereit ist, was fehlschlug | 3.7 Diagnose |
of_save_as_png · of_save_as_jpg | Die Darstellung als Bild exportieren | 3.8 Die Darstellung als Bild exportieren |
of_set_redraw | Änderungen zu einem einzigen Neuzeichnen bündeln | 3.10 Best Practices |
of_preload_icons | Symbole ohne Verzögerung | Sofortige Anzeige: of_icon |
of_set_translation | Eine Beschriftung der Komponente übersetzen | 5.2 Eine Beschriftung anpassen: of_set_translation |
of_focus_webview | Der Komponente den Fokus geben | 6.4 Tastatur und Fokus |
of_print · of_print_to_pdf | Drucken oder ein PDF schreiben | 6.9 Drucken |
of_set_property · of_get_property · of_component_name | Eine Eigenschaft über ihren Namen steuern | 3.1 Die Eigenschaften-Engine |
is_accessible_name · is_accessible_description | Name und Beschreibung, die ein Bildschirmleser sagt | 3.4 Optionale Eigenschaften und Events |
Zwei Helfer werden nicht geerbt: of_icon und of_escape_markup liegen auf n_pbt_utils. Deklarieren Sie eines — n_pbt_utils lnv_utils, nichts zu erzeugen — und rufen Sie sie darauf auf.