![]() |
Mauszeiger ausblenden (per Hook)
Vor einigen Tage habe ich ja schon gefragt wie man den mauszeiger in seiner gesammten Anwendung (also auch den ganzen unterforms) ausblendet und das ergebnis war das man mir einen mousehook nahegelegt hat. Jetzt hab ich meine Mausereignisse threadlokal gehookt und steh nun vor dem problem welche message ich rausfiltern muss bzw. wie es überhaupt funktioniert den mauszeiger über hook nicht nicht zeichnen zu lassen.
|
Re: Mauszeiger ausblenden (per Hook)
Wer hat denn den Quark erzählt? Das einzige was ginge, sobald der Hook ne Nachricht bekommt, bekommt deine Anwendung ne Message den Mauszeiger zu verstecken. Ansonsten dienen Fensterhooks zur Unterbrechung der Nachrichtenverarbeitung oder einfach um Informationen über die Nachrichtenverarbeitung zu sammeln. Sie können nicht aufgerufen werden oder aktiviert werden o.ä.
Ich könnte mir noch vorstellen, daß SystemParametersInfo() dir so eine Möglichkeit bietet ... aber wahrscheinlich eher nicht. Mauszeiger verstecken geht eben aus gutem Grund nur pro Fenster ;) |
Re: Mauszeiger ausblenden (per Hook)
Moin!
Reicht nicht auch einfach ein
Delphi-Quellcode:
im Code?
Screen.Cursor := crNone
MfG Muetze1 |
Re: Mauszeiger ausblenden (per Hook)
Pro Fenster ja, wie gesagt.
|
Re: Mauszeiger ausblenden (per Hook)
Moin!
Zitat:
Und selbst wenn es nur für's Fenster gilt - ist ja nicht so schwer eine Iteration über alle Forms des Application Objektes zu machen... MfG Muetze1 |
Re: Mauszeiger ausblenden (per Hook)
Hallo,
Delphi-Quellcode:
gilt nur für das Fenster in welchen der Code ausgeführt wurde. Selbst wenn in dem Fenster ein anderes Fenster per OLE eingebunden ist (z.B. TWebbrowser) funktioniert dieser Code für dieses eingebundene Fenster nicht mehr.
screen.cursor := crNone
Nochmal zur Erklärung
Delphi-Quellcode:
gilt für die jeweilige Komponente (in dem Fall Form1)
cursor := crNone
Delphi-Quellcode:
gilt für die gesamte Form (nicht die gesamte Applikation) inklusive aller Komponenten (mit Ausnahmen -> siehe oben)
screen.cursor := crNone
MfG Hitzi |
Re: Mauszeiger ausblenden (per Hook)
Probier mal:
Delphi-Quellcode:
ShowCursor(false);
|
Re: Mauszeiger ausblenden (per Hook)
Das funktioniert über das gesamte Programm ohne Ausnahme :thuimb:
MfG Hitzi |
Re: Mauszeiger ausblenden (per Hook)
Jipp, danke *knuddel* Genau das hab ich gesucht - wie kann ich nur danken *freu*
|
Re: Mauszeiger ausblenden (per Hook)
Kauf mir'n Eis 8)
|
Re: Mauszeiger ausblenden (per Hook)
Okay, pro Prozess nicht pro Fenster, mein Fehler. Die Tatsache, daß es jedoch nicht systemweit ging, sollte u.a. veranschaulichen, daß ein Hook wohl kaum die Lösung sein kann.
|
Re: Mauszeiger ausblenden (per Hook)
Das eis ist doch geschmolzen bis die post es gebracht hat
|
Re: Mauszeiger ausblenden (per Hook)
ShowCursor(false);
Form1.cursor := crNone; gehen bei mir, nur wenn ich in meinen Button dann die Umkehrung ShowCursor(true); Form1.cursor := crDefault; in eine selbstgeschrieben Procedure einbaue klappt es nicht... er zeigt den Mauszeiger nicht wieder an... es klappt nur wenn ich persönlich auf einen Button klicke.. wenn ich es "digital" per Button1.Click(Sender); mache dann gehts nicht mfg Logic |
Re: Mauszeiger ausblenden (per Hook)
geht es wenn du
Delphi-Quellcode:
und
Form1.cursor := crNone;
Delphi-Quellcode:
weg lässt auch nicht?
Form1.cursor := crDefault;
|
Re: Mauszeiger ausblenden (per Hook)
Zitat:
|
Re: Mauszeiger ausblenden (per Hook)
Also bei mir gehts. Hab folgendes gemacht
Delphi-Quellcode:
Was ich auch festgestellt hab ist das wenn ich "ShowCursor(False)" 3 mal aufrufe, dann auch 3 mal "ShowCursor(True)" aufrufen muss damit er wieder sichtbar wird. Vielleicht liegt ja da irgendwo dein Fehler.
procedure TForm1.Button1Click(Sender: TObject);
begin ShowCursor(False); Timer1.Enabled := True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.Enabled := False; ShowCursor(True); end; |
Re: Mauszeiger ausblenden (per Hook)
Ich habe bei mir jetzt auch einen Termin eingebaut... genau mit den gleichen Befehlen, nur er will einfach nicht. Es geht irgendwie nur, wenn ich "persönlich" auf den Button klicke... gibts noch eine dritte Möglichkeit den Mauszeiger zu verstecken?
|
Re: Mauszeiger ausblenden (per Hook)
Hast du bei dem Timer im Objectinspektor auch Enabled auf "False" gesetzt sonst wird beim starten des Programmes ja schon das erste mal die OnTimer-Procedure nach der entsprechenden Zeit aufgerufen.
Oder versuch das ganze einfach nochmal in einem neuen Project. |
Re: Mauszeiger ausblenden (per Hook)
Zitat:
Zitat:
|
Re: Mauszeiger ausblenden (per Hook)
*lol* na wenigstens hast du den Fehler gefunden und hast dein Ziel jetzt erreicht.
|
Re: Mauszeiger ausblenden (per Hook)
ja, nervt nur immer, wenn man dadurch Zeit verliert....
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz