vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Grafik zeichnen und mit Sachdaten verknüpfen 
Autor: alexle
Datum: 26.05.07 12:18

Hallo, ich habe eine kleine Grafikanwendung, in der ich mehere Linien auf Basis von XY-Koorinaten darstelle.

Nun möchte ich zu den gezeichneten Linien Sachdaten aus einer DB anzeigen.
Bisher habe ich die gezeichneten Koordinaten beim Mousemove Event mit den im Array gespeicherten Koordinaten verglichen und bei Übereinstimmung die Sachdaten aus dem Array in einem Tooltip angezeigt.

Das Problem ist, dass bei größerer Anzahl von Daten die Laufzeit für das durchlaufen und vergleichen der im Array gespeicherten Daten zu lang ist.

Ich möchte es gern eleganter lösen und hab mir folgenden Link angeschaut

http://www.vbarchiv.net/forum/read.php?f=10&i=48669&t=48666

Imports System.Drawing.Drawing2D
Public Class Form1
    Dim gparray(9) As GraphicsPath
    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        For i As Int32 = 0 To 9
            e.Graphics.DrawPath(Pens.Red, gparray(i))
        Next
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        For i As Int32 = 0 To 9
            gparray(i) = New GraphicsPath
            gparray(i).AddLine(0, 10 + i * 20, 200, 10 + i * 20)
        Next
    End Sub
    Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
        Dim i As Integer
        For i = 0 To 9
            If gparray(i).IsOutlineVisible(e.X, e.Y, New Pen(Color.Black, 3)) = _
              True Then
                MessageBox.Show("Linie " & i.ToString)
            End If
        Next
    End Sub
End Class
gibt es eine Möglichkeit, in dem GraphicsPath Objekt auch eine ID zu Hinterlegen?

Wie z.B. so ähnlich?

 
 
            Dim gparray(9,1) As GraphicsPath
 
            gparray( i, 0) = New GraphicsPath
            gparray( i, 0).AddLine(0, 10 + i * 20, 200, 10 + i * 20)
            gparray( i, 1) = ID
Somit könnte ich bei einem IsoutlineVisible Event die ID übergeben und per SQL befehl die Daten aus der DB abrufen.


Bin über jeden Lösungsansatz sehr Dankbar ...!!

aLEx
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Grafik zeichnen und mit Sachdaten verknüpfen780alexle26.05.07 12:18

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel