Dreh-Regler statt Slider (Schieberegler)

  • VB6

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von PainterMicha.

    Dreh-Regler statt Slider (Schieberegler)

    Hallo Leuts

    Programmiere grad an einem MeidiaPlayer
    der 2 Player incl. Playlist(m3U),
    Equalizer, Mischpult und ein integriertes Keybord
    (über Tastatur steuerbar) hat.
    Da das Mischpult aber auch viele Funktionen hat, nehmen Slider zu viel Platz auf dem Desktop weg,
    also brauche ich die Lösung von kleinen Dreh-Reglern.
    diese Regler sollen aber per Skins auch verändert werden dürfen, also mit GFX-Dateien verkleidet werden, jemand eine Idee, wie's funkt? am besten ohne OCX.
    vielen Dank vorab.
    Ohne Runtimes kannst Du das vergessen, es sei denn Du willst Dir mittels 'CreateWindowsEx' ein Fenster erzeugen und alle Events und Methoden selber coden (und das wird mächtig schwul, das kann ich Dir versichern). Es gibt eine VB-Komponente, die den Drehregler anbietet - wenn ich mich nicht irre unter Komponenten - MS Office MediaplayerControl.

    Ich müsste auch nochmal nachschauen.
    Nur Not lässt sich eine solche Komponente auch selber coden. Dafür brauchst du nur eine VB-Version, mit der man Steuerelemente erstellen kann (z.B. VB6 Pro), und einige Erfahrungen mit den Winkelfunktionen Sin und Cos. ;)
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Das mit der Skin is ganz leicht: Du hast einfach ein Bild mit Transperenz...

    Das mit dem Drehen ist schon etwas schwerer:
    Du musst dir als erstes die Winkelgeschwindigkeit errechnen. Dann musst du das ganze in "normale" geschwindigkeit umrechnen. Das größte Problem ist wahrscheinlich, dass du überprüfen musst, wie genau der User den Cursor bewegt und du das ganze mit dem Teil nachvollziehen musst. (Man kann die Maus zB rechteckig bewegen...)


    Das is also n ziehmliches Projekt sowas selbst zu machen... Und wendann würde ich dir empfehlen ein eigenes ActivX-Control (OCX) zu machen. Is einfach am edelsten!!



    mfG mad Andy
    Nun machs mal nicht komplizierter als es ist. Einfach einen Mittelpunkt bestimmen, bei MouseMove und gedrückter Maustaste den Winkel zum Mittelpunkt berechnen und dann den Winkel ins Verhältnis mit Max-Winkel und Max-value setzen...
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    die frage is dann aber wie gut das läuft... und man muss sich auch noch überlegen, wie das is, wenn man nich in die mitte klickt und so. außerdem muss man sich die reichweite überlegen und der winkel ändert sich ja auch, wenn man einfach nur runter fährt (mit der maus). Dann sollte der regler sich aber nicht bewegen. Oder? Ich meine wenn man schon unten angekommen ist und dann noch weiter runter fährt, sollte sich der regler nicht ändern.

    Am besten probierst dus mal so:
    Du ziehst eine Linie von der mitte zur maus, wo sich der rand des reglers mit der linie kreuzt ist der punkt. bei 0 grad hast du 0%, bei 360° hast du 100% sprich: 1° = 100/360 %
    Jez brauchst du nurnoch die richtigen mathematischen mittel um den winkel zu bestemmen. Das kannst du zB so errechnen: du weißt: 1 einheit in jede richtung = 90 grad. sprich 1:1 = 90%. 1:2 = 45% usw. jez kannst du dir 1% errechnen. Es geht mit sin natürlich leichter und schneller (weniger rechenzeit...). Und schon hast dus!

    Das mit der Winkelgeschwindigkeit wäre dann eine andere Form des Regelns: Es gibt da solche Teile, die keine Wirkliche position haben sondern sich einfach nur so drehen und umso schneller du herum fährst, desto stärker steigt die lautstärke pro streckeneinheit (Siehe laptop-touchpad). Sowas wäre eigentlich meine erste idee gewesen... Naja...
    hallo und danke für eure Reaktionen

    Arbeite gerade an der Sin & Cos Funktion der Analog-Uhr
    und versuche diese umzu schreiben

    aber so ein genius bin icke noch nicht....

    arbeite erst seit 5 Monaten mit VB6

    vorher nur mit Excel-VBA

    aber vieleicht hat ja jemand noch eine bessere Idee, das umzusetzen.

    Danke