Ich stelle hier mal ein paar Code-Schnippsel zur Verfügung, mit denen Skinner relativ einfach eine elegante POIObserver-Integration in ihrer Skin bewerkstelligen können.
- Grafische Anzeigen des POIObserver aktivieren/deaktivieren
Dies ist empfehlenswert, um zu vermeiden, daß sich eine optische Warnung des Observers vor ein Menü o.ä. schiebt. Es erflgt nach wie vor eine akustische Warnung!Voraussetzung hierfür ist natürlich, daß Eure Skin ein permanent mitlaufendes Script beinhaltet, das weiß, ob die Karte, der Kompaß oder eine andere Ansicht angezeigt wird.
Grafische Popups deaktivieren und evtl. bestehende ausblenden:
Code
Alles anzeigen# --- POIObserver-Anzeige an-/ausschalten Anfang (SpaceRat) --- If (RegValueExists ("HKCU", "Software\<Deine Skin>", "POIO")) ObsActive = SendMessage( "POI Observer", 1024, 201, 0 ) If ( ObsActive > 1 ) SendMessage( "POI Observer", 1024, 508, 0 ) SendMessage( "POI Observer", 1024, 506, 0 ) EndIf EndIf # --- POIObserver-Anzeige an-/ausschalten Ende (SpaceRat) ---Grafische Popups wieder aktivieren:
Code
Alles anzeigen# --- POIObserver-Anzeige an-/ausschalten Anfang (SpaceRat) --- If (RegValueExists ("HKCU", "Software\<Deine Skin>", "POIO")) ObsActive = SendMessage( "POI Observer", 1024, 201, 0 ) If ( ObsActive > 1 ) SendMessage( "POI Observer", 1024, 507, 0 ) SendMessage( "POI Observer", 1024, 505, 0 ) EndIf EndIf # --- POIObserver-Anzeige an-/ausschalten Ende (SpaceRat) ---Hinweis:
Die If-Clause
If (RegValueExists ("HKCU", "Software\<Deine Skin>", "POIO"))
EndIf
dient dazu, diese Umschaltung nur bei eingeschaltetem POIObserver vorzunehmen und zwar auch nur genau dann, wenn Ihr in Eurer Skin auch eine solche Einstellung vorseht. Statt dem Registry-Key kann natürlich auch eine INI-Datei ausgewertet werden ...
Wenn Ihr keine Einstellung zum Ein- oder Ausschalten des POIObservers vorsehen wollt, dann sollte diese äußere If-Clause entfallen. Die innere If-Clause
sorgt nämlich bereits dafür, daß die Befehle nur dann an den POIObserver geschickt werden, wenn dieser aktiviert ist.Wer ganz sicher sein will, daß der POIObserver überhaupt läuft bevor er Befehle dorthin schickt, kann auch noch ganz außen oder innerhalb der ersten If-Clause so darauf prüfen:
- POIObserver komplett deaktivieren/aktivieren
Insbesondere wenn Ihr eine komplette Unterstützung einbaut, also auch einen Schalter zum Ein-/Ausschalten des POIObservers, dann muß die Skin natürlich auch noch den Observer aus- und vor allem wieder einschalten, wenn der entsprechende Knopf betätigt wird
Code# POI-Observer If not (RegValueExists ("HKCU", "Software\<Deine Skin>", "POIO")) If WndExists ("POI Observer") SendMessage( "POI Observer", 1024, 2, 0 ) EndIf Else If WndExists ("POI Observer") SendMessage( "POI Observer", 1024, 1, 0 ) EndIf EndIfDieser Beispielcode aktiviert/deaktiviert den POIObserver lediglich, beendet oder startet ihn aber nicht. Wer auch dazu Code-Beispiele benötigt, kann mich gerne fragen.
- Panik-Funktion
1. POIObserver beenden:
2. Die verfängliche Datei mit den Blitzerdaten heißt Blitzer.obs oder observer.obs und befindet sich direkt im POIObserver-Verzeichnis oder im Unterverzeichnis Obss davon. Praktisch alle Lösungen, den POIObserver zu installieren (GPW-POIObs-Installer und mein POIObs-CAB-Builder) installieren den POIObserver nach "MFD\navigation\POIObserver" oder "SC\POIObserver". Diese sollte gelöscht werden.
Der Einfachheit halber kann auch gleich das ganze Verzeichnis gelöscht werden, da es unter GoPal kaum eine sinnvolle Anwendung für den Observer gibt, außer vor Blitzern zu warnen.3. Da der POIObserver keine POIs in der Karte einblenden kann, wird er oft zusammen mit einem entsprechenden POI-Overlay für GoPal verwendet. Dieses heißt praktisch immer nfBlitzer.psf und befindet sich in einem der MapRegions-Verzeichnisse.
Aber vorsicht, diese Datei kann nicht gelöscht werden, während GoPal läuft.
Also erst GoPal abschießen, dann die nfBlitzer.psf löschen und danach das Navi resetten.