Einzelnen Beitrag anzeigen

blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#50

Re: Maus sperren während Tastatureingabe

  Alt 20. Nov 2008, 21:26
Hallo.

Ich habe jetzt wieder die Kontrolle der Sperrzeit über die Host-App laufen lassen.

Das Strg und Shift Problem ist nun auch gelöst.

Jetzt habe ich nur noch das große Problem mit dem Cursor.

Ist die Maustaste gesperrt, soll der Cursor crNo zeigen (logischerweiße für alle Anwendungen). Und das scheint gar nicht so einfach zu funtkionieren.

Folgender Code, den ich so ähnlich im Internet fand:

Delphi-Quellcode:
var
  cursor_backup: HCursor;
begin
  cursor_backup := GetCursor;
  SetSystemCursor(Screen.Cursors[crNo], OCR_NORMAL);

  // ...

  SetSystemCursor(cursor_backup);
end;
Das große Problem: SetSystemCursor verändert direkt den Zeiger und überschreibt diesen. Wenn die Anwendung abstürzt, dann hat der Benutzer ein schönes crNo als Standardmauszeiger - das hat irgendwie was . Das cursor_backup wird übrigens auch nicht zurückgespielt. Der Cursor bleibt auf crNo.

SetCursor() verändert hingegen nur innerhalb der Anwendung. Ist also auch nichts. Tippe ich im Notepad, bleibt der Cursor beim Windows-Standard?

Außerdem habe ich den Effekt, dass ich innerhalb der WndProc den Mauszeiger nicht so einfach verändern kann, da er durch die anderen Ereignisse in kürzester Zeit wieder rückgängig gemacht wird.

Gibt es einen Befehl, der bewirkt, dass ich Systemweit auf OCR_NO umstelle? Ich denke, OCR_NORMAL zu überschreiben ist ein falscher und unsauberer Weg.

Thema http://www.delphipraxis.net/internal...ct.php?t=23787 zeigt bisher keine Lösung - das kann doch irgendwie nicht sein, dass Microsoft nicht daran gedacht hat, den Mauszeiger global zu verändern, ohne das man alle Standardtypen überschreibt...

// Edit: Da das ursprüngliche Problem mit dem Programm gelöst ist und das crNo-Mauszeiger-Problem unabhängig behandelt werden kann, habe ich das Thema als gelöst markiert und frage in den jeweiligen Themen weiter. Ich werde den Automatic-Touchpad-Locker bald OpenSource veröffentlichen, sobald ich eine schöne GUI geschaffen habe. Ich danke euch sehr herzlich für die Unterstützung.



Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat