En cherchant dans le SDK Windows, il apparaît que seuls les
éditeurs multilignes peuvent avoir une justification pour leur
texte ( ES_LEFT, ES_CENTER, ES_RIGHT).
On peut donc simuler un TEdit avec justification à droite, en
utilisant un TMemo pour peu que :
-1 Il soit taillé de sorte qu'une seule ligne soit visible.
-2 Sa propriété MaxLength soit fixée pour éviter un retour à
la ligne automatique (qui cacherait
le contenu de la ligne) propre aux TMemo
-3 Intercepter toute frappe de touche ENTER (là aussi pour
éviter le retour à la ligne), etc
Pour ce point, activer KeyPreview à True au niveau de la fiche
recevant le pseudo TEdit (Memo1) et ajouter ce gestionnaire
d'évenement pour le OnKeyDown de la TForm.
procedure TFMain.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Memo1.Focused and (Key = VK_RETURN) then Key := $0000; end;
|
-------------------------------
Réponse au message :
-------------------------------
> Salut,
> Une petite astuce que j'avais utilisée :
>
> Placer un TEdit invisible sur la fiche et TStaticText visible auquel on donne l'apparence d'un TEdit (Color = clWindow et BorderStyle = sbsSunken) avec la propriété Alignment = taRightJustify (ce que tu cherches).
> L'événement OnClick du TStaticText est programmé pour rendre visible le TEdit (exactement au-dessus du TStaticText) et y placer le texte du TStaticText.
> L'évenement OnExit du TEdit est programmé pour faire l'inverse.
> Bon un peu lourdingue, mais tu vois le principe de la manip ?
>
