Automtisch zeichnen nach dem Laden

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    also diese verlinkte Empfehlung hab ich nicht downloaden können - Ownerdrawing sagt mir nun gar nix - habe aber erst noch ein anderes Problem: muss eins nach dem anderen abarbeiten...

    Der Tipp mit der Date-Klasse funktioniert leider noch nicht so wie er soll:

    Bisher hatte ich eine Variable für die Sekunden so programmiert:

    VB.NET-Quellcode

    1. ts = Second(Now)

    das funktionert.

    Der neue Vorschlag war

    VB.NET-Quellcode

    1. Dim Zeit as Date = Date.Now
    2. Dim sec As Integer = Zeit.Second


    Wenn ich nun meine ts Variable durch sec ersetze wird diese nicht aktualisiert, d.h. der Sekundenzeiger läuft nicht weiter. Ich habe nur mal testweise den sec Inhalt in eine Listbox schreiben lassen:

    VB.NET-Quellcode

    1. Private Sub Sekundenzeiger(e As Graphics)
    2. e.DrawLine(hstiftsec, mitte, ptsec)
    3. ts = Second(Now)
    4. ListBox1.Items.Add(sec)
    5. ptsec.X = mitte.X + xpos(ts, rs)
    6. ptsec.Y = mitte.Y - ypos(ts, rs)
    7. e.DrawLine(schwstiftsec, mitte, ptsec)
    8. End Sub


    und es wird immer diesselbe Sekundenzahl ausgegeben.
    Wenn du immer auf Date.Now zugreifst sollte das immer korrekt sein. Ich schätze mal, dass du ein Attribut hast, dem einmal Date.Now zuweist und dann es nicht mehr aktualisierst. Du musst aber immer Date.Now nehmen um die aktuelle Uhrzeit zu bekommen.

    LG
    danke - ja so geht es natürlich

    Jetzt noch mal zu meinen unschönen Uhrzeigern: Ich könnte außerhalb von vb.net eine Grafik für einen Zeiger erstellen, diesen freistellen(Transparent) und dann auf meine PicBox zeichnen und um den Mittelpunkt drehen - ist der Ansatz ok, oder gibt es sinnvollere Wege?
    Was war das Problem mit dem verlinkten Sample?

    ich habs jetzt ganz problemlos downgeloaded.

    Sollte resourcenschonender sein, denn es wird nicht sekündlich das ganze Control neugezeichnet, sondern nur die Zeiger, die sich bewegen.
    Dateien
    • ClockSample.zip

      (43,68 kB, 83 mal heruntergeladen, zuletzt: )
    danke für die Zip-Datei
    Das ist schon etwas aufwändiger für mich - da sind Sachen drin, die ich noch nie gemacht habe (Matrix, eigene Klassen erstellen...) - erst mal bin ich da etwas erschlagen.
    Ich werde versuchen, mich da schrittweise reinzudenken - könnte aber dauern ^^

    Erst mal herzlichen Dank!

    Beim ersten Überfliegen habe ich gesehen, dass die Uhrzeiger auch mit Bordmitteln gezeichnet werden - und sie sehen viel besser aus, als meine Linien.
    Ok, werde mich mal dran setzen...
    ja, ich find ownerdrawing ein gutes Gebiet, um sich in OOP einzudenken.
    ZB meine 3 Zeiger sind 3 Instanzen vom selben Typ, nur mit jeweils anderer Länge und Farbe.

    Andererseits ist das Sample auch wieder schwer verdaulich - ich hab da auch an der Matrix-Klasse dran herumverbessert, weil ich die standardmäßig recht ungeschickt zu bedienen finde.