vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Liniendiagramm zur Laufzeit erstellen 
Autor: Kraut
Datum: 26.02.13 02:46

Hallo!

Ich versuche ein Liniendiagramm im VB2008 zur Laufzeit zu erstellen. Leider scheint das nicht zu funktionieren.

Um die Linien darzustellen, sollen LineShapes-Array zur Laufzeit erstellt werden. Leider kenne ich kein anderes Steuer-Element, das Linien für ein Diagramm darstellen könnte.

Hier Ausschnitte vom Quellcode:

Dim sc As New ShapeContainer
Dim ls(20, 11) As LineShape

\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

sc.Parent = Me

For i = 1 To MaxZeit
For j = 1 To MaxLinien

ls(i, j).Parent = sc
ls(i, j).StartPoint = New System.Drawing.Point(x,y)
ls(i, j).EndPoint = New System.Drawing.Point(x,y)
ls(i, j).BorderWidth = 2
Next
Next


Fett = Fehlermeldung
Kursiv = Hier werden die entsprechenden Kopdinaten berechnet (aus Plazugründen kein Berechnungscode eingegeben)

Fehlermeldung: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

Wie ist das Problem zu lösen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Liniendiagramm zur Laufzeit erstellen 
Autor: Manfred X
Datum: 26.02.13 07:57

Hallo!

Du mußt in Deiner Schleife zunächst
ein LineShape-Objekt an der Arrayposition j,i erstellen (New).
(Die Deklaration eines Array erstellt noch keine
entsprechenden Objekte.)

Schau Dir z.B. auch mal das MS-Chart-Control an,
wenn Du (Linien-)Diagramme auf relativ einfache Weise
erstellen willst.

PowerPacks sind veraltet.
Schau Dir zum Zeichnen mal die GDI-Objekte in Net an (graphics etc.).

http://www.java2s.com/Tutorial/VB/0300__2D-Graphics/LineShapeDiamond.htm

Beitrag wurde zuletzt am 26.02.13 um 08:09:32 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Liniendiagramm zur Laufzeit erstellen 
Autor: GPM
Datum: 26.02.13 11:27

LineShapes für Liniendiagramme sind wirklich nicht nötig. Hier mal
der Code des Links von Manfred X für eine Timer-Demo angepasst.
Public Class Form1
    Dim WithEvents Pb As New PictureBox With {.Dock = DockStyle.Fill, .Parent = _
      Me}
    Dim WithEvents T As New Timer With {.Interval = 500, .Enabled = True}
    Dim k As Int32 = 3
 
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) _
      Handles MyBase.Load
        Me.BackColor = Color.Black
        Me.ClientSize = New Size(800, 800)
    End Sub
 
    Private Sub Pb_Paint(sender As Object, e As _
      System.Windows.Forms.PaintEventArgs) Handles Pb.Paint
        e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
        Using p As New Pen(Brushes.Yellow, 2)
            Dim x(60), y(60) As Single
            For i = 0 To k
                x(i) = CSng(Pb.Width \ 2 + 300 * Math.Cos((2 * Math.PI / k) * _
                  i))
                y(i) = CSng(Pb.Width \ 2 - 300 * Math.Sin((2 * Math.PI / k) * _
                i))
            Next
            For i As Int32 = 0 To k - 1
                For j As Int32 = i + 1 To k
                    e.Graphics.DrawLine(p, x(i), y(i), x(j), y(j))
                Next
            Next
        End Using
    End Sub
 
    Private Sub T_Tick(sender As Object, e As System.EventArgs) Handles T.Tick
        If k < 18 Then k += 1 Else k = 3
        Me.Text = k.ToString & " Ecken"
        Pb.Invalidate()
    End Sub
End Class
MfG GPM
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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