Mouseover bzw. Objekte mit der Maus bewegen

Moin,

ich plage mich seit einigen Tagen damit herum, soll heissen, ich lese Beschreibungen, wie ich Objekte - Image, Frame, … - mit der Maus bewegen kann, innerhalb eines Formulars z.B., mit gedrückter linker Maustaste. Aber ich packe das nicht.

Wer kann mir das auf einfache Weise verklickern?

Danke
Laika

Office 2003, VBA 6.5, Win 7

Moin,

woran scheitert es denn genau?
VB bietet Dir doch alles was du brauchst :smile:

Du kannst doch das Mouse Up und Mouse Down Ereignis abfangen. Hier erkennst Du schon einmal wann die Mouse gedrückt wurde, sprich wann du auf das MouseOver Ereignis reagieren musst. Hier verschiebst du nun dein Objekt auf deine gewünschte Position.

MfG Alex

woran scheitert es denn genau?
VB bietet Dir doch alles was du brauchst :smile:

Das sage ich auch immer: Mit VBA kann man alles machen. Ich gebe zu, dass ich vielleicht etwas faul bin, würde es wohl auch mit der Zeit schaffen. Wollte nur mal ein paar Tips zur „Beschleunigung“ haben.

Du kannst doch das Mouse Up und Mouse Down Ereignis abfangen.

Und das MouseMove-Ereignis? D.h. dass ich einen laufenden Strom von Mauskoordinaten bekomme. Nun, vielleicht brauche ich das nicht, sondern nur die Position beim Loslassen der Maustaste.
Ich habe sowas mal vor 20 Jahren in C unter Unix und Motif programmiert, das Meiste aber vergessen.

Hier erkennst Du schon einmal wann die Mouse gedrückt wurde,
sprich wann du auf das MouseOver Ereignis reagieren musst.
Hier verschiebst du nun dein Objekt auf deine gewünschte
Position.

Ja, da gibt es einige Beschreibungen in der VBA-Hilfe, ich tue mich da aber ziemlich schwer.

Allerdings betreibe ich das nur im Hintergrund. Intensivere Beschäftigung damit erst im nächsten Jahr bzw. werst nach dem Skiurlaub. Werde im Netz nochmal forschen.

Danke, Gruss und guten Rutsch
Laika

Hallo Laika,

VB bietet Dir doch alles was du brauchst :smile:

Das sage ich auch immer: Mit VBA kann man alles machen. Ich
gebe zu, dass ich vielleicht etwas faul bin, würde es wohl
auch mit der Zeit schaffen. Wollte nur mal ein paar Tips zur
„Beschleunigung“ haben.

Schreibe bitte immer dazu um welches VB oder VBA es sich handelt. Ich tippsle schon lange nicht mehr mit VB rum, sondern mit VB.NET. Von VBA habe ich auch nicht so die Ahnung, von daher kann ich Dir da keine allzugrosse Hilfe sein.

Du kannst doch das Mouse Up und Mouse Down Ereignis abfangen.

Und das MouseMove-Ereignis? D.h. dass ich einen laufenden
Strom von Mauskoordinaten bekomme. Nun, vielleicht brauche ich
das nicht, sondern nur die Position beim Loslassen der
Maustaste.
Ich habe sowas mal vor 20 Jahren in C unter Unix und Motif
programmiert, das Meiste aber vergessen.

Das macht du Dir später zu nutze. Wenn die Maustaste gedrückt wurde, setze ein Flag, sprich eine Variable vom Typ Boolean auf True. Wenn sie wieder losgelassen wird, setze diese wieder zurück auf False. Nun wirft doch Dein Formular die das Ereignis MouseMove. Dort fragst du die Variable auf True ab und wenn sie den Wert hat, schaue mal in die Parameter. Dort findest du sicherlich die aktuellen Koordinaten, wo sich die Maus gerade befindet. Nun ein wenig rechnen und schwups dein Object dorthin verschieben, so wie du es möchtest.

Danke, Gruss und guten Rutsch
Laika

Danke das wünsche ich Dir auch :smile:

Lg Alex

Hallo ersterHundImWeltraum,

ich habe dir hier mal eine Besipielmappe gebaut. Auf einer UserForm kannst du eine
TextBox mit DragAndDrop verschieben. Schau dir den VBA Code einfach mal an. Wenn du Fragen hast, melde dich.

Gruß, Andreas

Hallo auch,

Hallo ersterHundImWeltraum,

War eine Hündin. Als man mir den Spitznamen verpasste, war das unwichtig. Auch, dass sie einen frühen Tod da oben starb, hat mich nicht gestört :wink:)

ich habe dir hier mal eine Besipielmappe gebaut. Auf einer
UserForm kannst du eine
TextBox mit DragAndDrop verschieben. Schau dir den VBA Code
einfach mal an. Wenn du Fragen hast, melde dich.

Was soll ich da noch fragen? Das ist genau das, was ich suche. Fragen könnte ich höchstens mich, warum ich die VBA-Beschreibung nicht verstanden habe :frowning:(

Gruß,
Laika