IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

[D7][WIN32] Curseur visible ou invisible


Sujet :

Delphi

  1. #1
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 36
    Points
    36
    Par défaut [D7][WIN32] Curseur visible ou invisible
    Salut,
    je suis en train de faire un traditionnel TEdit pour saisir un nombre, et dans son fonctionnement il a deux états : un état dans lequel il affiche le nombre formatté, par exemple "1 000,00 €", et un autre état qui correspond à la saisie du nombre. Dans le premier état j'aligne le texte à droite en masquant le curseur et dans le deuxième j'aligne à gauche en affichant le curseur. Pour le changement d'alignement je suis aller voir dans la FAQ, et j'ai trouvé la méthode avec SetTextAlign et CreateParams. Mon problème est le suivant, quand j'utilise SetTextAlign le curseur ne réapparait pas toujours, alors que sans SetTextAlign le curseur disparaît et réapparait comme je veux. Un autre problème avec le curseur : quand je minimise ma fenêtre avec le TEdit qui a le curseur caché, quand je restaure ma fenêtre le curseur a réapparu.
    Comment faire pour changer l'alignement du texte tout en gérant l'affiche du curseur ? Et, comment faire pour que le curseur réapparaisse seulement quand je le veux ?
    Si vous avez pigé et si vous avez des idées, merci d'avance

    NB : j'utilise HideCaret et ShowCaret pour masquer et afficher le curseur.

  2. #2
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    J'ai pas trop pigé même après deux lectures ce que tu désires faire exactement, mais je sais par expérience d'expliquer est un art

    Bref, regarde ce p'tit bout de code en souhaitant qui tu puisses l'adapter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Edit1.SetFocus;
      Edit1.SelStart := length( Edit1.Text) + 1;
    end;
    Cela te donne le focus et déplace ton curseur en fin d'Edit.

    @+

  3. #3
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 36
    Points
    36
    Par défaut
    Bien essayé mais c pas ça
    En fait ce que je veux c'est :
    - quand je saisie un nombre dans mon TFloatEdit, il faut que l'alignement passe en LeftJustify et que le curseur apparaisse.
    - quand j'ai fini de taper, il passe en RightJustify et le curseur disparait.

  4. #4
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Je ne connais pas ce compo, mais as-tu essayé en OnChange de ton Edit de faire un appel à cette propriété et d'ensuite lui donner le focus ?

  5. #5
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Citation Envoyé par Herk77
    - quand je saisie un nombre dans mon TFloatEdit, il faut que l'alignement passe en LeftJustify et que le curseur apparaisse.
    - quand j'ai fini de taper, il passe en RightJustify et le curseur disparait.
    Moi, mes composants fonctionnent comme cela bon ce sont des TDBEdit mais le TMaskEdit doit fonctionner ainsi.

    Tout le problème c'est
    Citation Envoyé par Herk77
    - quand j'ai fini de taper
    Comment veux tu déterminer si tu as fini de taper ?
    N'est-ce pas là le rôle de la sortie du composant ?
    Quand tu entre dans ton composant c'est en théorie pour saisir et quand tu en sort c'est que tu as fini?

    Vraiment je ne vois pas ce que tu veux de plus?
    a+
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  6. #6
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonsoir,

    Comment veux tu déterminer si tu as fini de taper ?
    Et oui ; à part de valider en cliquant sur un bouton ou bien de savoir si le Edit comporte X caractères...

    @+

  7. #7
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 36
    Points
    36
    Par défaut
    j'ai pas dû être clair sur le fait que je suis en train de créer un composant : le TFloatEdit c'est ma création

    en fait je sais que la frappe est fini quand j'appuie sur entrée ou quand je sors du Edit : à ce moment là le texte doit être calé à droite avec le curseur invisible (si on est sorti c'est normal ) mais si on a appuyé sur entrée on est encore dans le Edit et là je cache le curseur avec HideCaret. Le problème c'est que le curseur ne réapparait pas quand je frappe à nouveau ou quand je rentre à nouveau dans le Edit, et ce même en utilisant ShowCaret.

  8. #8
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Oki, oki, je te prennais pour un tout débutant.

    Mais connais-tu Google ?

    j'ai pas dû être clair sur le fait que je suis en train de créer un composant : le TFloatEdit c'est ma création
    N'enfonces-tu pas une grande porte ouverte depuis longtemps ?
    http://www.programmersheaven.com/dow.../download.aspx

    Heuuuu, ou le doublonnage de nom de compos en VCL...

  9. #9
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 36
    Points
    36
    Par défaut
    Peu importe le TFloatEdit je cherche à savoir pourquoi le curseur ne réapparait pas avec le ShowCaret. Le TFloatEdit c'est un prétexte pour apprendre.

  10. #10
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Pourquoi il ne réapparaît pas au ShowCaret ?
    N'y aurait-il pas un rapport avec ce que me dit mon sdk ? :
    ShowCaret shows the caret only if the specified window owns the caret, the caret has a shape, and the caret has not been hidden two or more times in a row. If one or more of these conditions is not met, ShowCaret does nothing and returns FALSE.

    Hiding is cumulative. If your application calls HideCaret five times in a row, it must also call ShowCaret five times before the caret reappears.
    Juste une idée comme ça...
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  11. #11
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 36
    Points
    36
    Par défaut
    C'est plutôt en rapport avec le SetTextAlign puisque sans ça marche.
    Ou peut être un mélange des deux, mais apparemment personne ne connait le problème.

  12. #12
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Et si tu t'inspirais du code de ton composant, peut-être que la clé est dedans, non ?

Discussions similaires

  1. Souris (curseur visible repositionner)
    Par Belegkarnil dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 04/04/2006, 19h44
  2. groupe d'option visible ou invisible
    Par domik dans le forum Access
    Réponses: 2
    Dernier message: 01/03/2006, 13h51
  3. rendre visible ou invisible une texte box
    Par kuhnden dans le forum Access
    Réponses: 13
    Dernier message: 01/11/2005, 18h59
  4. basculer entre 2 blocks visible et invisible
    Par popressay dans le forum Oracle
    Réponses: 7
    Dernier message: 27/08/2004, 16h40
  5. rendre visible ou invisible une picture (icon)
    Par Robleplongeur dans le forum MFC
    Réponses: 3
    Dernier message: 18/05/2004, 12h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo