Mausrad- (wheel-) Event-Signale stoppen? [erledigt]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

DelUser01

Mausrad- (wheel-) Event-Signale stoppen? [erledigt]

Beitrag von DelUser01 »

Hallo

Betrifft XbpCrt / Hybridmodus

Wie kann man die bereits eingereihten Wheel-Events löschen wenn der User das Mausrad anhält?
Vermutlich ist die Verarbeitungsgeschwindigkeit n meiner Applikation schuld dass die Verarbeitung der Wheel-Events so lange "nachläuft".

Bsp.:
Der User befindet sich in einer Tabellenanzeige und dreht das Mausrad mit großem Schwung. Der Balken (Cursor) wird nun in die entsprechende Richtung bewegt bis alle Events abgearbeitet sind. Hält der User das Rad gleich wieder an muss er trotzdem einige Zeit warten bis die bereits gesendeten Events abgearbeitet sind.

In XbpBrowse klappt das prima mit dem Anhalten (wie auch immer das gemacht wurde).

Kann man da was machen?

Code: Alles auswählen

Implementierungen:
a) PostAppEvent( xbeP_Keyboard , nEvent , , oXbp )
b) oXbp:Wheel := { | aPos , aWheel | MainWheelDistance( aWheel[2] ) }
c) in GetSysX:
CASE nEvent == xbeM_Wheel
   EinMWheelRead( mp2 )
---
Function EinMWheelRead( mp2 )
If mp2[2] >= 1
   GsUpRead()
Else
   GsDownRead()
EndIf
Return( .T. )
---
Zuletzt geändert von DelUser01 am Mo, 27. Okt 2014 23:39, insgesamt 1-mal geändert.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von brandelh »

Roland Gentner hat geschrieben:In XbpBrowse klappt das prima mit dem Anhalten (wie auch immer das gemacht wurde).
in was rollst du denn nach unten, wenn es kein XbpBrowse ist ?

Es gibt keinen Event "Mausrad wird nicht mehr gedreht" ... ähnlich wie es keinen Keyboard / Inkey Event gibt KEINE TASTE gedrückt.

Was du tun kannst, ist nach einem bestimmten Event alle gleichartigen Events für z.B. 0.05 Sek. zu ignorieren.

Code: Alles auswählen

---
Function EinMWheelRead( mp2 )
   static UpBlock, DownBlock, LastSeconds := 0
   local nBlockZeit := 0.05 // von 0.01 bis 0.5 probieren, was am Besten wirkt.
   if LastSeconds > seconds()
      UpBlock := DownBlock := LastSeconds := 0
   else
      LastSeconds := seconds()
   endif
   If mp2[2] >= 1
      if UpBlock < seconds()
         UpBlock := seconds() + nBlockZeit
         GsUpRead()
      endif
   Else
      if DownBlock < seconds()
         DownBlock := seconds() + nBlockZeit
         GsDownRead()
      endif
EndIf
Return( .T. )
---
was bewirkt eigentlich .t. ?
Gruß
Hubert
DelUser01

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von DelUser01 »

Hallo Hubert

auf die Idee das über die Zeit zu steuern bin ich nicht gekommen.
Habe es probiert - ist noch nicht die passende Lösung - aber die Richtung stimmt.
Je nach Verarbeitungsgeschwindigkeit verhält sich dieser Wheel-Filter unterschiedlich.

Es müsste vielleicht eine Kombination aus Anzahl eingehender Events und Zeit in der diese Events eingehen sein. Und je mehr und länger diese Wheel-Events eingehen um so stärker müssten diese gesperrt werden. Am Anfang werden alle durchgelassen und nach einigen Sekunden keine mehr. Nach 1 Sekunde beginnt das Ganze dann wieder von neuem.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von AUGE_OHR »

hi,

ich fürchte du machst einen falschen Ansatz.
wenn man ein TBrowse mit Maus betreiben will sollte man sich mal den Source c:\ALASKA\XPPW32\Source\SYS\BrowSys.prg ansehen

versuche mal das

Code: Alles auswählen

   SETMOUSE( .T. )
   USE TEST
   Browse(0, 0, MAXROW(), MAXCOL())
dann clicke mit der Maus "in" das TBrowse ... kannst du das auch mit deinem TBrowse ?
also wenn du ein o:Wheel einbauen willst würde ich es in BrowSys.prg (Kopie) machen.
gruss by OHR
Jimmy
DelUser01

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von DelUser01 »

Hallo Jimmy

da hast du was falsch verstanden - oder ich habe mich ungenau ausgedrückt.
Hat mit TBrowse oder XbpBrowse usw. erst einmal gar nichts zu tun.
Betrfft ganz "normale", selbsterstellt Anzeigefunktionen im XbpCrt / Hybridmodus.
Habe weit vor TBrowse selbst so etwa erstellt und heute noch in Verwendung.

Bei Mäusen mit sehr guten Wheels dreht sich das angestoßene Rad recht lange. Eine schnelle Applikation verarbeitet diese Events recht schnell ohne dass der User zu sehr "ausgebremst" wird. Deshalb auch der Vergleich zu XbpBrowse, da klappt das auch recht gut.
Bei einigen meiner Module wird jedoch der User

Wenn nun das - nennen wir es Umblättern - lange dauet, davon zig Events bereits in der Queue sind und man das nicht anhalten kann, muss der User Kaffee holen oder spazieren gehen...

Dafür suche ich eine Lösung.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von brandelh »

Roland Gentner hat geschrieben:da hast du was falsch verstanden - oder ich habe mich ungenau ausgedrückt.
Das einzige was du ausschließt ist XbpBrowse, um ehrlich zu sein, kann man nur raten, dass du GET verwendest ;-)
Roland Gentner hat geschrieben:Bei Mäusen mit sehr guten Wheels dreht sich das angestoßene Rad recht lange.
ein selbst weiterdrehendes Mausrad würde ich nicht als GUT bezeichnen, meine drehen exact so lange wie ich den Finger drüber ziehe :!:

Früher hatte ich ein einem Programm auch das Problem, dass in einer bestimmten Konstellation Tastenanschläge nicht schnell genug verarbeitet wurden,
da habe ich eine "Prellsperre" eingebaut, ähnlich wie der empfohlenen "Mausrad Drehsperre" ;-)
Gruß
Hubert
DelUser01

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von DelUser01 »

Hallo Hubert

es geht um Anzeigemasken, nicht um Eingabemasken. Wenn in einer Eingabemaske - mit GET oder anders - einer das Mausrad benützt kann ich ihm auch nicht helfen.
@ x,y Say "..."
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von brandelh »

OK, was auch immer dein Bildschirmaufbau dauert offenbar deutlich länger wie neue Events einlaufen ...
Du musst aber auch nicht jeden Event einzeln anzeigen lassen, denn wenn in 1/10 Sekunde z.B. 30 Events kommen,
sollen z.B. 30 Sätze vorgesprungen werden ... das kann kein Mensch mehr lesen :!:

Warum also nicht 1/10 Sekunde warten, ob weitere kommen diese dann zusammenzählen und gleich 30 Sätze später einen anzeigen ?

Wichtig ist nur, dass ein Event alleine bei dir gar nichts macht (bei einem GUI Controll ist das anders).
Nur wenn deine Funktion oben etwas auslöst, passiert was.

Du fragst oben wohl ab wieviel Sprünge er je Wheel event machen soll ...

Code: Alles auswählen

oXbp:Wheel := { | aPos , aWheel | MainWheelDistance( aWheel[2] ) }
ich würde immer nur einen Satz am Anfang wählen, wenn er schneller dreht (mehr Events kommen,
Events und Sätze überspringen ...

Ähnliches Beispiel ist z.b. eine do while Schleife die 100000 man durchlaufen wird.
Die Anzeige der RECNO() bei jedem Satz dauert erheblich länger als keine Anzeige (das kann doppelt so lange dauern).
ABER keine Anzeige und die USER schalten den Rechner ab, also was tun ?

Nur jeden 100. oder 1000. Satz anzeigen !

Code: Alles auswählen

for x := 1 to 100000
    if x % 100
       @ say "Satz "+str(x,10)
    endif
    ...
next
In diese Richtung solltest du eine brauchbare Lösung finden !

Du könntest aber auch während deine Anzeige Funktion läuft, jeden weiteren Event ignorieren.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von AUGE_OHR »

Roland Gentner hat geschrieben:Dafür suche ich eine Lösung.
um den "Inhalt" eine Oueue zu löschen

Code: Alles auswählen

CLEAR TYPEAHEAD
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von brandelh »

das wirkt doch aber nur auf Tastatureingaben oder ?
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von Tom »

CLEAR TYPEAHEAD löscht nur Tastatureingaben, und ich würde bezweifeln, dass das in GUI-Anwendungen überhaupt nachvollziehbar funktioniert. Das ist eine Kompatibilitätsfunktion.

In GUI-Anwendungen gibt es weitere Events, nämlich Maus-Events (dazu gehört auch das Mausrad), u.U. Gesten, aber auch virtuelle Events, die alle möglichen Ursachen haben können - xbeP_Close ist so eines, dazu gehören aber auch sämtliche Ereignisse, die über spezielle Slots abgefangen werden können, also beispielsweise ItemSelected und ähnliche.

Man kann (anstehende) Events löschen, zum Beispiel mit einer vergleichsweise simplen Funktion (teilweise basierend auf Roger Donnays "DC_ClearEvents"):

Code: Alles auswählen

FUNCTION ClearEvents()
LOCAL nEvent := 1,mp1,mp2,oXbp
DO WHILE nEvent # 0
  nEvent := AppEvent(@mp1,@mp2,@oXpb,0.01) // Timeout ist wichtig, sonst wartet die Funktion auf das nächste Event
ENDDO
RETURN nil
In der Mausrad-Situation stellt sich natürlich die Frage, ab wann man Events löschen soll - wahrscheinlich geht es um Browses. In denen kann man den Wheel-Slot belegen und - je nach Richtung - Anfang oder Ende der Tabelle abfangen:

oBrowse:Wheel := {|aPos,aWheel,self|IF(aWheel[2]>0 .AND. AnfangderTabelle(),NixTun,Tabelle hochscrollen),Entsprechend für abwärts ... }


Man könnte natürlich auch in der Queue nachschauen, ob z.B. diversen Abwärtsbewegungen demnächst eine Aufwärtsbewegung folgt und dann bis dorthin löschen. Ist alles nicht ganz so einfach.

Außerdem kann man über die API setzen, um wie viele Zeilen das Mausrad scrollen soll. Achtung: Das gilt systemweit, also nicht nur für die App. Es entspricht der dazugehörigen Einstellung in der Systemsteuerung:

Code: Alles auswählen

FUNCTION SetzeScrollRadZeilen(nZeilen)
LOCAL nWheel
DEFAULT nZeilen TO 0
IF PCount()=0 // Abfrage
  nWheel := 0
  SystemParametersInfoA(104,0,@nWheel,0)
  MsgBox('Mausrad bewegt um '+LTrim(Str(nWheel))+' Zeilen')
ELSE
  SystemParametersInfoA(105,@nWheel,0,0x0002)
ENDIF
RETURN nil

DLLFUNCTION SystemParametersInfoA(nAction,nP1,@nP2,nWinInit) USING STDCALL FROM USERS32.DLL
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von brandelh »

Tom hat geschrieben:In der Mausrad-Situation stellt sich natürlich die Frage, ab wann man Events löschen soll - wahrscheinlich geht es um Browses.
In denen kann man den Wheel-Slot belegen und - je nach Richtung - Anfang oder Ende der Tabelle abfangen:
Nein, das hat er weiter oben erklärt, KEIN GUI Browse, nur Anzeige mit SAY ...
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von Tom »

Das Problem scheint mir in erster Linie darin zu bestehen, dass zig Mausrad-Events die Queue "bevölkern", man aber ein (neues) Event benötigt, um dem beikommen zu können. Es wäre ja kein Problem, zum Beispiel im SetInputFocus-Slot des SLE die Eventqueue zu löschen (siehe Beispiel), aber das SetInputFocus-Event bzw. das dazugehörige konkrete Event wird ja erst abgearbeitet, wenn das, was davor in der Eventqueue steht, berücksichtigt worden ist. Im Prinzip also müsste man in der Eventschleife selbst testen, ob sich darin x Mausrad-Events befinden, gefolgt von irgendeinem anderen, um dann also den Teil zu löschen, der das Mausrad betrifft, und das "andere" Event vorzuziehen. Das ginge, glaube ich, wäre aber nicht ganz trivial. Man müsste die Eventqueue auslesen und gleich wieder mit PostAppEvent() bestücken, es sei denn, sie enthält überwiegend Mausnachrichten der Qualität "Wheel" und später dann irgendein anderes. In diesem Fall schickt man die Wheel-Nachrichten nicht und löst das PostAppEvent() nur für die andere(n) Nachricht(en) aus.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von brandelh »

Hallo TOM,

nun bist du mal fällig ... lies doch bitte oben nach wo das Problem liegt ! :badgrin:

Er hat keine GUI, kein Browser, kein XbpSLE etc. ...

er zeigt nur mit @ SAY Datensätze an und ruft bei Maus Wheel Bewegungen seine Blättern Routinen auf.
Diese brauchen aber länger wie neue Events (zumindest auf einigen PCs), daher muss er verhindern, dass jeder Event an seine Blätter Routine weitergegeben wird.

Dazu hatte ich oben schon einige Anmerkungen hinterlassen ... :wink:
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von Tom »

Hallo, Hubert.

Ich glaube, ich habe durchaus verstanden, wo das Problem liegt. :wink:
Herzlich,
Tom
DelUser01

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von DelUser01 »

Hallo Tom

das Problem zeigt sich nur auf dem CRT mit @ x,y Say ...

Die Tabelle auf CRT mit SAY kann ich im selben Modul auch mit XbpBrowse darstellen. Beide greifen auf die selben DBFs zu und die Berechnungen hinter den Feldern sind die selben Funktionen.
Bei der Gegenüberstellung habe ich herausgefunden, dass XbpBrowse viel schneller ist und die Wheel-Events gefühlter maßen "fast in Realzeit" verarbeitet.
Der SAY-Durchlauf ist viel langsamer und benötigt Faktoren länger zur Darstellung.
Dadurch kommt der "Wheel-Event-Stau" zustande.

Bsp.: Test-Tabelle mit 10 Einträgen
Für den Durchlauf benötigt XbpBrowse 2 Sekunden (1. bis letzter Eintrag).
Mein SAY ca. 6 Sekunden.
Dabei werden die selbe Anzahl Wheel-Events verarbeitet.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von Tom »

Hallo, Roland.

Und wie verhält es sich, wenn Du in den entsprechenden Methoden für das Get ein ClearEvents() (s.o.) vornimmst?
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von brandelh »

Dein ClearEvents() killt aber alle Events, die weiter oben angedachte Lösung in seiner Funktion löscht nur die Mausrad Events für eine gewisse Zeit.
Dazu fehlt aber auch noch die Erläuterung ob es etwas gebracht hat ;-)

Eventuell wäre eine Kombination am Besten, die alle Mausradevents löscht, bis 0.1 bis 0.5 Sekunden KEINE solchen mehr eintreffen ...

Oder man muss die @ SAY Anzeige in einen eigenen Thread legen und solange der ACTIVE ist keine Mausradevents weitergeben ...

Grundsätzlich sind die @ SAY Anzeigen halt deutlich langsamer als vergleichbare Windowscontrols.
Gruß
Hubert
DelUser01

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von DelUser01 »

Hallo Tom

für die Steuerung wird AppEvent verwendet.
Dort wird bei Wheel-Event die Entsprechende Cursor-Richtung gewählt und ausgeführt.
Da kommt kein GET vor.

Wenn ich ClearEvent verwenden würde käme logischer Weise kein Event mehr durch. Deshalb habe ich den von Hubert vorgeschlagenen Zeitfilter schon probiert.
Vielleicht sollte ich einfach nicht mehr als z.B. 20 Wheel-Events nacheinander abarbeiten und dann eine kurze Zwangspause für Wheel-Events einbauen. Und in dieser Zwangspause alle Wheel-Events ignorieren.
DelUser01

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von DelUser01 »

Hallo Hubert
brandelh hat geschrieben:Dazu fehlt aber auch noch die Erläuterung ob es etwas gebracht hat
hatte Dir gleich mit dem auf Deinen Beitrag folgenden Beitrag geantwortet:
Hallo Hubert
auf die Idee das über die Zeit zu steuern bin ich nicht gekommen.
Habe es probiert - ist noch nicht die passende Lösung - aber die Richtung stimmt.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von AUGE_OHR »

brandelh hat geschrieben:das wirkt doch aber nur auf Tastatureingaben oder ?
CLEAR TYPEAHEAD
Der Befehl CLEAR TYPEAHEAD löscht alle Zeichen, die sich noch im Tastaturpuffer bzw. der Ereigniswarteschlange befinden.
KEYBOARD
Hinweis: Genau genommen handelt es sich bei dem Tastaturpuffer in Xbase++ um eine Event-Queue (Ereignis-Warteschlange), in der alle ankommenden Ereignisse gepuffert werden, unabhängig davon, ob sie von der Tastatur oder von der Maus ausgelöst wurden.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von brandelh »

JAIN,

KEYBOARD und Tastaturpuffer wirken wie der Namen schon sagt, nur auf die Tastatur(anschläge) ... bzw. Keyboard Events.

ABER ... du hast Recht, dass diese Beschreibung weitergeht und auch nicht als Kompatibilitätsfunktion bezeichnet wird. :?
CLEAR TYPEAHEAD

Beschreibung

Der Befehl CLEAR TYPEAHEAD löscht alle Zeichen, die sich noch im Tastaturpuffer bzw. der Ereigniswarteschlange befinden. Der Befehl wird meistens vor dem Aufruf von Funktionen verwendet, die selbständig auf eine Tastatureingabe reagieren. Dazu gehören Funktionen wie AChoice(), DbEdit() oder MemoEdit(). Durch CLEAR TYPEAHEAD wird in solchen Fällen sichergestellt, daß keine Tastencodes oder Ereignisse zur Verarbeitung anstehen.
Das ist also einen Versuch wert ;-)
Hinweis: Der Tastaturpuffer kann auch mit einem der Befehle SET TYPEAHEAD oder KEYBOARD gelöscht werden.
wärend der Text den Unterschied zu dem reinen Tastaturpuffer und KEYBOARD klarstellt.

Insgesamt muss man aber wohl sagen, dass die Umstellung des Fensters auf GUI Elemente eventuell weniger Mühe macht, als die Klimmzüge um das Mausrad zu begrenzen. ;-)
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von Tom »

Aus "CLEAR TYPEAHEAD" macht der Präprozessor "_Keyboard()". Aus "KEYBOARD ''" wird _Keyboard(''). Ist also dasselbe.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von brandelh »

Roland Gentner hat geschrieben:Hallo Hubert
brandelh hat geschrieben:Dazu fehlt aber auch noch die Erläuterung ob es etwas gebracht hat
hatte Dir gleich mit dem auf Deinen Beitrag folgenden Beitrag geantwortet:
Hallo Hubert
auf die Idee das über die Zeit zu steuern bin ich nicht gekommen.
Habe es probiert - ist noch nicht die passende Lösung - aber die Richtung stimmt.
ich bezog mich auf diesen ... http://www.xbaseforum.de/viewtopic.php? ... 890#p91852

wobei der Versuch vor der Anzeige eines Satzes und / oder sogar danach jeweils

CLEAR TYPEAHEAD

vorher erfolgen sollte, da er die Events tiefer abfängt.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Mausrad- (wheel-) Event-Signale stoppen?

Beitrag von AUGE_OHR »

brandelh hat geschrieben:KEYBOARD und Tastaturpuffer wirken wie der Namen schon sagt, nur auf die Tastatur(anschläge) ... bzw. Keyboard Events.
->
... unabhängig davon, ob sie von der Tastatur oder von der Maus ausgelöst wurden
ich muss allerdings sagen, das ich wie Tom, den Verdacht habe das dort was anderes falsch läuft ...
gruss by OHR
Jimmy
Antworten