Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
1181
Rating:
(34)
Veröffentlicht:
2017.11.09 08:36
Aktualisiert:
2018.09.06 11:03
\MQL5\Include\
NotifyIcon.mqh (66.01 KB) ansehen
\MQL5\Indicators\
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Diese Bibliothek ermöglicht MQL-Programme, eigene Icons im Infobereich der Taskleiste von Windows erscheinen zu lassen. Mit der Bibliothek können Sie, Textnachrichten anzuzeigen, indem Sie sie von Ihren Programmen aus senden, oder das Symbol zu verwenden, um einen bestimmten Programmstatus anzuzeigen. Die Bibliotheksoperation basiert auf dem Icon Shell_NotifyIcon. Zur Vereinfachung wurde die Klasse CNotifyIcon, die es erlaubt, die Details von Operationen mit Windows-API-Funktionen auszublenden und eine Reihe von Methoden für die Arbeit mit drei funktionalen Elementen, einschließlich des Icons, der Benachrichtigungsblase und dem Tooltip, bereitzustellen.

Das Symbol und der Textblase sind in Abbildung 1 dargestellt.

Beispiel des Icons und der Textblase

Abb. 1. Beispiel des Icons und der Textblase

Ein Tooltip erscheint, wenn sich die Maus über dem Icon bewegt. Das Beispiel eines Tooltips zeigt Abbildung 2.</t1>

Beispiel eines Tooltips

Abb. 2. Beispiel eines Tooltips

Die Bibliothek arbeitet stabil auf Systemen ab Windows 7/Windows Server 2008 R2.


Icon

Die Größe des Icons hängt von der DPI-Einstellung in den Bildschirmeinstellungen Ihres Betriebssystems ab. Standardmäßig wird 96 DPI verwendet, was der Größe des 16x16 Icons entspricht. Um Bilder in der richtigen Größe laden zu können, müssen Sie dies wissen. In diesem Fall werden Ihre Bilder nicht zusätzlich vom System konvertiert und somit nicht verzerrt. Es ist nicht möglich, ein Bild mit einer kleineren Größe zu laden.

Sie können die benötigte Bildgröße ermitteln, indem Sie die Funktion GetSystemSize() aufrufen.

int icon_size = CNotifyIcon::GetSystemSize(ICON_SMALL);

Um nicht für jeden DPI-Wert Bilder zu erstellen, können Sie eine Größe vorbereiten, z. B. 24x24 (maximales DPI ist 144) oder 32x32 (maximales DPI ist 240). So können Sie die Kompatibilität mit den meisten Benutzern sicherstellen, aber in diesem Fall wird das Bild automatisch konvertiert (Größe wird reduziert) und kann daher verzerrt werden. Die Beispiele zeigen Bilder in BMP mit einer Größe von 32x32 und einer Farbtiefe von 32 Bit (mit Transparenz).

Es gibt fünf Wege das Bild eines Icons zu laden:

  1. Der erste und naheliegenste Weg ist eine Datei zu laden. In diesem Fall kann die Datei außerhalb des Sandkastens des Terminals liegen.

    CNotifyIcon notify_icon;
    
    notify_icon.Icon.LoadFromFile("D:\\Images\\indicator32.bmp");
    
  2. Der zweite Weg ist, es aus einer 'resource' zu laden.

    #resource "\\Images\\Indicator32.bmp"
    
    notify_icon.Icon.LoadFromResource("::Images\\Indicator32.bmp");
    
  3. Der dritte Weg ist, es als ein-eindimensionalen Array zu laden. Innerhalb dieser Methode wird ein Bild zunächst in ein eindimensionales Array mit der Struktur RGBQUAD umgewandelt.

    
    const uint icon_array32[1024]=
      {
       0x00FFFFFF,0xFFB7B6B3,0xFFB7B6B3,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB7B6B3,0xFFB7B6B3,0x00FFFFFF,
       0x00FFFFFF,0xFFB7B6B3,0xFFB7B6B3,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB7B6B3,0xFFB7B6B3,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB79012,0xFFB79012,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFD8D1B7,0xFFD8D1B7,0xFF625F53,0xFF625F53,0xFF57544A,0xFF57544A,0xFF57544A,0xFF535046,0xFF535046,0xFFFFF7D8,0xFFFFF7D8,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB79012,0xFFB79012,0x00FFFFFF,
       0x00FFFFFF,0xFFB79012,0xFFB79012,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFD8D1B7,0xFFD8D1B7,0xFF625F53,0xFF625F53,0xFF57544A,0xFF57544A,0xFF57544A,0xFF535046,0xFF535046,0xFFFFF7D8,0xFFFFF7D8,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB79012,0xFFB79012,0x00FFFFFF,
       0x00FFFFFF,0xFFB58E11,0xFFB58E11,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFF9ECB9,0xFFF9ECB9,0xFF605B47,0xFF605B47,0xFF8D8669,0xFF8D8669,0xFFF2E6B3,0xFFF2E6B3,0xFFF2E6B3,0xFFEDE1B0,0xFFEDE1B0,0xFFEEE2B0,0xFFEEE2B0,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB58E11,0xFFB58E11,0x00FFFFFF,
       0x00FFFFFF,0xFFB58E11,0xFFB58E11,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFF9ECB9,0xFFF9ECB9,0xFF605B47,0xFF605B47,0xFF8D8669,0xFF8D8669,0xFFF2E6B3,0xFFF2E6B3,0xFFF2E6B3,0xFFEDE1B0,0xFFEDE1B0,0xFFEEE2B0,0xFFEEE2B0,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB58E11,0xFFB58E11,0x00FFFFFF,
       0x00FFFFFF,0xFFB28C10,0xFFB28C10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFEC9F,0xFFFFEC9F,0xFFFBE89D,0xFFFBE89D,0xFFDDCD8A,0xFFDDCD8A,0xFFDDCD8A,0xFFB2A56F,0xFFB2A56F,0xFF4C462F,0xFF4C462F,0xFFCEBF80,0xFFCEBF80,0xFFF2E097,0xFFF2E097,0xFFF2E097,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB28C10,0xFFB28C10,0x00FFFFFF,
       0x00FFFFFF,0xFFB28C10,0xFFB28C10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFEC9F,0xFFFFEC9F,0xFFFBE89D,0xFFFBE89D,0xFFDDCD8A,0xFFDDCD8A,0xFFDDCD8A,0xFFB2A56F,0xFFB2A56F,0xFF4C462F,0xFF4C462F,0xFFCEBF80,0xFFCEBF80,0xFFF2E097,0xFFF2E097,0xFFF2E097,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB28C10,0xFFB28C10,0x00FFFFFF,
       0x00FFFFFF,0xFFB28C10,0xFFB28C10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFEC9F,0xFFFFEC9F,0xFFFBE89D,0xFFFBE89D,0xFFDDCD8A,0xFFDDCD8A,0xFFDDCD8A,0xFFB2A56F,0xFFB2A56F,0xFF4C462F,0xFF4C462F,0xFFCEBF80,0xFFCEBF80,0xFFF2E097,0xFFF2E097,0xFFF2E097,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB28C10,0xFFB28C10,0x00FFFFFF,
       0x00FFFFFF,0xFFAF890F,0xFFAF890F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE680,0xFFFFE680,0xFFEDD677,0xFFEDD677,0xFF695F35,0xFF695F35,0xFF695F35,0xFF514929,0xFF514929,0xFF544C2A,0xFF544C2A,0xFF655B33,0xFF655B33,0xFFBAA85D,0xFFBAA85D,0xFFBAA85D,0xFFFFE680,0xFFFFE680,0xFFFFE680,0xFFFFE680,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFAF890F,0xFFAF890F,0x00FFFFFF,
       0x00FFFFFF,0xFFAF890F,0xFFAF890F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE680,0xFFFFE680,0xFFEDD677,0xFFEDD677,0xFF695F35,0xFF695F35,0xFF695F35,0xFF514929,0xFF514929,0xFF544C2A,0xFF544C2A,0xFF655B33,0xFF655B33,0xFFBAA85D,0xFFBAA85D,0xFFBAA85D,0xFFFFE680,0xFFFFE680,0xFFFFE680,0xFFFFE680,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFAF890F,0xFFAF890F,0x00FFFFFF,
       0x00FFFFFF,0xFFAB860D,0xFFAB860D,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFF9DA5E,0xFFF9DA5E,0xFFF9DA5E,0xFF635725,0xFF635725,0xFFAC9641,0xFFAC9641,0xFFFBDC5E,0xFFFBDC5E,0xFFFEDE60,0xFFFEDE60,0xFFFEDE60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFAB860D,0xFFAB860D,0x00FFFFFF,
       0x00FFFFFF,0xFFAB860D,0xFFAB860D,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFF9DA5E,0xFFF9DA5E,0xFFF9DA5E,0xFF635725,0xFF635725,0xFFAC9641,0xFFAC9641,0xFFFBDC5E,0xFFFBDC5E,0xFFFEDE60,0xFFFEDE60,0xFFFEDE60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFAB860D,0xFFAB860D,0x00FFFFFF,
       0x00FFFFFF,0xFFA7830C,0xFFA7830C,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFE6C43C,0xFFE6C43C,0xFFE6C43C,0xFF524615,0xFF524615,0xFFDDBC39,0xFFDDBC39,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA7830B,0xFFA7830B,0x00FFFFFF,
       0x00FFFFFF,0xFFA7830C,0xFFA7830C,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFE6C43C,0xFFE6C43C,0xFFE6C43C,0xFF524615,0xFF524615,0xFFDDBC39,0xFFDDBC39,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA7830B,0xFFA7830B,0x00FFFFFF,
       0x00FFFFFF,0xFFA7830C,0xFFA7830C,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFE6C43C,0xFFE6C43C,0xFFE6C43C,0xFF524615,0xFF524615,0xFFDDBC39,0xFFDDBC39,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA7830B,0xFFA7830B,0x00FFFFFF,
       0x00FFFFFF,0xFFA4800B,0xFFA4800B,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFB7981C,0xFFB7981C,0xFFB7981C,0xFF5C4C0E,0xFF5C4C0E,0xFFFBD126,0xFFFBD126,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA47F0A,0xFFA47F0A,0x00FFFFFF,
       0x00FFFFFF,0xFFA4800B,0xFFA4800B,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFB7981C,0xFFB7981C,0xFFB7981C,0xFF5C4C0E,0xFF5C4C0E,0xFFFBD126,0xFFFBD126,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA47F0A,0xFFA47F0A,0x00FFFFFF,
       0x00FFFFFF,0xFFA07C09,0xFFA07C09,0xFFFDCA00,0xFFFDCA00,0xFFFDCA00,0xFFFFCF10,0xFFFFCF10,0xFFF7C90F,0xFFF7C90F,0xFF675406,0xFF675406,0xFF675406,0xFF917609,0xFF917609,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA07D09,0xFFA07D09,0x00FFFFFF,
       0x00FFFFFF,0xFFA07C09,0xFFA07C09,0xFFFDCA00,0xFFFDCA00,0xFFFDCA00,0xFFFFCF10,0xFFFFCF10,0xFFF7C90F,0xFFF7C90F,0xFF675406,0xFF675406,0xFF675406,0xFF917609,0xFF917609,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA07D09,0xFFA07D09,0x00FFFFFF,
       0x00FFFFFF,0xFF9D7A08,0xFF9D7A08,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF715A00,0xFF715A00,0xFF624E00,0xFF624E00,0xFF624E00,0xFF624E00,0xFF624E00,0xFFEABB00,0xFFEABB00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9D7A08,0xFF9D7A08,0x00FFFFFF,
       0x00FFFFFF,0xFF9D7A08,0xFF9D7A08,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF715A00,0xFF715A00,0xFF624E00,0xFF624E00,0xFF624E00,0xFF624E00,0xFF624E00,0xFFEABB00,0xFFEABB00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9D7A08,0xFF9D7A08,0x00FFFFFF,
       0x00FFFFFF,0xFF9A7807,0xFF9A7807,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE270,0xFFFFE270,0xFFFFE787,0xFFFFE787,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFF6D1,0xFFFFF6D1,0xFFFFF9E2,0xFFFFF9E2,0xFFFFF6D1,0xFFFFF6D1,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFE787,0xFFFFE787,0xFFFFE270,0xFFFFE270,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9A7807,0xFF9A7807,0x00FFFFFF,
       0x00FFFFFF,0xFF9A7807,0xFF9A7807,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE270,0xFFFFE270,0xFFFFE787,0xFFFFE787,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFF6D1,0xFFFFF6D1,0xFFFFF9E2,0xFFFFF9E2,0xFFFFF6D1,0xFFFFF6D1,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFE787,0xFFFFE787,0xFFFFE270,0xFFFFE270,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9A7807,0xFF9A7807,0x00FFFFFF,
       0x00FFFFFF,0xFF9A7807,0xFF9A7807,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE270,0xFFFFE270,0xFFFFE787,0xFFFFE787,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFF6D1,0xFFFFF6D1,0xFFFFF9E2,0xFFFFF9E2,0xFFFFF6D1,0xFFFFF6D1,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFE787,0xFFFFE787,0xFFFFE270,0xFFFFE270,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9A7807,0xFF9A7807,0x00FFFFFF,
       0x00FFFFFF,0xFF9A978C,0xFF9A978C,0xFF987605,0xFF987605,0xFF987605,0xFF987605,0xFF987605,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987605,0xFF987605,0xFF987605,0xFF987506,0xFF987506,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF9A978C,0xFF9A978C,0x00FFFFFF,
       0x00FFFFFF,0xFF9A978C,0xFF9A978C,0xFF987605,0xFF987605,0xFF987605,0xFF987605,0xFF987605,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987605,0xFF987605,0xFF987605,0xFF987506,0xFF987506,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF9A978C,0xFF9A978C,0x00FFFFFF
      };
    
    notify_icon.Icon.LoadFromArray(32,32,icon_array32);
    
  4. Der vierte Weg ist, es als Base64 kodierte Zeichenkette zu laden. Bilder im BMP-Format können in eine Zeichenkette mit jedem online Konverter umgewandelt werden. Der Teil der Zeichenkette ohne ihren Header (in Rot) wird der Funktion übergeben:

    data:image/bmp;base64,Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAQAADDDgAAww4AAAAAAAAAAAAA...
    notify_icon.Icon.LoadFromBase64("Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAQAADDDgAAww4AAAAAAAAAAAAA////AIyXmv+Ml5r/BXaY/wV2mP8Fdpj/BXaY/wV2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wV2mP8Fdpj/BXaY/wZ1mP8GdZj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP+Ml5r/jJea/////wD///8AjJea/4yXmv8Fdpj/BXaY/wV2mP8Fdpj/BXaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BXaY/wV2mP8Fdpj/BnWY/wZ1mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/4yXmv+Ml5r/////AP///wAHeJr/B3ia/wDM//8AzP//AMz//3Di//9w4v//h+f//4fn//+t7v//re7//63u///R9v//0fb//+L5///i+f//0fb//9H2//+t7v//re7//63u//+H5///h+f//3Di//9w4v//AMz//wDM//8AzP//B3ia/wd4mv////8A////AAd4mv8HeJr/AMz//wDM//8AzP//cOL//3Di//+H5///h+f//63u//+t7v//re7//9H2///R9v//4vn//+L5///R9v//0fb//63u//+t7v//re7//4fn//+H5///cOL//3Di//8AzP//AMz//wDM//8HeJr/B3ia/////wD///8AB3ia/wd4mv8AzP//AMz//wDM//9w4v//cOL//4fn//+H5///re7//63u//+t7v//0fb//9H2///i+f//4vn//9H2///R9v//re7//63u//+t7v//h+f//4fn//9w4v//cOL//wDM//8AzP//AMz//wd4mv8HeJr/////AP///wAIep3/CHqd/wDM//8AzP//AMz//wBacf8AWnH/AE5i/wBOYv8ATmL/AE5i/wBOYv8Au+r/ALvq/wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//CHqd/wh6nf////8A////AAh6nf8Iep3/AMz//wDM//8AzP//AFpx/wBacf8ATmL/AE5i/wBOYv8ATmL/AE5i/wC76v8Au+r/AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8Iep3/CHqd/////wD///8ACXyg/wl8oP8Ayv3/AMr9/wDK/f8Qz///EM///w/J9/8Pyff/BlRn/wZUZ/8GVGf/CXaR/wl2kf8Qz///EM///xDP//8Qz///EM///xDP//8Qz///EM///xDP//8Qz///EM///wDM//8AzP//AMz//wl9oP8JfaD/////AP///wAJfKD/CXyg/wDK/f8Ayv3/AMr9/xDP//8Qz///D8n3/w/J9/8GVGf/BlRn/wZUZ/8JdpH/CXaR/xDP//8Qz///EM///xDP//8Qz///EM///xDP//8Qz///EM///xDP//8Qz///AMz//wDM//8AzP//CX2g/wl9oP////8A////AAuApP8LgKT/AMz//wDM//8AzP//J9T//yfU//8n1P//J9T//xyYt/8cmLf/HJi3/w5MXP8OTFz/JtH7/ybR+/8n1P//J9T//yfU//8n1P//J9T//yfU//8n1P//J9T//yfU//8AzP//AMz//wDM//8Kf6T/Cn+k/////wD///8AC4Ck/wuApP8AzP//AMz//wDM//8n1P//J9T//yfU//8n1P//HJi3/xyYt/8cmLf/Dkxc/w5MXP8m0fv/JtH7/yfU//8n1P//J9T//yfU//8n1P//J9T//yfU//8n1P//J9T//wDM//8AzP//AMz//wp/pP8Kf6T/////AP///wAMg6f/DIOn/wDM//8AzP//AMz//0LZ//9C2f//Qtn//0LZ//88xOb/PMTm/zzE5v8VRlL/FUZS/zm83f85vN3/Qtn//0LZ//9C2f//Qtn//0LZ//9C2f//Qtn//0LZ//9C2f//AMz//wDM//8AzP//C4On/wuDp/////8A////AAyDp/8Mg6f/AMz//wDM//8AzP//Qtn//0LZ//9C2f//Qtn//zzE5v88xOb/PMTm/xVGUv8VRlL/Obzd/zm83f9C2f//Qtn//0LZ//9C2f//Qtn//0LZ//9C2f//Qtn//0LZ//8AzP//AMz//wDM//8Lg6f/C4On/////wD///8ADIOn/wyDp/8AzP//AMz//wDM//9C2f//Qtn//0LZ//9C2f//PMTm/zzE5v88xOb/FUZS/xVGUv85vN3/Obzd/0LZ//9C2f//Qtn//0LZ//9C2f//Qtn//0LZ//9C2f//Qtn//wDM//8AzP//AMz//wuDp/8Lg6f/////AP///wANhqv/DYar/wDM//8AzP//AMz//2Df//9g3///YN///2Df//9e2vn/Xtr5/17a+f8lV2P/JVdj/0GWrP9Blqz/Xtz7/17c+/9g3v7/YN7+/2De/v9g3///YN///2Df//9g3///AMz//wDM//8AzP//DYar/w2Gq/////8A////AA2Gq/8Nhqv/AMz//wDM//8AzP//YN///2Df//9g3///YN///17a+f9e2vn/Xtr5/yVXY/8lV2P/QZas/0GWrP9e3Pv/Xtz7/2De/v9g3v7/YN7+/2Df//9g3///YN///2Df//8AzP//AMz//wDM//8Nhqv/DYar/////wD///8AD4mv/w+Jr/8AzP//AMz//wDM//+A5v//gOb//3fW7f931u3/NV9p/zVfaf81X2n/KUlR/ylJUf8qTFT/KkxU/zNbZf8zW2X/Xai6/12ouv9dqLr/gOb//4Dm//+A5v//gOb//wDM//8AzP//AMz//w+Jr/8Pia//////AP///wAPia//D4mv/wDM//8AzP//AMz//4Dm//+A5v//d9bt/3fW7f81X2n/NV9p/zVfaf8pSVH/KUlR/ypMVP8qTFT/M1tl/zNbZf9dqLr/Xai6/12ouv+A5v//gOb//4Dm//+A5v//AMz//wDM//8AzP//D4mv/w+Jr/////8A////ABCMsv8QjLL/AMz//wDM//8AzP//n+z//5/s//+d6Pv/nej7/4rN3f+Kzd3/is3d/2+lsv9vpbL/L0ZM/y9GTP+Av87/gL/O/5fg8v+X4PL/l+Dy/5/s//+f7P//n+z//5/s//8AzP//AMz//wDM//8QjLL/EIyy/////wD///8AEIyy/xCMsv8AzP//AMz//wDM//+f7P//n+z//53o+/+d6Pv/is3d/4rN3f+Kzd3/b6Wy/2+lsv8vRkz/L0ZM/4C/zv+Av87/l+Dy/5fg8v+X4PL/n+z//5/s//+f7P//n+z//wDM//8AzP//AMz//xCMsv8QjLL/////AP///wAQjLL/EIyy/wDM//8AzP//AMz//5/s//+f7P//nej7/53o+/+Kzd3/is3d/4rN3f9vpbL/b6Wy/y9GTP8vRkz/gL/O/4C/zv+X4PL/l+Dy/5fg8v+f7P//n+z//5/s//+f7P//AMz//wDM//8AzP//EIyy/xCMsv////8A////ABGOtf8RjrX/AMz//wDM//8AzP//vfL//73y//+98v//vfL//73y//+98v//vfL//7ns+f+57Pn/R1tg/0dbYP9pho3/aYaN/7Pm8v+z5vL/s+by/7Dh7f+w4e3/sOLu/7Di7v8AzP//AMz//wDM//8RjrX/EY61/////wD///8AEY61/xGOtf8AzP//AMz//wDM//+98v//vfL//73y//+98v//vfL//73y//+98v//uez5/7ns+f9HW2D/R1tg/2mGjf9pho3/s+by/7Pm8v+z5vL/sOHt/7Dh7f+w4u7/sOLu/wDM//8AzP//AMz//xGOtf8RjrX/////AP///wASkLf/EpC3/wDM//8AzP//AMz//9j3///Y9///2Pf//9j3///Y9///2Pf//9j3///Y9///2Pf//7fR2P+30dj/U19i/1NfYv9KVFf/SlRX/0pUV/9GUFP/RlBT/9j3///Y9///AMz//wDM//8AzP//EpC3/xKQt/////8A////ABKQt/8SkLf/AMz//wDM//8AzP//2Pf//9j3///Y9///2Pf//9j3///Y9///2Pf//9j3///Y9///t9HY/7fR2P9TX2L/U19i/0pUV/9KVFf/SlRX/0ZQU/9GUFP/2Pf//9j3//8AzP//AMz//wDM//8SkLf/EpC3/////wD///8AE5K5/xOSuf8AzP//AMz//wDM///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//wDM//8AzP//AMz//xOSuf8Tkrn/////AP///wATkrn/E5K5/wDM//8AzP//AMz//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//AMz//wDM//8AzP//E5K5/xOSuf////8A////ABOSuf8Tkrn/AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8Tkrn/E5K5/////wD///8AE5K5/xOSuf8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//xOSuf8Tkrn/////AP///wATkrn/E5K5/wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//E5K5/xOSuf////8A////ALO2t/+ztrf/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf+ztrf/s7a3/////wD///8As7a3/7O2t/8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/7O2t/+ztrf/////AA==");
  5. Die fünfte und letzte Methode unterstellt, Sie haben eine DLL-Datei, in der das Bild als 'resource' gespeichert ist. Die Bilder werden auf Basis ihrer 'resource number' hochgeladen. Als Beispiel verwenden wir die Datei shell32.dll von Windows, die über viele Icons verfügt.

    string str_path;
    StringInit(str_path,MAX_PATH);
    kernel32::GetSystemDirectoryW(str_path,MAX_PATH);
    
    notify_icon.Icon.LoadFromDLL(str_path+"\\shell32.dll",21);
    

Zunächst wird ein unsichtbares Icon erstellt. Mit der Methode Show() erscheint es dann.

notify_icon.Show();

Mit der Methode Hide() wird es wieder ausgeblendet.

notify_icon.Hide();


Eine Textblase

Das Icon der Textblase kann zwei Größen haben: SMALL und LARGE. Die Methoden, diese zu laden, sind dieselben wie die für Icons. Wenn Sie mit kleinen Icon (SMALL) arbeiten, dann muss die Bildgröße unbedingt der Größe des Systems entsprechen, da es sonst nicht angezeigt wird. Aus diesem Grund empfehle ich eine große Icongröße für die Blase oder einen der eingebauten Icon-Typen (NIIF_INFO, NIIF_WARNING, NIIF_ERROR).

Die Größe des hochgeladenen Bildes darf nicht kleiner sein als der von GetSystemSize() zurückgegebene Wert.

int balloon_icon_size = CNotifyIcon::GetSystemSize(ICON_LARGE);

Mit der Methode Show() wird die Textblase angezeigt.

notify_icon.Balloon.Show("my message","my title",NIIF_USER,ICON_LARGE,3000);

Der Aufruf von Hide() blendet sie aus.

notify_icon.Balloon.Hide();

Niedrige Werte der Zeitintervallen in der Methode Show() werden vom System nicht verarbeitet (der minimale Zeitabstand beträgt ca. 10 Sekunden). Um diese Einschränkung zu überwinden, müssen wir den Timer starten und die Methode Hide() aufrufen. Der Algorithmus ist in der Funktion DoTimer() implementiert.

void OnTimer()
  {
   notify_icon.DoTimer();
  }


Ein Tooltip

Ein Tooltip erscheint, wenn sich die Maus über dem Icon bewegt. Der Text eines Tooltips kann mehrere Zeilen umfassen, getrennt durch "\n".

notify_icon.ToolTip("My Indicator\nShow the ToolTip");

Nachfolgend gebe ich ein Beispiel, wie man die Bibliothek mit einem Indikator verbinden kann. Die Farbe des Symbols kennzeichnet die Werte von iSAR. Blau bedeutet eine Aufwärtsbewegung, rot bedeutet eine Abwärtsbewegung. Textblasen werden angezeigt, wenn sich die Richtung ändert.

//+------------------------------------------------------------------+
//|                                    NotifyIcon_Test_Indicator.mq5 |
//+------------------------------------------------------------------+
#property copyright "avoitenko"
#property link      "https://www.mql5.com/de/users/avoitenko"
#property version   "1.00"

#property indicator_chart_window

#property indicator_buffers 2
#property indicator_plots 1

#property indicator_type1  DRAW_COLOR_ARROW
#property indicator_color1 clrDodgerBlue,clrOrangeRed
#property indicator_width1 2
#property indicator_style1 STYLE_SOLID
#property indicator_label1 "SAR"

#define BALLOON_TITLE "Parabolic SAR Event"

#include <NotifyIcon.mqh>

//--- Eingabeparameter
input uint   InpUniqueID = 1;   // Unique ID
input double InpSarStep  = 0.02;// SAR Step
input double InpSarMax   = 0.2; // SAR Maximum

//---
double SarBuffer[];
double ColorBuffer[];

//---
int sar_handle;
datetime time_alert;
CNotifyIcon notify_icon(InpUniqueID);
//+------------------------------------------------------------------+
int OnInit()
  {
//--- get SAR handle   
   sar_handle=iSAR(NULL,0,InpSarStep,InpSarMax);
   if(sar_handle==INVALID_HANDLE)
      return(INIT_FAILED);

//--- use buffers
   SetIndexBuffer(0,SarBuffer);
   SetIndexBuffer(1,ColorBuffer,INDICATOR_COLOR_INDEX);
   ArraySetAsSeries(SarBuffer,true);
   ArraySetAsSeries(ColorBuffer,true);

//--- set arrow code
   PlotIndexSetInteger(0,PLOT_ARROW,159);

   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);

//--- set tooltip
   notify_icon.ToolTip("Indicator ID#"+IntegerToString(InpUniqueID)+"\nParabolic SAR");

//--- load 64x64 large icon
   bool res=notify_icon.Balloon.Icon_Large.LoadFromBase64("Qk02QAAAAAAAADYAAAAoAAAAQAAAAEAAAAABACAAAAAAAABAAADDDgAAww4AAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Qv///1i3zdPjZaa4/1mgsf98p7X/u8zS/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD8/P1V8fX2hNbg48dql6X/VsXZ/4Xj9P+i5vX/jtbn/16ww/9LjqH/k7K7/9rj5uP///+E////Hf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AzNjdMqi9xeMvXnL/Pp63/7H5///Y9f//0PP9/9X4///W+v//tO/8/3nG2P9Nl6v/aJmn/7rL0f/09/g7////NP///wz///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDy9fYd0d3gFrzN0o5Bb4D/DVNr/4Pa6v/Z+f//wuv4/8Hs+P/B7fj/wu75/830/v/S+///xPf//5jb7f9Qpb3/SImc/4mrtf/a4+bj////Tv///xf///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AO/z9GeNq7T/DUVb/xVqhf+x+P//0fD7/7rr+P+87Pj/vO34/73t+P++7fj/vuv5/8bv+//R+P//yfn//6Ho+P9pvNL/Oo2j/2KTof+xxczj8fT1WP///0v///8M////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTnuM/wxEXP8abIT/tfj//8zv+v+26/j/uez5/7rs+P+77Pj/vOv4/73s+f+97fn/v+35/7zs+f/B8f3/xfj//7Hw/v+E0+f/T6S5/0qLnv+HqLT/1uDjl////3H///87////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUZ3iv8JQ1z/GmyE/7P3///H7vr/suv4/7Xr+P+36vj/uOv4/7nr+f+77fn/vOz5/7/s+f+57Pj/tOr3/7br9/+67Pn/w/P+/770//+d4vP/aLzR/zuNpP9ikqD/pr3F/+7x8zX///8w////GP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FPfpH/B0Nc/xpuiP+x9v//we35/67q9/+y6ff/s+r4/7Xq9/+36/f/uez4/7rr+P+97Pn/uuz4/7Pq+P+06vf/ter3/7Pr9/+26/j/v/D9/8X4//+w8v//gdLm/0uguP87gpb/eJyn/8bT2P////9O////If///wL///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTn6R/wdGX/8ccY3/r/X//77t+f+r6ff/sOn4/7Hq+P+z6vf/tuv3/7jr+P+66/j/ve34/7vt+P+z6vj/tOr4/7Xr+P+16/j/tev4/7Tq+P+y6vf/uez5/8H1//+79v//leL0/1+4zv8yhJz/TIOT/6K4wP/q7/Fh////cf///yb///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cU18kf8HRmH/HXKP/671//+77Pj/qOj2/63o9/+w6Pj/sur4/7Xr9/+47Pj/uuz4/77t+P+97fn/suv3/7Xs9/+27Pj/tuv4/7Xr+P+16/j/tev4/7Tr+P+z6vf/s+r3/7vw/f+89v//p+7//3fM4f9Am7H/MHiM/2+Uof/H1Nnj////U////yD///8B////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FNe5H/BUVh/x9yjv+v9v//uOr4/6bn9/+r5/f/run3/7Lq+P+06vf/t+v4/7rs+P/D8///yfn//7rz//+47fn/t+r4/7fr+P+36/j/tuz4/7bs+P+16/j/tOv4/7Lq+P+v6ff/run3/7Ps+f+48///sfT//43f8/9UsMb/JXyS/0d+j/+iuL//6+/xsf///xz///8C////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTXyR/wZHYf8gdI//rfX//7Tq+f+n5/f/qef3/6zp9/+w6fj/tOr3/7fs+P+87/v/st7o/7HY4v+36vX/xf///8n///+98P7/uuv5/7rs+P+47Pj/t+z4/7br+P+06/j/sOr3/67p9/+s6ff/quj3/6rn9/+v7Pv/sfP//5zr/P9rxt3/M4+q/zB0if91maT/093h4////0////8J////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cU1/kv8GSWL/IXmR/6v1//+w6fn/oeb2/6jn9/+r6Pf/r+n4/7Pr+P+17Pf/1P///3mFh/8QDAz/Ly8w/1ZkZ/+UuL7/y////8j8//+87fn/vO35/7vt+P+57Pj/tuz4/7Pq+P+w6vf/run3/6vp9/+p6Pf/pef2/6Tn9v+n6Pf/rvH//6Tx//+C3PD/SarA/yF2jf9QgpL/p7zE4/b4+Tv///8R////Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FNfZP/Bklk/yR1kv+q9f//q+r4/57m9v+m5vb/qej2/67p9/+z6/j/tOr3/9n///+7v8H/Ew8O/yglJP8dGBf/GhUU/0dRVP+w2d//0v///7/u+f+97vn/u+35/7nt+f+26/j/suv4/7Dq9/+t6ff/qen3/6fo9/+j5vb/oOb1/57l9f+f5fb/puv8/6bz//+P5v3/X8Pa/yqIof80d4v/lrC4/+Dn6uP///9D////Bv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTX2T/wZIZP8ldZP/qvX//6fp+P+b5fb/o+b2/6no9v+u6ff/s+v4/7fs9//H9///4u/z/ygmJv8cHBz/MDAw/y4uLP8cFhb/Jycm/6TJz//U////wfD5/7/u+f+87vn/uO34/7Xs+P+y6/j/rur3/6rp9/+n6Pf/pOf3/6Hm9f+d5fb/m+X1/5jj9f+W4/X/m+b3/5/t//+U7P//b9Pq/zWas/9nkZ7/o7e/qsXT2Anw9PVM////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cU19k/8GSGT/JnaT/6n1//+i6Pf/m+T2/6Hn9v+n5/b/ren3/7Lr+P+47ff/vfD7//L///9TT0//AAAA/wwMDP8kJCT/LzEx/yEfH/8hHh//o8bO/9H////C8Pn/v/D5/7vu+P+37fj/tO34/7Dr9/+s6vf/qOn3/6Xo9/+i5/b/nub1/5vl9f+Y5PX/lOP1/5Lh9P+Q4fT/kuL1/5bo+/+V7///TK3F/4eos/+9zNIr3+fpTP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FNfZL/Bkhj/yd2kv+p9///n+j3/5bl9v+f5/b/puf2/6vp9/+y6/j/uO34/7ru+P/V+v//1uHh/7KurP94eXn/FhUV/x0dHf8wMTH/Hxoa/zI3Nf/J8vr/zPv//8Lw+f+/7vn/uu/4/7ft+P+z7Pj/r+v3/6rq9/+m6Pf/ouf3/57m9v+b5vX/l+X1/5Ti9f+R4fT/juH1/4zg9P+J3/P/jOL1/43m/P91t8j/////qv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTH2S/wVHY/8odpH/q/f//5zn9/+X5Pb/neb2/6Tn9v+p6Pb/sOr4/7ft+P+97vj/we/5/9X9///q/////f///87Pzv8mIyP/ICAg/zIyMv8WEBD/Znd5/97////E8fr/wvD5/73v+P+67vj/te34/7Hs+P+s6vf/qOn3/6Tp9v+f5/b/m+X1/5jl9f+U4/X/keL0/43h9P+L4PP/iN/z/4Xe8/+I4fj/b9Dm/+bx9Mf///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUx9k/8FR2P/KHeS/6r1//+Z5/f/lOT2/5vl9v+i5/b/qej2/7Dq+P+27Pj/vO74/8Lv+f/H8fr/yPL6/8Tz/P/9////sLGy/w8ODv8tLi7/KScm/xwaGv+52t3/1f///8bx+v/C8Pn/vvD5/7nu+f+17fn/r+z3/6rq9/+l6ff/oOj2/53m9f+X5vX/lOP1/5Di9P+M4fT/ieHz/4bf8/+D3vP/gd70/3DU7P/D6PL/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FMf5L/BEZj/yh1kf+q9///l+f3/5Lk9v+a5ff/oOf2/6jn9/+v6vj/tu34/7zu+P/D7/n/yPL6/9Hz+//I8vr/zvn///z///9IRET/Ghoa/zAxMf8WEBD/bX1//+H////K8/v/xfL6/8Lw+f+87/j/t+75/7Ps+P+t6/f/p+r3/6Po9/+e5vX/mOX1/5Tj9P+Q4vT/jOH0/4jf8/+F3/P/gN3z/37e8v9w1+//l9Xk/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTH6S/wRGY/8pdZL/q/b//5Pm9v+R4/X/mOb2/6Dn9v+n6Pb/rur3/7bt+f+87vj/wu/5/8jx+v/O9Pv/zvT7/8Xw+//2////oaOj/xAQEP8xMjL/Ix8f/y0uMP/Q9Pv/0/v//8jy+v/E8vn/wPD5/7rv+f+27fj/r+z3/6rq9/+l6ff/n+f2/5rm9f+V4/X/kOL0/4vh9P+I4PP/hN7z/4Dd8/983PL/cNjw/43V5v/+/v44////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUt/kv8DR2P/KXiS/6v1//+R5/f/kOP1/5fl9v+e5/f/p+n3/67r+P+17Pn/u+75/8Hw+f/J8vr/zvP7/9L0+//J8/r/3v///+Pp6f8lJCT/Jicn/y4uLv8RDg3/nbO0/+T////L8/r/yPP6/8Px+v++8Pr/ue75/7Pt+P+s6/f/p+n3/6Ho9v+b5vb/luX1/5Hi9P+M4fT/h9/z/4Le8/9/3fL/e9zy/23Y8f+K1uj//v7+OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FLfZL/A0dj/yl4kf+q9f//kOf3/4/j9f+X5vb/nuf3/6bp9v+t6vf/tez4/7vu+f/C8Pn/yfL6/8/0+v/T9Pv/z/T6/9L4///8////UE5P/xwcHP8xMTH/Dw0L/2t4ev/o////0fb8/8z0+v/G8/r/wfH6/7zv+f+17fj/r+z4/6nr+f+i6ff/nef2/5fl9f+S4/X/jOL1/4fg9P+D3vT/fd3z/3nb8v9s1/D/i9bo//7+/jj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xS3yS/wNGY/8qd5L/q/f//4zl9/+N5PX/leX1/53n9/+l6fb/rev3/7Tt+P+77vj/wfD5/8ny+v/P9Pv/1fX8/9L1+//Q9v3/+P///46Mjf8UFBT/MDEx/xwbGv84PD3/4////9f8///P9fv/yvT7/8Xz+/+/8fr/uO/5/7Lu+f+r7Pj/per3/5/o9/+Y5vb/k+X1/43j9f+H4fT/gt/z/37e8/953PP/adjy/4nX6P/+/v44////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp8kv8CRmL/KneS/6z3//+L5ff/jOT1/5Xm9v+d5/b/pOn3/63r+P+07fn/uu75/8Lw+v/I8/r/zvX7/9b2/P/X9vz/zvb8//P///+6ubn/FxcX/y8vL/8mJCT/Gxka/8fh5P/j////0/f8/871/P/J9Pz/w/L7/7zx+f+17/n/r+35/6jq+P+h6ff/muf2/5Tl9f+O4vX/iOD0/4Le9P993vP/d9zz/2jY8f+H1uj//v7+OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKfJH/AUdi/yp2kv+t9///iub3/4vk9f+V5vb/nOf2/6To9/+s6/j/s+35/7vu+f/C8Pn/yfL6/8/1+//W9fz/2vf8/9P2/P/n////3eHh/ywrK/8nKCj/LS0t/xMPD/+luLv/7f///9X2/P/S9fz/zPX8/8bz+//A8fr/uPD5/7Lu+f+q6/j/o+n3/5vn9v+V5fX/j+L1/4jg9P+D3vT/fd3z/3fb8/9n1/H/htbo/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSn6R/wFGYP8rd5D/rPf//4rl9/+L4/X/k+b1/5zn9v+l6Pb/rOv3/7Tu+P+77/j/wvH5/8nz+v/P9fv/1vf8/934/f/Z9/z/3fv///n///8/PT3/ISEh/zAyMv8KBwf/e4iJ//X////Z+Pz/1fb8/9D2+//J9Pv/xPL6/7zx+v+07/n/rO34/6Xq+P+e5/f/luX1/5Dk9f+J4fT/gt7z/3vd8/922/L/Zdfx/4XV5v////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp7kf8BRGH/K3WR/634//+I5vf/h+P1/5Ll9f+c6Pb/puj2/63r+P+z7fn/u+/5/8Hw+f/J8/r/0fX8/9f3/P/e+P3/3vn9/9n5/f//////bGlp/xwcHP8xMjL/FhQS/1JYWf/t////3/r+/9j4/P/T+Pz/zfb7/8bz+/+/8vr/t+/5/6/s+P+o6vf/n+j3/5jm9v+Q5fX/iuP0/4Pg8/973fP/dNzy/2TX8P+E0+T/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKe5H/AURh/yx3kf+u+P//iOf3/4rk9f+U5fX/nej2/6Xp9/+t6/j/tO35/7zv+f/C8fn/yvP6/9H1/P/Y9/z/3/n9/+P6/f/c+v3//P///52gn/8WFhb/MDAw/yEhIf8sLi//5v3+/+b////b+P3/1vj8/9D2/P/K9Pv/wvP7/7vw+f+y7fj/quv3/6Hp9/+a5/b/k+X1/4vi9P+D4PP/fN7z/3Tb8v9j1/L/gtDi/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSnyS/wFGYv8rdpL/r/j//4rn9/+L5PX/leb2/57o9v+m6vf/ruv4/7Xu+f+88Pn/w/H6/8vz+v/S9vv/2fj8/+D5/f/o+/7/5f////X////Exsf/FhQU/y0tLf8pKSn/FxUV/8bb3f/t////3vr9/9n4/f/U9vz/zPX7/8Tz+/+98Pn/tO74/6zs+P+k6vf/nOj2/5Tl9v+L4/P/g+Dz/3ve8v9z2/L/Ytfz/4HR4v////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp+kf8BRmL/LXiS/7H4//+K5/f/juT2/5bm9v+f5/b/p+r3/6/s+P+17vn/vfD5/8Ty+v/M9Pr/0/b7/9r4/P/h+/7/4/j6/+D29///////8vb1/zIyMv8mJib/LS0t/xMREf+bqav/9f///+D7/f/b+f3/1ff8/871+//H9Pv/v/L6/7bw+f+u7Pf/per3/5zn9v+U5Pb/jOH0/4Lg8/963vL/ctzx/2DX8v+B0eP/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKe5L/AUVj/y14k/+x+P//i+f3/47k9v+W5vb/n+j2/6jq9/+v7Pj/te75/73v+f/E8vr/zPT6/9P2+//a+Pz/6v///97n6P8xMTL/eYOE/93l5v9WV1f/IiIi/y8vL/8RDw//c3x9//j////j/P7/3fn9/9f3/P/Q9fv/yfT7/8Hy+v+48Pn/r+33/6bq9/+e6Pb/leX2/4zj9f+C4PP/et7y/3Hc8f9g1/H/gtLk/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSn6S/wFGYv8teZP/svj//4vn9/+O5fb/mOb2/6Do9v+o6ff/sOv4/7fu+f+97/n/xPL6/8z0+//T9fr/2fj8/+b////7/v7/Kykp/woIB/8sLCz/MjMz/y4uLv8wMDD/GhkZ/05TVP/s////5f3//975/f/Z+Pz/0/b7/8v1+//D8/r/u/D5/7Pt+f+p6vf/oOn2/5fl9v+N5PT/g+Hz/3re8/9x3PL/X9fy/4PU5f////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp8kv8BR2P/LXqT/7H4//+K5/j/jeX2/5fm9v+f6Pb/qOr3/6/s+P+27/n/vPD5/8Px+v/L8/v/0vX7/9n3/P/j+////P///01MTP8dHR3/Kysr/ysrK/8uLi7/Li4u/ycnJv8uLzD/4fr9//n////p////3Pn9/9T3+//N9fr/xfP6/73w+f+17vn/q+z3/6Lp9v+Z5fb/j+P1/4Tg9P973vP/ct3y/1/X8f+D1uf/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKfJL/AUdi/y15k/+x+P//iuf4/4zl9v+W5vb/n+f2/6fp9/+u7Pj/tu/5/7vw+f/D8fr/yvP7/9H1+//Z9/z/4fv+//////9XVlb/AAAA/xgYGP8nJyf/Li4u/y4uLv8tLS7/IyMj/0RHR/+ToaP/0uvs/+/////k////z/X7/8fz+v++8fn/tu74/6zs+P+j6ff/mub3/4/j9f+F4fX/fN/z/3Ld8v9f1/H/g9bn/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSnyT/wFGZP8teZb/sfj//4nm9/+M5Pb/lub2/57n9v+m6ff/ruv4/7Xt+f+67/n/wPH6/8nz+v/Q9Pv/1/f7/935/P/x////5+fn/4WEhP8yMjL/DQ0N/yEhIf8vLy//Li4u/y4uLv8kIyP/GhcX/ysqK/9dZWf/qcHE/9j+///I8/v/v/H5/7fu+f+u7Pn/pen3/5vn9v+Q5PX/huH0/3ze9P9y3PL/X9jx/4TW5/////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp9kf8BSGf/LX2Y/7H3//+I5vf/i+T1/5Pm9v+c5/b/pOn2/6zq9/+z7fn/ue/5/7/w+f/H8/r/zvT7/9X3+//d+Pz/4Pn8//X//////////////7y8vP8zMzP/JCQk/y4uLv8uLi7/LC4u/y8vL/8pKCj/ExEP/xUSE//Q9Pn/zvj//8Dw+f+47vn/ruz4/6Xp9/+b5/b/kOP1/4Xh9P973vT/dNzy/1/Y8f+E1uj/////Qv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKfpX/AUlo/y1+mf+w+f//h+b3/4jk9f+R5vb/mef3/6Ho9v+q6/f/sez4/7bu+f+97/n/w/H6/8vz+v/T9vv/2/f8/+D4/P/l+v3/5/v9//b/////////dnl5/xYUFP8wMDD/LS0t/yUlJf8PDw//HRwc/yMiIv8hIB//vNvg/9P9///B8fr/ue/4/6/s+P+l6ff/m+b2/4/j9f+F4vT/e9/0/3Hc8v9e2PD/gNXo/////3L///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSn+W/wFLav8tf5n/sPf//4Pm9/+F4/X/j+X2/5fm9v+e5/f/p+r2/6/s+P+07fj/u+/5/8Lx+f/I8/r/0PX7/9f2/P/e9/z/4/r9/+j7/f/r/P7//////5+io/8WFRX/Ly8v/ykpKf8oKSn/bm9u/yYmJv8CAAD/AAAA/6S+w//Y////wvH6/7ru+f+w6/j/pur3/5rn9v+P5PT/hOH0/3ne8/9w3PP/Xdfw/3zV5/////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp/lP8BTW3/LYGc/6/3//9/5vf/g+P1/4zl9f+T5vb/nOj2/6Tq9/+s7Pf/s+z4/7jv+f+/8Pn/xvP6/830+//V9fz/2/f8/+H5/P/n+v3/6/v9///////U1tX/FhYW/ysrK/8pKSn/FBQU/9Le3//9////nqGh/zY0M/+Jn6P/2f///8Lv+f+67/n/sOz4/6Xp9/+Z5vb/j+P1/4Th8/953vP/b9zy/1vX8P971ef/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKgZb/AVBx/y2Dnv+u9///fOX2/4Dj9f+K5PX/keX2/5jn9/+g6ff/p+v3/7Dr9/+27fn/vO/5/8Px+v/K8/v/0vX7/9j2+//f+Pz/5Pr9/+n7/f/1////9/n6/zc3N/8jIyP/Ly8v/xMREf99jZD/9f////b////r////zu/0/833/f/C8fn/uu75/6/r+P+j6fb/meb2/43j9f+D4fT/eN7z/23c8/9a1/H/e9Xn/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSoKX/wFSdf8thaP/rff//3rl9v984vX/heT2/43l9f+T5vb/m+j3/6Tq9/+r6/f/s+z4/7rt+f/A8Pn/x/L7/870+//V9fv/3Pf8/+L5/f/n+v3/6/3+//////9vbW3/ERER/zI0NP8YFBT/Ulla/+7////Q9fz/1fj//9X5/f/J8vr/wfD6/7ju+P+t6/j/oun3/5fm9v+L4/b/gOD0/3be8/9s3PP/Wdfw/3vU6f////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUqCmf8BVHr/Loim/6z3//925Pb/eeL1/4Hj9v+I5PX/j+b1/5fm9v+f6ff/pur3/67r9/+27fj/ve/5/8Tx+v/L8/r/0vT7/9j3+//e+Pz/5Pn9/+b6/f//////u729/w8PD/8uLi7/JCIi/yosLf/P7fD/2////9D0+//P9Pr/yPL6/7/w+v+27fj/q+r4/6Do9/+V5vb/ieT1/3/h8/903vP/advy/1fX8P961Oj/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FLhZz/AVh+/y6Kqv+r+P//ceT2/3Xh9P9+4vX/hOT2/4zl9v+S5vb/mej2/6Dp9/+p6vf/sOz4/7ju+f+/8Pr/x/L6/83z+v/U9Pv/2/f8/+H4/P/l+f3/8v////3+/v86Ojr/HR0d/y8uLv8UEA7/lquv/+X////O9Pv/zPP6/8bx+v+88Pn/s+z4/6jr9/+e6Pf/kub2/4fj9f984PP/cd3z/2bb8v9V1/H/edTp/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xT4mg/wBagf8uj67/rPf//23j9v9x4PT/eeL0/4Hj9f+H5fX/juX1/5Xm9v+c6Pb/o+r3/6rr9/+y7fn/u+/5/8Lw+f/K8vr/0fP7/9f2+//d9/z/4/n8/+X5/f//////l5aV/woKCv8wMDD/Hxsb/z5ERf/a////1Pr//8jw+v/C8fr/uu75/7Dt+P+m6vf/nOj2/5Dl9f+E4vT/ed/z/2/c8v9l2/L/UNbw/3vV6f////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cV2Uq/8CYIf/KImq/674//9q4fb/bOD0/3bi9P984/X/guT1/4nl9v+Q5vX/l+j2/57p9v+k6vf/rOz4/7Tu+f+97/n/xfH5/83z+v/U9fv/2vb7/+D4/P/k+fz/8/////f5+v8zMTL/HR0d/zAwMP8VERH/gJWY/+X////K+P//ve75/7bt+P+u7Pj/o+n3/5jn9v+N5fX/guL0/3ff8/9t3fL/Y9vy/1HW8f941en/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP7+/nFpnLH/EGuQ/xd4nv+v9v7/cuT3/2Xf9P9w4fX/d+P0/37j9f+E5PX/i+X2/5Hm9v+X6Pb/n+n3/6bq+P+u7fn/tu75/77v+f/G8vr/zvP6/9T1+//b9vz/4fj8/+P5/f//////u7u6/w0NDf8pKSr/Kiop/x8cG/+En6L/z////83///++/v//qev4/6Dp9/+V5/b/iuP2/3/i9P903/T/atzz/2DZ8v9N1PH/ddXo/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD9/v5xfKm7/yZ7nv8Jc53/kuPw/5Hu/f9a3PP/bOD0/3Lh9P944vT/f+P0/4Tl9f+L5fX/kub2/5no9/+f6ff/qOr4/6/t+P+27fj/v/D6/8fy+v/O8/r/1fX7/9v2/P/g+Pz/5/3///////90dHT/BgYG/y8vL/8qKSj/GxcX/0lTV/93lZr/jby//6vz//+c6Pj/keX1/4fj9f984PP/cd3z/2fb8v9c2fH/SdXw/3bW6f////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////VavH0v87iKb/C3Ca/1Gwy/+6////YN70/2Pg9P9t4PT/c+H0/3rj9P+A5PX/huT1/4zm9v+T6Pf/men3/6Hq9/+o6/j/sO34/7jv+f/A8fr/yPL6/8/0+//V9vv/2/f8/+D4/P/w/////////0pKSv8DAgL/Kysr/y4uLv8mIiH/EQgH/yEgI/+f5fT/nO/+/4zl9f+C4/X/d+Dz/23e8/9k2/L/Wdnx/0fW8P931un/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///znO3eT/Vpew/yyEpv8NeaL/oOfz/5/z/v9V3PH/Y+D0/2/h9P904vX/e+P1/4Hj9f+G5Pb/jeb2/5Po9v+Z6ff/oer4/6js+P+w7fn/uPD5/7/x+v/H8vr/zvT6/9T1+//Z9vz/2/f8//P////6////WlhY/wICAv8dHR3/Li4u/y0uLv8WDg7/fbjE/5v2//+H5PX/fuL1/3Pf9P9p3PL/YNry/1bY8f9F1u//d9fq/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A9/n6qninvP9Fkq7/EnWe/yaRtf+9+v//nvP+/13e8v9c3fT/aeH0/3Pi9P974/X/geT2/4fl9v+O5/b/k+j2/5rp9v+i6vj/qez5/7Du+f+37/n/v/H6/8by+v/N9Pv/0/b7/9j2/P/Y9/z/8P////////+NjY3/FBMT/wIAAP8VFhb/DAMB/0lrcf+X+///geT2/3jh9f9u3vT/ZNzz/1za8v9R2PH/Qtbw/3fX6v////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///1W809z/VJSt/zWJq/8DbZv/Lpe2/7Xw+//J////nvH+/3rn9/9q4PP/ad/0/3bj9f9/5Pb/huX2/43o9v+U6Pb/m+n3/6Lr+P+p7fj/r+75/7fv+v++8Pr/xfL6/8v1+//Q9fv/1PX8/9b3+//i/P///////9bd3f93eHj/KiMi/wwDAP8hLS7/huj6/3zl+/9x3/T/aN7z/1/b8/9W2fL/Tdfx/z/V8P941+v/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/f7+qoiwv/9CiKX/IHqh/wBmk/8PeKL/YrXM/6nl7//N+f//yv///672/v+J6fj/duP2/3bi9f9+5vb/i+f2/5Ho9v+a6vf/oez4/6fs+P+u7vn/te/5/7vx+f/C8vr/yPP6/8z0+//R9fv/0/b7/9X3/P/i////1P///9D5+f+51dr/hcXP/3jh9P9z4fX/at7z/2Lc8v9Z2vL/Udjx/0jW8P881O//edvs/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///x38/f2qlrjH/0KFof8PapH/AF+I/wBchv8BZ5D/JIOl/2qyx/+r4Oz/2f///9j///+6+f//me35/4Lm9v+A5fb/ieX3/5fq+P+e6/j/p+z5/63t+f+z7/n/ufD6/77x+v/C8vr/x/P6/8z1+v/O9Pv/0/X7/7jv+/+G6/7/i/L//4Tw//9y4fX/a9/z/2Pd8/9a2/L/U9nx/0zX8P9E1fD/OtTw/3vc7f////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Hf///47h6+7jkLXE/0iIof8bbYz/Al6D/wBZg/8AV3//AWSL/yN+oP9qs8j/rNvm/93////j////yfz//6fw+/+O6fj/jej4/5Xr+P+i7Pj/qu74/6/v+f+18Pn/uvD6/7/x+v/D8vr/xfP7/8jz+//S9/v/qe35/2nf8v9q3/T/at/0/2Pe8/9c3fP/VNry/03Y8f9H1/D/PtXw/zfU7/9+3O3/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Hfz9/Y74+vuq0ODl/5i5yP9Lhp7/G2mI/wBZff8AVHv/AFN5/wBehP8jeZr/YavB/6vZ4//f////7P///9T+//+y8vv/muv5/5Xp+f+f7fn/qu/5/7Hv+f+28Pr/ufD6/7rx+v+/8vr/wvL6/832+/+e6vf/Xdzz/17d8/9a3PP/U9vy/03Z8f9H1/H/Qdbx/znU8P810+//f9zt/////17///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///zn+/v6O9fj5qtvm6uOdu8n/SIOb/xhmhf8BVnj/AFF2/wBTef8AWIL/Inqc/16kvf+t2eT/4Pv9//L////b////ufT//6Pt+f+c6/n/pu75/67v+f+y8Pr/tvD6/7fx+v+68fr/x/P6/47n9v9L2vL/Tdry/0zZ8f9H2fH/Qtbx/z3V8f8y0/D/NNPv/4Pd7v////9L////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8d////cvf5+qrj7O/joL3J/0eCmf8YZIT/BVl7/wBSd/8AVnv/AFuC/yN8nP9cobj/qNnk/933+f/t////3P///7v0//+p8Pr/ouz6/6fu+v+s7/n/sO/6/7Lw+v+98vr/gub2/0LY8v9A2PH/Qdfw/zzV8P831PD/L9Lw/zXT8P+I3+7/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Hf///3L+/v6q7vP1x63G0f9VjaD/IGqG/wdZfP8AWHr/AFh9/wReg/8ie5r/WaC2/5vQ3v/W9vr/5v///9v///+/9///qPH6/6Hs+f+g7vn/qe/6/7Tx+f+A5fb/O9fx/zXW8P841fD/NdXw/y7T8P841PD/jODv/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9y/v7+qufu8ce4zdb/V42h/yNrh/8LXn//AVl7/wBXff8JYYb/G3KT/1Sguf+Px9j/zfb6/+P////b////wPn//6fw+v+d7fj/o+34/33m9v832vL/LdXx/zbV8P8t1O//Qdjw/4zf7v////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cv7+/qrq8PPHtMzT/2iYqv8haIf/B1p9/wNafv8AV3z/B2CF/xhvkv9GmrP/h8PU/8Px+P/d////1////775//+v8fr/g+j3/zbZ8P8i1PD/KNXx/2Pf8/+w6fT/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///z/+/v5x9vn6hNDe5P99p7f/KG2J/whae/8BV3r/AVp8/wBdgv8ScJP/N46s/3y/0f+16vL/2P///97///+2+f//Zub3/2bo+v9z3u7/9fz9x////xD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8s////Xvr7/Jfc5+vjlLXE/zp6lP8YZYP/B1p9/wNZf/8CWYD/DWuQ/y6Fpf9yvc//r9/p/7zy+v+c4e3/6fj84////zL///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////E////279/f5Y7vP1WMTW3v+ErL3/U42k/0CDnP8yepf/KHGR/yNwkP9jnLD//P39Zf///xb///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA==");
   if(!res)
      Print("Error: ",notify_icon.GetLastError());

//--- show icon
   notify_icon.Show();

//--- run timer
   EventSetMillisecondTimer(500);

//--- done
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnTimer()
  {
   notify_icon.DoTimer();
  }
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   ArraySetAsSeries(close,true);
   ArraySetAsSeries(time,true);

//--- few bars for calculation
   if(rates_total<50)
      return (0);

   int limit;
   if(prev_calculated==0)
     {
      //--- first calc
      limit=rates_total-2;
      ArrayInitialize(SarBuffer,EMPTY_VALUE);
      time_alert=time[0];
      notify_icon.Balloon.Show("SAR started on "+_Symbol+" "+TimeframeToString()+".",BALLOON_TITLE,NIIF_USER,ICON_LARGE,2500);
     }
   else
     {
      //--- regular calc
      limit=rates_total-prev_calculated;
     }

//--- get SAR values
   if(CopyBuffer(sar_handle,0,0,limit+1,SarBuffer)!=limit+1)
      return(0);

//--- main cycle
   for(int i=limit; i>=0 && !_StopFlag; i--)
     {
      if(close[i]>SarBuffer[i])
         ColorBuffer[i]=0;
      else
         ColorBuffer[i]=1;
     }

//--- set icon
   if(SarBuffer[0]<close[0])
     {
      if(notify_icon.Tag()!=1)
        {
         notify_icon.Tag(1);
         notify_icon.Icon.LoadFromBase64("Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAQAAASCwAAEgsAAAAAAAAAAAAA////AKCak/+gmpP/nl0U/55dFP+eXRT/nl0U/55dFP+eXhX/nl4V/55eFf+eXhX/nl4V/55eFf+eXhX/nl4V/55eFf+eXhX/nl4V/55dFP+eXRT/nl0U/55fFf+eXxX/nl4V/55eFf+eXhX/nl4V/55eFf+gmpP/oJqT/////wD///8AoJqT/6Cak/+eXRT/nl0U/55dFP+eXRT/nl0U/55eFf+eXhX/nl4V/55eFf+eXhX/nl4V/55eFf+eXhX/nl4V/55eFf+eXhX/nl0U/55dFP+eXRT/nl8V/55fFf+eXhX/nl4V/55eFf+eXhX/nl4V/6Cak/+gmpP/////AP///wCgXxb/oF8W//+HD///hw///4cP///Dh///w4f//8eO///Hjv//2bL//9my///Zsv//6dT//+nU///y5P//8uT//+nU///p1P//2bL//9my///Zsv//x47//8eO///Dh///w4f//4cP//+HD///hw//oF8W/6BfFv8AAAAD////AKBfFv+gXxb//4cP//+HD///hw///8OH///Dh///x47//8eO///Zsv//2bL//9my///p1P//6dT///Lk///y5P//6dT//+nU///Zsv//2bL//9my///Hjv//x47//8OH///Dh///hw///4cP//+HD/+gXxb/oF8W/wAAAAL///8AoF8W/6BfFv//hw///4cP//+HD///w4f//8OH///Hjv//x47//9my///Zsv//2bL//+nU///p1P//8uT///Lk///p1P//6dT//9my///Zsv//2bL//8eO///Hjv//w4f//8OH//+HD///hw///4cP/6BfFv+gXxb/AAAAAv///wCjYhf/o2IX//+HD///hw///4cP/w9XZf8PV2X/AE5i/wBOYv8ATmL/AE5i/wBOYv//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//4cP//+HD///hw//o2IX/6NiF/8AAAAC////AKNiF/+jYhf//4cP//+HD///hw//D1dl/w9XZf8ATmL/AE5i/wBOYv8ATmL/AE5i//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//hw///4cP//+HD/+jYhf/o2IX/wAAAAL///8ApmQX/6ZkF//9hg///YYP//2GD///p03//6dN//+nTf//p03/B1Rm/wdUZv8HVGb//4cP//+HD///p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+HD///hw///4cP/6ZjF/+mYxf/AAAAAv///wCmZBf/pmQX//2GD//9hg///YYP//+nTf//p03//6dN//+nTf8HVGb/B1Rm/wdUZv//hw///4cP//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//4cP//+HD///hw//pmMX/6ZjF/8AAAAC////AKlmGf+pZhn//4cP//+HD///hw///6dN//+nTf//p03//6dN//+HD///hw///4cP/w5MXP8OTFz/+5Yz//uWM///p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//hw///4cP//+HD/+pZhj/qWYY/wAAAAL///8AqWYZ/6lmGf//hw///4cP//+HD///p03//6dN//+nTf//p03//4cP//+HD///hw//Dkxc/w5MXP/7ljP/+5Yz//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+HD///hw///4cP/6lmGP+pZhj/AAAAAv///wCsaBr/rGga//+HD///hw///4cP//+0af//tGn//7Rp//+0af//p03//6dN//+nTf8VRlL/FUZS//+nTf//p03//7Rp//+0af//tGn//7Rp//+0af//tGn//7Rp//+0af//tGn//4cP//+HD///hw//rGcZ/6xnGf8AAAAC////AKxoGv+saBr//4cP//+HD///hw///7Rp//+0af//tGn//7Rp//+nTf//p03//6dN/xVGUv8VRlL//6dN//+nTf//tGn//7Rp//+0af//tGn//7Rp//+0af//tGn//7Rp//+0af//hw///4cP//+HD/+sZxn/rGcZ/wAAAAL///8ArGga/6xoGv//hw///4cP//+HD///tGn//7Rp//+0af//tGn//6dN//+nTf//p03/FUZS/xVGUv//p03//6dN//+0af//tGn//7Rp//+0af//tGn//7Rp//+0af//tGn//7Rp//+HD///hw///4cP/6xnGf+sZxn/AAAAAv///wCwaxv/sGsb//+HD///hw///4cP//+0af//tGn//7Rp//+0af/5sGf/+bBn//mwZ/8mV2L/Jldi/7F/TP+xf0z//8OH///Dh///w4f//8OH///Dh///w4f//8OH///Dh///w4f//4cP//+HD///hw//sGsb/7BrG/8AAAAC////ALBrG/+waxv//4cP//+HD///hw///7Rp//+0af//tGn//7Rp//mwZ//5sGf/+bBn/yZXYv8mV2L/sX9M/7F/TP//w4f//8OH///Dh///w4f//8OH///Dh///w4f//8OH///Dh///hw///4cP//+HD/+waxv/sGsb/wAAAAL///8AtG4d/7RuHf//hw///4cP//+HD///w4f//8OH/+62f//utn//QF5i/0BeYv9AXmL/KUlR/ylJUf8qTFT/KkxU/zhbYv84W2L/vpJn/76SZ/++kmf//8OH///Dh///w4f//8OH//+HD///hw///4cP/7RuHf+0bh3/AAAAAv///wC0bh3/tG4d//+HD///hw///4cP///Dh///w4f/7rZ//+62f/9AXmL/QF5i/0BeYv8pSVH/KUlR/ypMVP8qTFT/OFti/zhbYv++kmf/vpJn/76SZ///w4f//8OH///Dh///w4f//4cP//+HD///hw//tG4d/7RuHf8AAAAC////ALdwHv+3cB7//4cP//+HD///hw///9Kl///Spf/7z6P/+8+j/9+3kf/ft5H/37eR/7eXd/+3l3f/L0ZM/y9GTP/Rq4f/0auH//PInf/zyJ3/88id///Spf//0qX//9Kl///Spf//hw///4cP//+HD/+3cB7/t3Ae/wAAAAL///8At3Ae/7dwHv//hw///4cP//+HD///0qX//9Kl//vPo//7z6P/37eR/9+3kf/ft5H/t5d3/7eXd/8vRkz/L0ZM/9Grh//Rq4f/88id//PInf/zyJ3//9Kl///Spf//0qX//9Kl//+HD///hw///4cP/7dwHv+3cB7/AAAAAv///wC3cB7/t3Ae//+HD///hw///4cP///Spf//0qX/+8+j//vPo//ft5H/37eR/9+3kf+3l3f/t5d3/y9GTP8vRkz/0auH/9Grh//zyJ3/88id//PInf//0qX//9Kl///Spf//0qX//4cP//+HD///hw//t3Ae/7dwHv8AAAAC////ALlxH/+5cR///4cP//+HD///hw///+DB///gwf//4MH//+DB///gwf//4MH//+DB//nbvf/5273/Sltf/0pbX/+Ug3L/lINy//PVt//z1bf/89W3/+7Rtf/u0bX/79G1/+/Rtf//hw///4cP//+HD/+5cR//uXEf/wAAAAL///8AuXEf/7lxH///hw///4cP//+HD///4MH//+DB///gwf//4MH//+DB///gwf//4MH/+du9//nbvf9KW1//Sltf/5SDcv+Ug3L/89W3//PVt//z1bf/7tG1/+7Rtf/v0bX/79G1//+HD///hw///4cP/7lxH/+5cR//AAAAAv///wC7ciD/u3Ig//+HD///hw///4cP///t2v//7dr//+3a///t2v//7dr//+3a///t2v//7dr//+3a/9rKu//ayrv/V2Bh/1dgYf9KVFf/SlRX/0pUV/9GUFP/RlBT///t2v//7dr//4cP//+HD///hw//u3Ig/7tyIP8AAAAC////ALtyIP+7ciD//4cP//+HD///hw///+3a///t2v//7dr//+3a///t2v//7dr//+3a///t2v//7dr/2sq7/9rKu/9XYGH/V2Bh/0pUV/9KVFf/SlRX/0ZQU/9GUFP//+3a///t2v//hw///4cP//+HD/+7ciD/u3Ig/wAAAAL///8AvXQh/710If//hw///4cP//+HD///9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw//+HD///hw///4cP/710If+9dCH/AAAAAv///wC9dCH/vXQh//+HD///hw///4cP///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D//4cP//+HD///hw//vXQh/710If////8A////AL10If+9dCH//4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD/+9dCH/vXQh/////wD///8AvXQh/710If//hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP/710If+9dCH/////AP///wC9dCH/vXQh//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw//vXQh/710If////8A////ALu5t/+7ubf/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+7ubf/u7m3/////wD///8Au7m3/7u5t/+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/7u5t/+7ubf/////AA==");
        }
     }
   else
     {
      if(notify_icon.Tag()!=-1)
        {
         notify_icon.Tag(-1);
         notify_icon.Icon.LoadFromBase64("Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAQAAASCwAAEgsAAAAAAAAAAAAA////AIyXmv+Ml5r/BSWY/wUlmP8FJZj/BSWY/wUlmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wUlmP8FJZj/BSWY/wYlmP8GJZj/BiaY/wYmmP8GJpj/BiaY/wYmmP+Ml5r/jJea/////wD///8AjJea/4yXmv8FJZj/BSWY/wUlmP8FJZj/BSWY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BSWY/wUlmP8FJZj/BiWY/wYlmP8GJpj/BiaY/wYmmP8GJpj/BiaY/4yXmv+Ml5r/////AP///wAHJ5r/Byea/wBA//8AQP//AED//4el//+Hpf//h6X//4el//+twf//rcH//63B///R3f//0d3//+Lx///i8f//0d3//9Hd//+twf//rcH//63B//+Hpf//h6X//4el//+Hpf//AED//wBA//8AQP//Byea/wcnmv8AAAAD////AAcnmv8HJ5r/AED//wBA//8AQP//h6X//4el//+Hpf//h6X//63B//+twf//rcH//9Hd///R3f//4vH//+Lx///R3f//0d3//63B//+twf//rcH//4el//+Hpf//h6X//4el//8AQP//AED//wBA//8HJ5r/Byea/wAAAAL///8AByea/wcnmv8AQP//AED//wBA//+Hpf//h6X//4el//+Hpf//rcH//63B//+twf//0d3//9Hd///i8f//4vH//9Hd///R3f//rcH//63B//+twf//h6X//4el//+Hpf//h6X//wBA//8AQP//AED//wcnmv8HJ5r/AAAAAv///wAIKJ3/CCid/wBA//8AQP//AED//wBUcf8AVHH/AE5i/wBOYv8ATmL/AE5i/wBOYv9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/AED//wBA//8AQP//CCid/wgonf8AAAAC////AAgonf8IKJ3/AED//wBA//8AQP//AFRx/wBUcf8ATmL/AE5i/wBOYv8ATmL/AE5i/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f8AQP//AED//wBA//8IKJ3/CCid/wAAAAL///8ACSmg/wkpoP8AP/3/AD/9/wA//f9ehfn/XoX5/16F+f9ehfn/BlRn/wZUZ/8GVGf/D0n3/w9J9/9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/wBA//8AQP//AED//wkqoP8JKqD/AAAAAv///wAJKaD/CSmg/wA//f8AP/3/AD/9/16F+f9ehfn/XoX5/16F+f8GVGf/BlRn/wZUZ/8PSff/D0n3/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/AED//wBA//8AQP//CSqg/wkqoP8AAAAC////AAsspP8LLKT/AED//wBA//8AQP//XoX5/16F+f9ehfn/XoX5/w9J9/8PSff/D0n3/w5MXP8OTFz/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f8AQP//AED//wBA//8KKqT/Ciqk/wAAAAL///8ACyyk/wsspP8AQP//AED//wBA//9ehfn/XoX5/16F+f9ehfn/D0n3/w9J9/8PSff/Dkxc/w5MXP9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/wBA//8AQP//AED//woqpP8KKqT/AAAAAv///wAMLqf/DC6n/wBA//8AQP//AED//16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f8VRlL/FUZS/16F+f9ehfn/gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//AED//wBA//8AQP//Cy2n/wstp/8AAAAC////AAwup/8MLqf/AED//wBA//8AQP//XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/xVGUv8VRlL/XoX5/16F+f+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//4Cg//8AQP//AED//wBA//8LLaf/Cy2n/wAAAAL///8ADC6n/wwup/8AQP//AED//wBA//9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/FUZS/xVGUv9ehfn/XoX5/4Cg//+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//wBA//8AQP//AED//wstp/8LLaf/AAAAAv///wANL6v/DS+r/wBA//8AQP//AED//5+3//+ft///n7f//5+3//+ft///n7f//5+3//8lV2P/JVdj/0FbrP9BW6z/n7f//5+3//+ft///n7f//5+3//+ft///n7f//5+3//+ft///AED//wBA//8AQP//DS+r/w0vq/8AAAAC////AA0vq/8NL6v/AED//wBA//8AQP//n7f//5+3//+ft///n7f//5+3//+ft///n7f//yVXY/8lV2P/QVus/0FbrP+ft///n7f//5+3//+ft///n7f//5+3//+ft///n7f//5+3//8AQP//AED//wBA//8NL6v/DS+r/wAAAAL///8ADzGv/w8xr/8AQP//AED//wBA//+AoP//gKD//3eV7f93le3/NVtp/zVbaf81W2n/KUlR/ylJUf8qTFT/KkxU/zNZZf8zWWX/XXW6/111uv9ddbr/gKD//5+3//+ft///n7f//wBA//8AQP//AED//w8xr/8PMa//AAAAAv///wAPMa//DzGv/wBA//8AQP//AED//4Cg//+AoP//d5Xt/3eV7f81W2n/NVtp/zVbaf8pSVH/KUlR/ypMVP8qTFT/M1ll/zNZZf9ddbr/XXW6/111uv+ft///n7f//5+3//+ft///AED//wBA//8AQP//DzGv/w8xr/8AAAAC////ABAzsv8QM7L/AED//wBA//8AQP//n7f//5+3//+dtPv/nbT7/4qf3f+Kn93/ip/d/2+Asv9vgLL/L0ZM/y9GTP+AlM7/gJTO/5eu8v+XrvL/l67y/5+3//+ft///n7f//5+3//8AQP//AED//wBA//8QM7L/EDOy/wAAAAL///8AEDOy/xAzsv8AQP//AED//wBA//+ft///n7f//520+/+dtPv/ip/d/4qf3f+Kn93/b4Cy/2+Asv8vRkz/L0ZM/4CUzv+AlM7/l67y/5eu8v+XrvL/n7f//5+3//+ft///n7f//wBA//8AQP//AED//xAzsv8QM7L/AAAAAv///wAQM7L/EDOy/wBA//8AQP//AED//5+3//+ft///nbT7/520+/+Kn93/ip/d/4qf3f9vgLL/b4Cy/y9GTP8vRkz/gJTO/4CUzv+XrvL/l67y/5eu8v+ft///n7f//5+3//+ft///AED//wBA//8AQP//EDOy/xAzsv8AAAAC////ABE0tf8RNLX/AED//wBA//8AQP//vc7//73O//+9zv//vc7//73O//+9zv//vc7//7nJ+f+5yfn/R1pg/0daYP9pc43/aXON/7PD8v+zw/L/s8Py/7C/7f+wv+3/sMDu/7DA7v8AQP//AED//wBA//8RNLX/ETS1/wAAAAL///8AETS1/xE0tf8AQP//AED//wBA//+9zv//vc7//73O//+9zv//vc7//73O//+9zv//ucn5/7nJ+f9HWmD/R1pg/2lzjf9pc43/s8Py/7PD8v+zw/L/sL/t/7C/7f+wwO7/sMDu/wBA//8AQP//AED//xE0tf8RNLX/AAAAAv///wASNbf/EjW3/wBA//8AQP//AED//9jk///Y5P//2OT//9jk///Y5P//2OT//9jk///Y5P//2OT//7fE2P+3xNj/U19i/1NfYv9KVFf/SlRX/0pUV/9GUFP/RlBT/9jk///Y5P//AED//wBA//8AQP//EjW3/xI1t/8AAAAC////ABI1t/8SNbf/AED//wBA//8AQP//2OT//9jk///Y5P//2OT//9jk///Y5P//2OT//9jk///Y5P//t8TY/7fE2P9TX2L/U19i/0pUV/9KVFf/SlRX/0ZQU/9GUFP/2OT//9jk//8AQP//AED//wBA//8SNbf/EjW3/wAAAAL///8AEze5/xM3uf8AQP//AED//wBA///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//wBA//8AQP//AED//xM3uf8TN7n/AAAAAv///wATN7n/Eze5/wBA//8AQP//AED//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//AED//wBA//8AQP//Eze5/xM3uf////8A////ABM3uf8TN7n/AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8TN7n/Eze5/////wD///8AEze5/xM3uf8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//xM3uf8TN7n/////AP///wATN7n/Eze5/wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//Eze5/xM3uf////8A////ALO2t/+ztrf/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf+ztrf/s7a3/////wD///8As7a3/7O2t/8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/7O2t/+ztrf/////AA==");
        }
     }

//--- do alert up
   if(close[1]>SarBuffer[1] && 
      close[0]<SarBuffer[0])
     {
      if(time_alert!=time[0])
        {
         time_alert=time[0];
         notify_icon.Balloon.Show("SAR goes DOWN on "+_Symbol+" "+TimeframeToString()+".",BALLOON_TITLE,NIIF_USER,ICON_LARGE,2500);
        }
     }

//--- do alert down
   if(close[1]<SarBuffer[1] && 
      close[0]>SarBuffer[0])
     {
      if(time_alert!=time[0])
        {
         time_alert=time[0];
         notify_icon.Balloon.Show("SAR goes UP on "+_Symbol+" "+TimeframeToString()+".",BALLOON_TITLE,NIIF_USER,ICON_LARGE,2500);
        }
     }

//--- done
   return(rates_total);
  }
//+------------------------------------------------------------------+
string TimeframeToString(ENUM_TIMEFRAMES tf=PERIOD_CURRENT)//Convert timeframe to string
  {
   if(tf==PERIOD_CURRENT)
      tf=_Period;
   return StringSubstr(EnumToString(tf),7);
  }
//+------------------------------------------------------------------+

Die Bibliothek arbeitet im Strategie-Tester. Ihr Code ist kompatibel mit MQL4. Die Bibliothek kann durch Hinzufügen von weiteren Funktionen für die Animation von Symbolen weiter verbessert werden. Ich hoffe, dass die MQL-Community ihren Beitrag zur Entwicklung der Bibliothek leisten wird.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/19129

Momentum YTG Momentum YTG

Der Momentum-Indikator in Form eines farbigen Histogramms.

Vortex Vortex

Der Indikator aus "Technical Analysis of Stocks & Commodities" (January, 2010).

Vortex Indicator System Vortex Indicator System

Ein Handelssystem auf Basis der Signale des Indikators Vortex.

Current Next Futures Current Next Futures

Das Skript verfügt über drei unabhängige Funktionen zur Bestimmung der aktuellen FORTS-Futures.