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 :

OnChange d'un RicHedit récalcitrant


Sujet :

Delphi

  1. #1
    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 OnChange d'un RicHedit récalcitrant
    Bonjour,

    Pour simplifier à l'extrême : j'ai créé une seconde Form avec dessus une simple CheckBox.

    Sur ma Form1 j'ai un RichEdit et sur le OnChange de ce RichEdit j'ai en tout et pour tout comme code ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if Form2.CheckBox1.Checked then beep;
    Hé bien le pointeur du compilo ne digère pas cette ligne.

    La Form2 est dispo directement sans créate pourtant.

    Pourtant également, lorsque je teste sur une maquette avec Form principale et Forme secondaire, le même code ; ça passe les doigts dans le nez (ce qui est normal).

    Pour entrer un peu plus en détails dans ce problème :
    - Le projet en question possède plusieurs dizaines de Form (dispo ou en create)
    - Autour des 7 000 lignes.
    - Possède certaines biblio et compos spéciaux

    Bref, je ne suis plus tout à fait un débutant.

    J'ai passé des heures dessus pour en arriver à ce constat :
    - J'ai viré et testé ensuite toutes les fiches secondaires.
    - J'ai viré tout le code petit à petit pour tenter de traquer le bug...
    - J'en suis arrivé à n'obtenir au final que ma Form principale, avec en tout et pour tout un RichEdit dessus + code ci-dessus en OnChange.
    - Essai à la compilation = compilo me lance toujours la même rangaine !
    - Je vire le RichEdit et le replace contre un autre, là je compile et tout redevient normal sans message d'erreur.
    - Choutte me dis-je ; je vais "changer/échanger" de RichEdit en Form principale et je vais certainement retomber sur mes pattes.

    Mais manque de bol, le message d'erreur est toujours présent.

    J'ai même à plusieurs reprise supprimé les fichiers "inutiles" de ce projet afin qu'elles se recréent en compil.

    Mais rien n'y fait, pourtant j'ai tout viré d'inutile en code et en Uses !

    Bien entendu si je neutralise le OnChange de ce RichEdit, ça se compile normalement.

    En plus j'avais un jvRichEdit, je pensais que je tenais le coupable, ben non, en maquette, avec le code qu'il faut ; ce dernier n'y est pour rien.

    Bref, les bras m'en tombent, j'y trave que dalle, je viens vers vous pour savoir si vous êtes déjà tombé sur un cas pareil. Sinon je crois que je vais en dévorer de rage mon mulot

    Merci d'avoir lu et merci de vos idées

    (Vista Premium en Delphi7 Perso)

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Salut;
    As-tu pensé à ajouter unit2 à unit1 dans la partie des uses?

    Bon codage.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  3. #3
    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
    Citation Envoyé par Kelloucheaeh Voir le message
    Salut;
    As-tu pensé à ajouter unit2 à unit1 dans la partie des uses?

    Bon codage.
    Salut,

    Voui, voui, des fois j'y pense

    Mais si je ne l'avais pas fait, j'aurais eu un autre message d'erreur ; d'ailleurs le compilo ne serait même pas parti.

    Je viens de ruser en tentant sur le OnSelectionChange du RichEdit = idem le message d'erreur

    @+

  4. #4
    Invité1
    Invité(e)
    Par défaut ça marche chez moi
    bonjour,

    j'ai essayé chez moi et ça marche tres bien;

    puis je savoir ce que dit ce message d'erreur ,

    bonne chance

  5. #5
    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
    Citation Envoyé par samy larson Voir le message
    bonjour,

    j'ai essayé chez moi et ça marche tres bien;

    puis je savoir ce que dit ce message d'erreur ,

    bonne chance
    Salut Samy, merci de te pencher sur mon cas. Chez moi aussi ça marche impec ; sauf sur mon projet.

    Tu as lu en travers

    Quant au message d'erreur ; si seulement j'en avais un... mais j'ai seulement le pointeur de lignes du compilo qui se balade au gré de mon F7

    @+

  6. #6
    Invité1
    Invité(e)
    Par défaut BEEP
    avez vous essayé de changer la fonction 'BEEP' par autre chose, un message qui apparait par exemple, peut etre c'est elle qui cause le probleme

  7. #7
    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
    Ben non pas spécialement, vu que même le compilo n'est pas capable de m'en donner la raison.

    @+

  8. #8
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 844
    Points : 11 274
    Points
    11 274
    Billets dans le blog
    6
    Par défaut
    quel est le problème : tu nous dis qu'il y a une erreur, mais pas laquelle !
    - il n'entre pas dans le OnChange quand il faudrait ?
    - tu ne le vois pas passer par la ligne en pas-à-pas ?

    pour ce dernier point, il m'arrive parfois de feinter... style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if Form2.CheckBox1.Checked 
    then begin
      Beep;  // mettre le point d'arrêt sur cette ligne
    end;
    Delphi 5 Pro - Delphi 10.4 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  9. #9
    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
    Citation Envoyé par tourlourou Voir le message
    quel est le problème : tu nous dis qu'il y a une erreur, mais pas laquelle !
    - il n'entre pas dans le OnChange quand il faudrait ?
    - tu ne le vois pas passer par la ligne en pas-à-pas ?

    pour ce dernier point, il m'arrive parfois de feinter... style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if Form2.CheckBox1.Checked 
    then begin
      Beep;  // mettre le point d'arrêt sur cette ligne
    end;
    Tu penses bien que je l'ai déjà fait et... ça plante sec direct sans plus d'explication. Mais à la lecture du message ci-dessous ; c'est logique car si appel d'une fiche qui n'existe pas encore...

    Quel est le problème ?

    Je crois que je viens de le débusquer ce coquin

    En fait et je ne sais pour quelle raison, la forme secondaire lors de l'évènement OnChange du RichEdit n'est PAS encore créée
    (Pourtant cette Form secondaire est en "Fiches créées automatiquement")

    Je peux l'affimer via deux méthodes.

    1. Celle-ci juste en OnChange du RichEdit Form principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Application.FindComponent('Toto') <> Nil  Then
      ShowMessage('La form existe')
      else
      ShowMessage('La form n''existe pas');
    2. En "Source", si je place ma forme secondaire avant la principale ; c'est ok.

    Mais hyper curieux tout de même ça alors...

    Voilà, une étape de franchie, je vais voir demain plus clair et vous donner des news positives j'espère.

    Je vais tenter de ruser par exemple en "attendant" que la form secondaire soit créée pour "libérer" le OnChange du RichEdit de ma Form principale.

    Dingue non ?

    @+

    =================
    Edit : mon message ci-dessus vient de me donner l'idée

    Une simple petite ligne, juste au dessus du code interrogeant la CheckBox de la Form Secondaire et hop = affaire résolue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      If Application.FindComponent('Toto') = Nil  Then exit;
    Bonne nuit à Tous

  10. #10
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 844
    Points : 11 274
    Points
    11 274
    Billets dans le blog
    6
    Par défaut
    maintenant on sait que le pb était un plantage, ce que tu n'avais pas encore dit !

    l'explication doit être que le OnChange du RichEdit de ta Form1 est déclenché à sa création, donc dès celle de Form1, et avant celle de la Form2
    => tu pourrais affecter dynamiquement son OnChange dans le dpr, après la création de Form2, ou dans cette 2° fiche (section initialization ?) ou tester :
    if Assigned(Form2) then... // solution inélégante
    Delphi 5 Pro - Delphi 10.4 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  11. #11
    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
    tourlourou

    Voui, voui, d'ailleurs le problème est réglé (voir détail en Edit ci-dessus).

    Mais ce qui m'interroge toujours a des fins de compréhension ; pourquoi la Form secondaire n'est pas encore créée sur mon projet.

    Alors qu'en testant sur une maquette avec seulement Form principale et Form secondaire ; hé bien la form secondaire est créée sans problème ?

    Pourquoi ce retard de création inexplicable sur mon projet de cette Form secondaire ?

    J'ai pourtant -sous copie- dépiauter complètement mon projet, Form après Form et code après code, pour tenter d'y traver quelque chose...

    Comme indiqué en #1 de ce thread ; je pensais avoir débusqué le "hic", mais cela ne devait pas être ça.

    Le génie informatique n'est-il pas une science exacte ?

    Merci aux développeurs ayant eu le courage de tout lire

    Si un jour, l'un de vous brusquement, se trouve nez-à-nez avec le même problème et en trouve l'origine ; j'en suis preneur.

    Vive les forums DVP !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Delphi 7] [RichEdit] ScrollBar récalcitrant
    Par Droïde Système7 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 23/07/2005, 16h30
  2. Coloration syntaxique ASM dans un RichEdit
    Par Crick dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/12/2002, 02h53
  3. [RichEdit]
    Par SamDaKap dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/12/2002, 16h56
  4. determiner les ligne visible ds un RichEdit
    Par hhfr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2002, 19h15
  5. Enregistrer un RichEdit dans un .Txt
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 06/08/2002, 12h52

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