Laden...

Trackbar mit 2:1 Übersetzung

Erstellt von muntablues vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.021 Views
M
muntablues Themenstarter:in
231 Beiträge seit 2007
vor 15 Jahren
Trackbar mit 2:1 Übersetzung

Hi all

Gibt es evtl. eine einfach Möglichkeit die Standard Windows.Forms Trackbar so zu überschreiben, dass sie mir ein 2:1 Überetzungsverhältnis macht.

Kurz gesagt soll sie sich nur um die Hälfte des zurückgelegten Mauswegs bewegen.

Ich habs kurz mit dem MausMove versucht, aber das dreht sie ganz durch. Quasi ein springen zwischen Mauswert und errechnetem Wert.

Vielleicht hat ja jemand eine Idee für mich...

Ich danke schon jetzt für die Hilfe!

Gruß MB


Gruß MB

Home of DigiJay - DJ-Freeware

3.430 Beiträge seit 2007
vor 15 Jahren

Hallo muntablues,

was genau willst du damit machen?
Denn es wiederspricht doch jedem Programmierer-gesetz dass eine Trackbar sich nicht synchron mit der Maus bewegt 🙂

Gruss
Michael

K
165 Beiträge seit 2007
vor 15 Jahren

Hallo muntablues,

du kannst doch selber bestimmen wann und wieviel sich die Trackbar bewegt. In deinem Fall einfach den eigentlich Wert / 2 bewegen^^.

Kalleberlin

If u want to finish first, u have to finish first.
M
muntablues Themenstarter:in
231 Beiträge seit 2007
vor 15 Jahren

@ michlG

Breaking the Law... Ok kurz zur Erklärung. Ich hab ne DJ-Software die eine Trackbar für den Pitch hat. Nun hab ich z.B einen Pitchbereich von -12% bis +12%. Meine Trackbar hat dann Werte von Min = 0 und Max = 240. Daraus bastle ich mir dann die Werte -12 bis +12. Passt ja alles, aber ich kann durch die Mausbewegung, die ja nur Pixel per Pixel weiter geht nicht jede Kommastelle abdecken, außer ich mach die Trackbar einen halben Meter groß.

So hab ich mir gedacht ich mach ne Übersetzung und gut is.

Hoffe jetzt ist das Ganze klar.

@ Kalleberlin

Jo klingt erst logisch, aber das wiederum neigt dazu, dass die Trackbar zwischen "Maus-Wert" und "erechnetem-Wert" springt.

Vielleicht kann ich ja alles von Hand machen, da müsste ich aber das jetzige Maushandling überschreiben. Genau da steck ich fest...

Gruß MB


Gruß MB

Home of DigiJay - DJ-Freeware

O
778 Beiträge seit 2007
vor 15 Jahren

Ich glaube, das wird mit Windows.Forms nicht umzusetzen sein. Grund: Wenn die Maus außerhalb der TrackBar gezogen wird, dann empfängt dein Steuerelement auch keine Mausereignisse mehr - müsste es aber, wenn du die TrackBar auch dann noch anpassen willst, wenn die Maus schon lange außerhalb ist (sprich wie du gesagt hast halt den bereich vergrößerst, indem du mit der TrackBar arbeiten kannst). Bei WPF sieht die ganze Sache etwas anders aus, weil du das ganze dann im Hauptformular abfackeln kannst wenn die Events da durchgebubblet werden. Bei Windows.Forms würde mir keine MMöglichkeit der Realisierung einfallen...

M
muntablues Themenstarter:in
231 Beiträge seit 2007
vor 15 Jahren

Hi onlinegurke

Ganz richtig ist das nicht. Ich bekomm z.B. beim MouseMove Event auch die Daten die Außerhalb der Trackbar sind. Sie werden dann negativ oder einfach um einiges größer, aber ich bekomm sie.

So wie es aussieht muss ich mir eben meine eigene Trackbar zusammenbasteln und den Tracker selbst bewegen. Dann hätte ich natürlich noch einige andere Optionen offen. So könnte ich die Trackbar eine Art zweiteilen wobei der eine 1:1 schiebt und der andere 2:1.

Naja schauen was die Zeit sagt. Vielleicht hat ja noch jemand eine Idee dazu, die mich schneller ans Ziel bringt. Es würde mir ja schon reichen wenn ich den Standard Schiebe Algo rauskicken könnte und alles zu Fuß schieben könnte.

So denn, danke für die Info.

Gruß MB


Gruß MB

Home of DigiJay - DJ-Freeware

5.299 Beiträge seit 2008
vor 15 Jahren

aber ich kann durch die Mausbewegung, die ja nur Pixel per Pixel weiter geht nicht jede Kommastelle abdecken, außer ich mach die Trackbar einen halben Meter groß.

Erstmal tätich rumprobieren, ob man Maximum nicht hochsetzen kann, das müsste doch feiner granulieren.
Meinetwegen 0 - 2400.
Und dann glaub TickFrequency auch hoch setzen, damit die Strichelchen unterscheidbar bleiben.

Habich jetz probiert, sehe kein Prob.

Der frühe Apfel fängt den Wurm.

M
muntablues Themenstarter:in
231 Beiträge seit 2007
vor 15 Jahren

Hallo ErfinderDesRades

Danke für den Tipp, aber ich bin der Meinung das geht nicht. Beispiel:

Meine Höhe der Trackbar ist 100 Pixel hoch, Mein Wertebereich 0 bis 200 --> Ein Pixel macht dann nach folglich einen Wert von 2 aus. Mit dem Mausrad kann ich von mir aus die Werte schon feiner verschieben, aber das ist ja nicht gerade der Sinn.

Ich habs jetzt nicht direkt getestet bin mir aber sicher, dass das oben beschriebene Verhalten so ist...

Gruß MB


Gruß MB

Home of DigiJay - DJ-Freeware

5.299 Beiträge seit 2008
vor 15 Jahren

Ah, so rum!

Hm, das übersteigt jetzt aber einfach meine Vorstellungskraft, ein Mausgesteuertes Eingabe-Instrument mit feinerer Abstufung als Pixel.
Mausbewegungen sind halt Pixel-Veränderungen.
Is doch auch irre schwierig, die Maus so pixelgenau zu manövrieren.
Lange Reder kurzer Sinn: Die Trackbar ist zu klein.
Wenn kein Platz ist kannste evtl. eine PopUp-Trackbar basteln, eine, die einem so wollüstig entgegenspringt, wenn man mit der Maus drüber geht.
In WPF(kleiner Wink) ist das ja ganz groß Mode.

Ich hab auch mal ein ziemlich schrulliges Control gebaut, für Grob + Fein-Einstellungen:
Das war rund und klein, und wenn mans aktivierte, konnte man eine Verbindungslinie ur Maus rausziehen.
Bei rechtsrum um den Mittelpunkt wurde der Wert erhöht, bei Linksrum verringert, proportional zum umlaufenen Winkel (Prinzip IPod, wenn dir das bekannt ist).
Der Effekt war:*unendlicher Einstellbereich (immer im Kreise wetzen) *sowohl sehr schnelles einstellen (enge Kreise wetzen) *als auch sehr feines einstellen (Bewegung weit entfernt vonne Mitte)

Weiß jetzt nicht, ob ähnliches für dich praktikabel, weil mit diesem IPod-Control muß man erst klicken, dann den "Hebel" rausziehen, erst dann wird eingestellt. Und beim rausziehen eiern die Werte etwas rum, weil das ist so nah anne Mitte, ob das der DJ so optimal findet (wnnich nur wüste, was ein Pitch ist!).

Also nochma zum Prinzip:
Wenn die Maus nur 200 Pix vonne Mitte weg ist, bedeutet ein Pix tangential einen Winkel von gaaaanz grob 0,25°.
Andererseits, beim Abstand 20Pix kannste auch 360° locker inner 1/2 s durchlaufen.

Also ein IPod-Pitch mit einem Wertebereich von 5 Rotationen ließe sich in 2s komplett durchscrollen, und dabei auch suuper-fein einstellen.

Der frühe Apfel fängt den Wurm.

M
muntablues Themenstarter:in
231 Beiträge seit 2007
vor 15 Jahren

Eben das ist ja das Problem... Pixel bleiben Pixel so ist das einfach.

"Pitch" ist übrigens die Geschwindigkeit, soll heißen, dass ein Song bis zu 12% schneller oder langsamer gemacht werden kann. Ist da um Beatgenau zu mischen.

Ich werd heut Abend versuchen ein eigenes Control zu basteln ansonsten sehe ich hier kein Licht mit der Standard Trackbar...

Dein Vorschlag mit dem IPod Drehknob ist eher schlecht für den "Pitch" weil auf so gut wie allen CD-Playern, Midi-Controller und sonstigen Dj-Geräten der Pitch immer als Schieberegler realisiert ist...

Gruß MB


Gruß MB

Home of DigiJay - DJ-Freeware

946 Beiträge seit 2008
vor 15 Jahren

Kombiniere doch die Controls. Einen Schieberegler für die Grob-, einen Drehknob für die Feinabstimmungen.

5.299 Beiträge seit 2008
vor 15 Jahren

Jo, vllt. einen PopUp-IPod:
Wenn man auf den Schieber der Trackbar geht popt seitlich davon ein großer Drehknopf auf, wenn man da drauf geht, kann man damit den Schieber mikrometerweise rauf und runterkurbeln.

Unergonomische Möglichkeit: ein Rändelrad, wo man andauernd nachfassen muß.

Der frühe Apfel fängt den Wurm.