RichEdit, racourcit clavier et Menu ! [Delphi] - Programmation
Marsh Posté le 30-12-2001 à 10:39:25
Moi, pour mes soft, je me suis refais les fcts de couper/copier/coller qui marchent pour tous les composants qui contiennet du texte (memo, edit, richedit, combobox) etc...
[edtdd]--Message édité par rufo--[/edtdd]
Marsh Posté le 30-12-2001 à 12:56:02
Dans ton menu les raccourcis sont des raccourcis standards (Ctrl+C,....) ?
Marsh Posté le 30-12-2001 à 20:14:04
rufo : le Suppr devrais avoir un fonctionnement classique, cad effacer le texte sélectionné si il y en as un ou supprimer le caractère suivant celui ou est le currseur si il n'y as pas de texte sélectioné.
Le pb est que j'ai facilement reprogrammé la pluspart des fonctions (copytoclipboard, pastefromclipboard...) mais le Suppr est pas simple... Surtout si le currseur est en fin de ligne et qu'il doit faire remonter la ligne suivante...
[SDF]Poire : vi c la le pb ! Si je ne met pas de raccourcit sur les menus tout fonctionne exactement comme je le voudrais (c intégré au composant quoi...), par contre quand j'associe le raccourcit, c celui-ci qui prend la main et c pas cool...
Marsh Posté le 30-12-2001 à 20:19:26
et si lors de l'action de la touche de raccourci tu envoie le pressage de touche "suppr" via un message Windows au TMemo/TEdit, ça marche pas ? (note que si ça marche pas ça fera peut-être une boucle sans fin , mais tu peux tj essayer)
Marsh Posté le 30-12-2001 à 21:05:52
Bruce a écrit a écrit : [SDF]Poire : vi c la le pb ! Si je ne met pas de raccourcit sur les menus tout fonctionne exactement comme je le voudrais (c intégré au composant quoi...), par contre quand j'associe le raccourcit, c celui-ci qui prend la main et c pas cool... |
C ptet pas cool mais C 1 peu normal.... en fait tu veux jute qu'il y ait l'affichage du raccourci dans le menu mais qu'il ne fasse rien ?
(G un doute sur le fait que G bien tout compris...)
Marsh Posté le 30-12-2001 à 22:28:11
antp a écrit a écrit : et si lors de l'action de la touche de raccourci tu envoie le pressage de touche "suppr" via un message Windows au TMemo/TEdit, ça marche pas ? (note que si ça marche pas ça fera peut-être une boucle sans fin , mais tu peux tj essayer) |
Non, ça c sûr ça marchera pas
Marsh Posté le 30-12-2001 à 22:28:46
[SDF]Poire a écrit a écrit : C ptet pas cool mais C 1 peu normal.... en fait tu veux jute qu'il y ait l'affichage du raccourci dans le menu mais qu'il ne fasse rien ? (G un doute sur le fait que G bien tout compris...) |
Tout à fait ! C exactement ça... Il y as certainement un moyen d'afficher le raccourcit sans qu'il prenne la main... non ?
Marsh Posté le 30-12-2001 à 22:35:57
Bruce a écrit a écrit : Tout à fait ! C exactement ça... Il y as certainement un moyen d'afficher le raccourcit sans qu'il prenne la main... non ? |
Tout est possible Je te cherche ça...
Marsh Posté le 30-12-2001 à 22:38:57
[SDF]Poire a écrit a écrit : Tout est possible Je te cherche ça... |
Marci !
Marsh Posté le 30-12-2001 à 22:42:21
j'ai trouvé !
bon c'est vraiment de la bidouille, mais tu peux tj essayer :
déjà n'associe aucun shortcut à l'item (puisque non nécessaire)
sur ta form, tu fais alt+f12 ("view as text" ), là tu cherches la déclaration de ton item ou action (si tu utilises des actionlist, ce qui est nettement plus propre que de coder directement tout dans les tmenuitem).
ensuite tu as par ex:
object aaa1: TMenuItem
Caption = 'Copier CTRL+V'
(ici donc le ctrl+v est pas aligné, il est collé au label)
suffit de changer ça en :
object aaa1: TMenuItem
Caption = 'Copier'#9'CTRL+V'
et là le ctrl+v se retrouvera aligné avec les autres shortcuts
[edtdd]--Message édité par antp--[/edtdd]
Marsh Posté le 30-12-2001 à 22:53:00
antp a écrit a écrit : j'ai trouvé ! bon c'est vraiment de la bidouille, mais tu peux tj essayer : déjà n'associe aucun shortcut à l'item (puisque non nécessaire) sur ta form, tu fais alt+f12 ("view as text" ), là tu cherches la déclaration de ton item ou action (si tu utilises des actionlist, ce qui est nettement plus propre que de coder directement tout dans les tmenuitem). ensuite tu as par ex: object aaa1: TMenuItem Caption = 'Copier CTRL+V' (ici donc le ctrl+v est pas aligné, il est collé au label) suffit de changer ça en : object aaa1: TMenuItem Caption = 'Copier'#9'CTRL+V' et là le ctrl+v se retrouvera aligné avec les autres shortcuts |
Une tabulation ? T sur que ça marche avec n'importe quelle longueur pour les titres des menus ?
edit : Effectivement ça marche... Mais C pas super pratique nivo conception....
[edtdd]--Message édité par [SDF]Poire--[/edtdd]
Marsh Posté le 30-12-2001 à 23:09:15
ReplyMarsh Posté le 30-12-2001 à 23:15:39
Bon, en effet ça marche mais voilà cela me pose un autre pb que vous ne pouviez pas deviner
Voilà, le but de cette app, c de faire un guide (tutorial) de Delphi, et je suis parti dans l'idée de faire un "clone" de WordPad en quelques cours. Bref pas simple d'expliquer aux newbies qu'il faut mettre un #9 pour que ça marche...
Donc autre question, existe-t-il un moyen de re-coder le Suppr sans se prendre la tête ? Un peu comme les autres fonctions qui sont super simples à faires !
Marsh Posté le 30-12-2001 à 23:27:46
Bruce a écrit a écrit : Bon, en effet ça marche mais voilà cela me pose un autre pb que vous ne pouviez pas deviner Voilà, le but de cette app, c de faire un guide (tutorial) de Delphi, et je suis parti dans l'idée de faire un "clone" de WordPad en quelques cours. Bref pas simple d'expliquer aux newbies qu'il faut mettre un #9 pour que ça marche... Donc autre question, existe-t-il un moyen de re-coder le Suppr sans se prendre la tête ? Un peu comme les autres fonctions qui sont super simples à faires ! |
Essaye CustomRichEdit.SelText := '';
Marsh Posté le 31-12-2001 à 02:54:37
[SDF]Poire a écrit a écrit : Essaye CustomRichEdit.SelText := ''; |
Non, là tu oublie le plus dur, effacer le texte sélectionné c super simple :
Code :
|
Mais là ou ça deviens plus complexe c quand tu n'as pas de texte sélectionné auquel cas le Suppr efface le caractère suivant la position du cursseur et si il est en fin de ligne supprime le retour chariot...
Marsh Posté le 31-12-2001 à 09:45:37
Bruce a écrit a écrit : Non, là tu oublie le plus dur, effacer le texte sélectionné c super simple :
|
ben, il suffit de récupérer la position du curseur (selstart pour avoir la position en nb de caractères, CaractPos.x et .y pour avoir la ligne et la colonne) et après, tu utilises en fct de la position du curseur un Copy(chaine, debut, long) adhéquat
Marsh Posté le 31-12-2001 à 09:46:48
rem : si tu as mis à true la propriété wrap, ça va être plus simple pluis que tu pourras remonter toute la ligne suivante et non pas le mot s'il tient sur la ligne précédente...
Marsh Posté le 31-12-2001 à 11:02:37
if RichEdit1.SelLength = 0 then
RichEdit1.SelLength := 1;
RichEdit1.ClearSelection;
[edtdd]--Message édité par [SDF]Poire--[/edtdd]
Marsh Posté le 31-12-2001 à 16:22:18
[SDF]Poire a écrit a écrit : if RichEdit1.SelLength = 0 then RichEdit1.SelLength := 1; RichEdit1.ClearSelection; |
Bravo ! Excellent, ct tout con et j'y avais même pas pensé
Marsh Posté le 01-01-2002 à 04:48:42
Bruce a écrit a écrit : Bravo ! Excellent, ct tout con et j'y avais même pas pensé |
Bonne Année !!!
Marsh Posté le 30-12-2001 à 03:34:41
Voilà, j'ai un petit problème et j'arrive pas à trouver de solution élégante...
J'ai un composant RichEdit que j'utilise comme une sorte de WordPad. J'ai également créé un menu "Edition" assez classique mais au moment ou j'ajoute des racourcit claviers cela ne vas plus du tout.
J'explique, comme vous le savez par défaut le composant gère tout seul les évènements Ctrl+X, Ctrl+C, Ctrl+V, Suppr et autres Ctrl+A (couper, copier, coller, effacer et sélectionner tout). Seulement voilà, quand dans mon menu j'associe un élément du menu avec un racourcit clavier, Delphi prend celui-ci en compte et donc cela ne marche plus.
J'ai réussit sans mal à re-faire la majorité des fonctions puisque Delphi et le composant RichEdit comportent les procédures adéquat (telles que SelectAll et CopyToClipboard), mais pour le Suppr c'est la merde ! Je suis certain qu'il y as un moyen de pouvoir assigner un racourcit clavier à un menu sans que celui-ci prennent le "pouvoir"...
Merci d'avance.
---------------
A+++ Bruce - http://www.bheller.com