Bonjour à toutes et à tous,
Dans un programme, je voudrais utiliser des curseurs différents de ceux inclus (une main ouverte et une main fermée par exemple). Disposant de ces deux curseurs, je les ai placés dans un fichier ressource "CurseursH.lrs" que j'ai inclus à mon unité. Dans cette dernière, le nouveau curseur devrait apparaître lorsque j'appuie sur la souris et revenir au curseur par défaut lorsque je la relâche.
Lorsque j'appuie sur la souris :
- sous Windows : le curseur disparaît,
- sous Ubuntu : le curseur par défaut reste affiché.
Si je remplace Cursor par Screen.Cursor, le problème est le même.
J'utilise Lazarus 0.9.30. Voici mon unité de test. Le fichier "CurseursH.lrs" est joint à ce message.
Avez-vous une idée du problème.
Merci de votre aide.
Pierre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, LResources; type { TForm1 } TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { private declarations } crHandFlat: TCursor; public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin crHandFlat:= LoadCursorFromLazarusResource('HANDFLAT'); end; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Cursor:= crHandFlat; end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Cursor:= crDefault; end; initialization {$I CurseursH.lrs} end.
Partager