Diagramm

  • VB.NET

Es gibt 26 Antworten in diesem Thema. Der letzte Beitrag () ist von shocK.

    Hallo
    ich habe mir ein kleines Ping tool geschrieben, welches alle 2 Sekunden einen Host anpingt.

    Das sieht momentan so aus:



    Nun würde ich das ganze gern noch grafisch in einem Diagramm darstellen.
    Ganz simpel:
    Alle 2 Sekunden einen neuen Punkt setzen als Wert den Ping als Integer und den Punkt dann immer mit dem anderen verbinden.
    Habe das mal schnell in Paint als Beispiel gemacht:



    Nun meine Frage gibt es evtl. schon ein vertiges Control für mein Vorhaben?
    Wenn nicht, wo muss ich da ansetzen und dauert es sehr lange sowas zu machen?

    Hoffe auf Hilfe.

    Gruß
    shocK
    Kann sein. Wenn du bei einem Rechtklick auf das Projekt im Projektmappenexplorer nicht die Option "Klassendiagramm anzeigen" bekommst, dann siehts schlecht aus.
    Du kannst aber auch einfach das fertige Control nehmen, sollte alles können, was du brauchst.
    Wenn wir schon bei Schleichwerbung sind,
    ich habs genau das Control von Artentus auch in meiner MetroSuite, nur mit ein paar mehr Funktionen:
    [Release] MetroSuite [UPDATE 04.09.2013]- Holt euch den modernen Windows 8 Style.

    edit:// controlname: MetroTracker.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    @shocK:: Diese Art der Darstellung zeigt relativ wenig, es sei denn, Du korellierst dies mit anderen Vorgängen.
    Überleg mal, diese Werte als Histogramm darzustellen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Gather schrieb:

    Wenn wir schon bei Schleichwerbung sind,
    ich habs genau das Control von Artentus auch in meiner MetroSuite, nur mit ein paar mehr Funktionen:
    [Release] MetroSuite [UPDATE 04.09.2013]- Holt euch den modernen Windows 8 Style.

    edit:// controlname: MetroTracker.


    Danke das sieht gut aus.
    Nur weiß ich nicht wie ich dieses Control auf meine Form bekomme.
    Habe die DLL in meinen Projektmappen-Explorer gezogen, die DLL in meinen Debug Ordner kopiert und einen Verweis drauf gemacht.
    Woher bekomme ich nun den MetroTracker?
    Die .dll in die Toolbox ziehen.
    Dann ist das Control dort drinnen, dann einfach auf die Form ziehen.

    Zum Thema Verwendung, einfach das Tutorial von Artentus ansehen, oder
    den kleinen Abschnitt in dem MetroSuite Beitrag ansehen.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Gather schrieb:

    Die .dll in die Toolbox ziehen.
    Dann ist das Control dort drinnen, dann einfach auf die Form ziehen.

    Zum Thema Verwendung, einfach das Tutorial von Artentus ansehen, oder
    den kleinen Abschnitt in dem MetroSuite Beitrag ansehen.


    Danke.
    habe das Control jetzt auf meiner Form und mir die Erklärung angeschaut.
    Verstehe allerdings nicht genau was es mit dem Path auf sich hat.
    Ich habe meine Ping Ausgabe als Long. Wie kann ich nun einen Punkt adden?
    Sorry blicke da echt nicht durch.
    Habe es soweit begriffen.
    Allerdings bekomme ich einen Fehler. Was muss der Wert denn für ein Datentyp sein?

    Fehler 1 Der Wert vom Typ "Integer" kann nicht in "MetroSuite.MetroTrackerPath" konvertiert werden.

    Als Long genau das selbe Problem.

    Hier einmal der Code:

    VB.NET-Quellcode

    1. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    2. Dim ms As Long = DoPing(TextBox1.Text)
    3. Dim uhrzeit As String = DateTime.Now.ToLongTimeString()
    4. If ms >= 0 Then
    5. ToolStripStatusLabel1.Text = "Ping - " & TextBox1.Text
    6. ListBox1.Items.Add(uhrzeit & " - " & "Ping to " & TextBox1.Text & ": " & ms.ToString & "ms")
    7. MetroTracker1.Paths.Add(ms)
    8. Else
    9. ToolStripStatusLabel1.Text = "Ping - Cant connect to " & TextBox1.Text
    10. ListBox1.Items.Add("Cant connect to " & TextBox1.Text)
    11. End If
    12. End Sub
    Ja den hier:

    VB.NET-Quellcode

    1. Dim Path as New MetroSuite.MetroTrackerpath
    2. Path.Name = "CPU"
    3. Path.IsFilled = True
    4. Path.Style = MetroSuite.Design.eTrackerStyle.CPU
    5. MetroTracker1.Paths.add(Path)
    6. 'Werte setzten:
    7. Path.Add(50)
    8. Path.Add(25)


    Allerdings habe ich keine Ahnung wie ich das nun auf meine Sache anwenden soll.

    @Gather:
    Desweiteren habe ich den Code mal Testweise eingefügt und das scheint nicht mehr so ganz aktuell zu sein:

    Fehler 1 "eTrackerStyle" ist kein Member von "MetroSuite.Design".
    Ja, dann ist das ein Tippfehler.
    BEnutz einfach die Intelisense, und du wirst sehen was da hinein gehört. (--> Schreib es händisch neu, und Kopier nicht.)
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Ups. Selbst beim C&P'n fail ich X(

    Naja wie auch immer.
    Habe es jetzt hinbekommen, dass er den ersten Punkt setzt.
    Allerdings wird immer wieder eine neue "Bedeutung" in der Legende erstellt.

    Screen:



    So sieht mein Code nun aus:

    VB.NET-Quellcode

    1. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    2. Dim ms As Long = DoPing(TextBox1.Text)
    3. Dim uhrzeit As String = DateTime.Now.ToLongTimeString()
    4. If ms >= 0 Then
    5. ToolStripStatusLabel1.Text = "Ping - " & TextBox1.Text
    6. ListBox1.Items.Add(uhrzeit & " - " & "Ping to " & TextBox1.Text & ": " & ms.ToString & "ms")
    7. Dim Path As New MetroSuite.MetroTrackerPath
    8. Path.Name = "Ping"
    9. Path.IsFilled = True
    10. Path.Style = MetroSuite.Design.TrackerStyle.CPU
    11. MetroTracker1.Paths.Add(Path)
    12. 'Werte setzten:
    13. Path.Add(CInt(ms))
    14. Else
    15. ToolStripStatusLabel1.Text = "Ping - Cant connect to " & TextBox1.Text
    16. ListBox1.Items.Add("Cant connect to " & TextBox1.Text)
    17. End If
    18. End Sub
    Nein.
    Du erstellst einen Ping.
    Und fügst ihm dann Werte hinzu...

    VB.NET-Quellcode

    1. Private Sub Form_Load(sender as Object, e as EventArgs) Handles MyBase.Load
    2. Dim Path As New MetroSuite.MetroTrackerPath
    3. Path.Name = "Ping"
    4. Path.IsFilled = True
    5. Path.Style = MetroSuite.Design.TrackerStyle.CPU
    6. MetroTracker1.Paths.Add(Path)
    7. End Sub
    8. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    9. Dim ms As Long = DoPing(TextBox1.Text)
    10. Dim uhrzeit As String = DateTime.Now.ToLongTimeString()
    11. If ms >= 0 Then
    12. ToolStripStatusLabel1.Text = "Ping - " & TextBox1.Text
    13. ListBox1.Items.Add(uhrzeit & " - " & "Ping to " & TextBox1.Text & ": " & ms.ToString & "ms")
    14. 'Werte setzten:
    15. Path.Add(CInt(ms))
    16. Else
    17. ToolStripStatusLabel1.Text = "Ping - Cant connect to " & TextBox1.Text
    18. ListBox1.Items.Add("Cant connect to " & TextBox1.Text)
    19. End If
    20. End Sub


    So in etwa. (Am Handy und ausm Kopf...)
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!