Denkanstoß/Problem...Punkte auf einer Karte auswählen!

daddz

Mitglied
Hi Leute!

Also, ich bin gerade dabei ein Programm zu machen bei dem man auf einer Karte Punkte eintragen kann.Die Karte wird in eine PictureBox geladen und ist ein ganz normales jpeg Bild.
Man kann per Mausklick auf der Karte bei bestimmten Koordinaten einen Punkt eintragen. Die Informationen über den Punkt und die Koordinaten werden in einer Datei gespeichert. Momentan werden die Punkte mit der Funktion Circle() erstellt, das hilft mir aber nichts. Wie kann ich es machen, das wenn man auf einen Punkt klickt, das dann die dazugehörigen Informationen angezeigt werden? Ich habe mir schon überlegt, das für jeden Punkt Labels erstellt werden. Das klappt aber nicht, weil die Labels dann unter der PictureBox sind.
Vielleicht könnt ihr mir ja helfen! Ich hoffe ich habe das Problem ausreichend beschrieben!
Danke schonmal!

greetz
daddz
 
Wenn du die Labels in der Entwicklungsumgebung bereits auf der PictureBox platzierst, dann müsste es besser funktionieren.
 
Das geht nicht! Die Datei mit den Informationen wird beim start ausgelesen und dann soll für jedes Koordinaten-Paar ein Label erstellt werden.

greetz
daddz
 
Natürlich geht das. Einfach ein Label auf der PictureBox platzieren und einen Index einstellen. Damit hast du ein "Label-Array" erstellt, dass du beliebig per Code erweitern kannst.
Kennst du dich mit Arrays aus?
 
Sorry, hat etz aweng gedauert!
Naja, auf jeden Fall werden meine Labels schonmal erstellt mit dieser Funktion:
Code:
Private Sub NeuesLabel(ByVal lngTop As Long, ByVal lngLeft As Long, ByVal iCap As Integer)
    Load Me.DeinLabel(Me.DeinLabel.UBound + 1)
    Me.DeinLabel(Me.DeinLabel.UBound).Top = lngTop
    Me.DeinLabel(Me.DeinLabel.UBound).Left = lngLeft
    Me.DeinLabel(Me.DeinLabel.UBound).Caption = iCap
    'Das neue Label sichtbar schalten:
    Me.DeinLabel(Me.DeinLabel.UBound).Visible = True
End Sub
Aber wie kann ich diese Labels dann ansprechen?
mit:
Code:
Private Sub DeinLabel(2)_Click()
gehts nicht. Und ich müsste dann irgendwie für jedes Label eine Funktion erstellen! Das muss aber halt dynamisch passieren beim Laden der Punkte!

greetz
daddz
 
Wenn du auf dem Formular einen Doppelklick auf dein Label machst bekommst du folgendes:
Code:
Private Sub DeinLabel_Click(Index As Integer)
Und so kannst du das dann nutzen:
Code:
Private Sub DeinLabel_Click(Index As Integer)
    DeinLabel(Index).caption = "Ich wurde geklickt :)"
End Sub
:)
 
Zuletzt bearbeitet:
So, kaum ist das erste Problem gelöst ist das zweite da!
Wenn die Labels erstellt werden sind sie UNTER der PictureBox und man kann sie nicht anklicken! Was kann man da machen?

greetz
daddz
 
Hi daddz,

das funktioniert mit ZOrder:
Code:
DeinLabel(Index).ZOrder 0

0 = im Vordergrund
1 = im Hintergrund
 

Neue Beiträge

Zurück