Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Einzelne Grafikteile anklickbar machen


ChrisCross - Fr 25.01.13 09:20
Titel: Einzelne Grafikteile anklickbar machen
Hallo,

ich habe eine Deutschlandkarte mit Buttons. Wenn man einen anklickt kommt die Auflösung, welches Bundesland es ist. Jetzt habe ich mir gedacht, dass es doch besser wäre, wenn man die einzelnen Bundesländer anklicken könnte und dann die Auflösung kommt. Kann man die Grafik in Bereiche einteilen?. Leider habe ich bei Google nichts gefunden.


WasWeißDennIch - Fr 25.01.13 09:31

Mit Regions [http://msdn.microsoft.com/de-de/library/windows/desktop/dd183511(v=vs.85).aspx] müsste das zu schaffen sein (Regions erzeugen und mit PtInRegion [http://msdn.microsoft.com/de-de/library/windows/desktop/dd162883(v=vs.85).aspx] ermitteln, ob sich die Koordinaten innerhalb der Region befinden). Allerdings habe ich keine Idee, wie man das möglichst simpel hinbekommt, da ist wahrscheinlich Handarbeit angesagt.

[edit] Hier noch eine Übersicht zu Regions [http://msdn.microsoft.com/de-de/library/windows/desktop/dd162913(v=vs.85).aspx] im MSDN [/edit]


Blup - Fr 25.01.13 10:28

Am einfachsten erstellt man sich eine weitere Karte in der selben Größe, die aber im Normalfall nicht angezeigt, sondern nur in eine Bitmap geladen wird.
Die Fläche jedes Bundeslands wird mit einer eindeutigen Farbe gefüllt, unzugeordnete Flächen können Schwarz bleiben.
Wird auf die orginale Karte geklickt, bestimmt man die Koordinaten im Bild und fragt die Farbe in der zusätzlichen Bitmap für das entsprechende Pixel ab.
Durch die eindeutige Farbe kann man wieder auf das Bundesland schließen.