sur le côté gauche de chaque ligne dans un Une telle barre n'existe pas dans le contrôle code> tmemo code>. p>
Ma question: p>
Comment supprimer cette barre de sélection, de sorte que le comportement du curseur soit le même que dans J'utilise Delphi 7 et il n'y a pas de propriétés code> trichedit code> pour contrôler ce comportement. P>
Il y a une valeur Trichedit code> Il y a un espace invisible dans lequel le curseur passe à une flèche de droite et lorsque vous cliquez sur la ligne entière, la ligne est sélectionnée. Il est facile de le voir lorsque l'alignement de texte de Trichedit est centré ou droit. Je crois que cet espace s'appelle une barre de sélection
TMEMO code>? P>
eco_selectionbar code> que vous pouvez utiliser avec le message
em_setOptions code>, mais il ajoute ou supprime une petite partie de la barre de sélection (utile que lorsque vous souhaitez ajouter une barre de sélection à un
trichedit code> qui a un alignement gauche). P>
3 Réponses :
Essayez d'utiliser SETWINDOWOWONG () CODE> Pour supprimer le style de fenêtre
ES_SELLECTION CODE> de la fenêtre de richedit, par exemple:
type
TMyRichEdit = class(TRichEdit)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
Procedure TMyRichEdit.CreateParams(var Params: TCreateParams);
Begin
inherited;
Params.Style := Params.Style and not ES_SELECTIONBAR;
End;
ES_SELLECTION La barre n'est jamais ajoutée aux styles, alors retirez ce qui ne change pas.
Il n'y a pas de moyen documenté pour désactiver ce comportement pour le contrôle d'édition riche. Il n'y a pas de styles, de messages ou de fonctions qui offrent un moyen de désactiver ce comportement. P>
Le style Pour le texte aligné centré et droit, la zone de sélection est toujours présente, quelle que soit la présence ou autrement du style Je pense que si vous inverserez l'ingénieur de la mise en œuvre de cette zone de sélection, vous seriez en mesure de supprimer le comportement en modifiant la procédure de la fenêtre de la commande d'édition riche. P> es_selectionbar code> que vous avez mentionné permet d'ajouter une petite marge lorsque le texte est laissé aligné. Le wrapper Delphi à la commande d'édition riche n'inclut pas le style
es_selectionbar code> de sorte que ce n'est pas comme si vous pouvez le supprimer car il n'est jamais là en premier lieu. P>
es_selectionbar code>. En fait, le style
es_selectionbar code> semble ne faire aucune différence au tout au comportement du contrôle du texte aligné centré et droit. P>
Merci à tout le monde pour vos réponses.
Comme il semble y avoir une manière "appropriée" de le faire, j'ai conçu la solution suivante: p> Ce n'est pas élégant du tout, mais cela fait le travail. p> Notez que ce code ne permet pas de double-cliquez sur la sélection complète de la ligne et ne gère pas la sélection de texte complète triple-clic. Pour cela, vous devrez probablement utiliser une classe d'intercepteurs par exemple. P> p>
+1 bonne question et je ne pense pas que vous ayez un moyen de désactiver ce comportement