unit WinMouse: ShowCursor, etc

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Thandor
Beiträge: 153
Registriert: Sa 30. Jan 2010, 18:17
OS, Lazarus, FPC: Windows 10 64Bit/ lazarus 3.0 mit FPC 3.2.2 (32Bit + 64bit)
CPU-Target: 64Bit
Wohnort: Berlin

unit WinMouse: ShowCursor, etc

Beitrag von Thandor »

Hi,

Ich versuche gerade die Unit WinMouse von http://math.ubbcluj.ro/~sberinde/wingraph/ zu modivizieren.
Und zwar wollte ich eine Funktion einbauen zum

- Mauszeiger verstecken
- Mauszeiger Laden

Dafür gibt es ja von der Windows API die Funktionen ShowCursor und LoadCursor. Nun gut also die schon exsistierend procedure SetMouseXY angeschaut und folgende Proceduren definiert:

Code: Alles auswählen

procedure ShowMouse (boShow : Boolean);
var lpRect: RECT;
begin
  if GraphEnabled then
  begin
    GetWindowRect(GraphHandle,lpRect);
    if (GraphHandle = GetForegroundWindow) then with lpRect do
      ShowCursor (boShow);
  end;
end;
 
procedure LoadMouseCursor (CursorName : PChar);
var lpRect: RECT;
begin
  if GraphEnabled then
  begin
    GetWindowRect(GraphHandle,lpRect);
    if (GraphHandle = GetForegroundWindow) then with lpRect do
      LoadCursor (graphHandle, CursorName);
  end;
end;
aber leider Functioniert das nicht, es passiert einfach nichts. Hier noch mein Testprogramm:

Code: Alles auswählen

program Mousetest;
Uses WinGraph, WinMouseMod, WinCrt;
 
Var Mode, Driver : SmallInt;
 
begin
  Driver := NOPALETTE;
  Mode   := m800x600;
  InitGraph (Driver, Mode, '');
 
  ShowMouse (FALSE);
  LoadMouseCursor ('C:\Windows\Cursors\aero_unavail_xl.cur');
  Repeat
  until CloseGraphRequest;
 
  CloseGraph;
end.
Es wird werder der Mauszeiger versteckt, noch ein anderer Mauszeiger geladen. Ich kenne mich mit der Windows API leider nicht so gut aus.
Was mach ich falsch ?

MfG
Thandor

PS: Benutze Lazarus (FPC 2.2.4) und Window 7 64 Bit

Benutzeravatar
theo
Beiträge: 10895
Registriert: Mo 11. Sep 2006, 19:01

Re: unit WinMouse: ShowCursor, etc

Beitrag von theo »

Ich kenne deine Libs nicht, aber normalerweise geht das so:

Screen.Cursor:=CrNone;

Thandor
Beiträge: 153
Registriert: Sa 30. Jan 2010, 18:17
OS, Lazarus, FPC: Windows 10 64Bit/ lazarus 3.0 mit FPC 3.2.2 (32Bit + 64bit)
CPU-Target: 64Bit
Wohnort: Berlin

Re: unit WinMouse: ShowCursor, etc

Beitrag von Thandor »

Hi,

danke für deine Antwort, aber leider hilft mir das nicht so wirklich weiter.Denn eine Screen-Klasse kann ich leider nicht lokalisieren, auch nichts unter einem anderen Namen. Wie müsste denn der Datentype für Screen lauten? So würde es sich leichter gestallten sowas zu finden.

Ich habe jedoch soetwas gefunden:
var graphHandle : HWND;

ich denke, dass mich das ewentuell weiter bringen könnte ?
ich habe von der Windows-Api leider nicht so viel ahnung ich weiß nur, das HWND ein Type für das Handel eines Fensters ist.

MfG
Thandor

Antworten