Recuperation des curseurs windows

Contenu du snippet

Voici une petite source pour récupérer les curseurs Windows en cours d'utilisation sous la forme HICON.

Source / Exemple :


const
    // OCR_HELP non reconnu par Delphi contrairement à IDC_HELP
    OCR_HELP = 32651;

    // OCR_PEN et IDC_PEN non reconnus par Delphi
    IDC_PEN = MakeIntResource(32631);
    OCR_PEN = 32631;

...

// Fonction de récupération du curseur système en cours
function GetSysCursor(Index: integer): HICON;
var
    pCur: PChar;
begin
    Case Index of
        1 : pCur := IDC_HELP;
        2 : pCur := IDC_APPSTARTING;
        3 : pCur := IDC_WAIT;
        4 : pCur := IDC_CROSS;
        5 : pCur := IDC_IBEAM;
        6 : pCur := IDC_PEN;
        7 : pCur := IDC_NO;
        8 : pCur := IDC_SIZENS;
        9 : pCur := IDC_SIZEWE;
        10 : pCur := IDC_SIZENWSE;
        11 : pCur := IDC_SIZENESW;
        12 : pCur := IDC_SIZEALL;
        13 : pCur := IDC_UPARROW;
        14 : pCur := IDC_HAND;
    else
        pCur := IDC_ARROW;
    end;
    Result := LoadCursor(0, pCur);
end;

Conclusion :


C'est bien mais pour quoi faire me direz-vous! Et bien avec ceci vous pouvez tout simplement afficher le curseur dans un TImage ou encore, et c'est ce qui m'intéressait le plus, remplacer cette "audieuse main" delphi par celle de Windows dans vos programmes.

Dans votre TForm.OnCreate ajoutez ceci:

// Remplacement du curseur Delphi crHandPoint par OCR_HAND Windows
Screen.Cursors[-21] := GetSysCursor(14);

ATTENTION, ceci ne fonctionne que sous Windows 2000 ou XP (sources MSDN) parce qu'OCR_HAND n'est pas reconnu sous les autres versions de Windows.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.