2016-08-21 2 views
1

J'utilise le TRichMemo avec une couleur foncée pour la propriété Color. Je peux changer la couleur de la police en blanc, mais je n'arrive pas à trouver un moyen de changer la couleur du caret clignotant pour quelque chose de plus frappant (voir capture d'écran) Le caret se trouve entre les 2 "l" de Hello. est gris foncé, mais pas blanc).Comment changer la couleur du caret dans un TRichMemo (Lazarus lcl)

Existe-t-il un moyen simple de régler la couleur du caret pour un TRichMemo? enter image description here

Merci!

Répondre

2

Facile? Bien en quelque sorte.

J'avais un problème similaire il y a des années et la réponse que j'ai utilisée était un curseur personnalisé.

Cette solution fonctionne en Delphi et devrait en théorie fonctionner dans Lazarus (mais voir http://forum.lazarus.freepascal.org/index.php?topic=32861.0), mais dans tous les cas, elle vous aidera peut-être à trouver votre solution finale.

Le processus en bref est:

1) vous avez besoin d'un fichier curseur, mycursor.cur. Vous pouvez en trouver un sur le net, dans le royaume de Delphes, il y avait un utilitaire qui vous permettrait d'en faire un.

2) Créez un fichier texte comme mycursor.rc (rc est un fichier de ressources non compilé).

3) Dans cet exemple, il aura une ligne: myCUR CURSOR "mycursor.cur", tous ces fichiers doivent se trouver dans le dossier principal du programme.

4) Cela doit être compilé dans un fichier .res (mycursor.res), voir http://wiki.freepascal.org/Lazarus_Resources, en Delphi ce fichier est/était brcc32.exe. Le lien ci-dessus explique le processus pour Lazarus, je ne l'ai pas testé.

5) Vous devez ensuite mettre une ligne dans votre code, la forme principale est ok, comme ceci:

{$ R mycursor.res} style delphi, (fichier de ressources précompilé)

{$ R mycursor.rc} style Lazarus (il sera/devrait être compilé pour vous). Presque fini.

6) Maintenant en vente FormCreate:

(Delphi :) screen.cursors [1]: = LoadCursor (hInstance, pchar ('myCUR')); (utilisez le nom que vous lui avez donné dans le fichier rc.) Les curseurs idx 1 à 32000 sont définissables par l'utilisateur, mais ici vous devrez jouer autour de Lazarus pour le gérer un peu différemment, voir encore ce lien ci-dessus).

7) Enfin, affectez le curseur à votre contrôle: Richedit1.Cursor: = 1;

HTH.