confusion sur le comportement des variables - page 2

 
wlad:

faux - il n'y a pas d'initialisation

Voici une preuve de l'aide

Les variables globales sont initialisées une seule fois, juste après le chargement du programme dans la mémoire du terminal client.

il ne s'agit pas d'initialisation, il s'agit de changer une variable

veuillez lire le code avec attention

Affichez également dans le journal la raison de la désinitialisation dans init(). Vous comprendrez alors pourquoi l'initialisation a lieu.
 
valenok2003:

Vous avez toujours la condition StringVal != backup et firsttime sera toujours vrai, parce qu'il (init) n'est démarré qu'une seule fois CHAQUE fois que l'EA est démarré, et un nouveau démarrage se produit lorsque vous changez la fenêtre tf, lorsque vous changez le set lorsque vous démarrez le terminal.

Ce n'est pas ce que vous voulez dire.

parce que vous n'avez pas lu les messages attentivement.

Le problème se produit lorsque la chaîne externe Value

la deuxième variable change également lorsque la première change

tout le temps

il ne doit être modifié qu'une seule fois

 
artmedia70:
Et écrivez la raison de la désinitialisation dans init() dans le journal. Vous comprendrez alors pourquoi l'initialisation a lieu.

de quoi parlez-vous ?

oublier l'initialisation

Prenons le dernier exemple sans init() et sans test

Pourquoi dites-vous des bêtises si vous ne comprenez pas ce que je veux dire ?

 
wlad:

de quoi parlez-vous ?

oublier l'initialisation

prenez le dernier exemple sans init() et testez-le

Pourquoi dites-vous des bêtises si vous ne comprenez pas ce dont nous parlons ?



Soit vous vous cassez encore le cou, soit vous lisez pourquoi les variables sont initialisées lorsque les paramètres d'entrée sont modifiés.

"... Les variables globales sont initialisées une seule fois après le chargement du programme dans la mémoire du terminal client... "

Ce que vous avez souligné en rouge et l'épaisseur de la police - cela ne vous donne pas la garantie qu'après avoir changé la valeur d'une variable externe, elle ne s'initialisera pas à nouveau comme elle l'a fait au premier démarrage. Vous pouvez même modifier la taille de la police dans les messages. Mais l'initialisation aura toujours lieu, même si vous supprimez init() du programme.

 
wlad:

ce n'est pas ce que vous voulez dire

parce que vous n'avez pas lu le message attentivement.

Le problème se produit lorsque la chaîne externe Value est modifiée

et la deuxième variable change également lorsque la première est modifiée

tout le temps

et ne doit être modifié qu'une seule fois




une fois CHAQUE fois que l'EA est lancé, et il est lancé chaque fois que vous modifiez cette variable et appuyez sur OK.

que voulez-vous dire par "charger un programme dans la mémoire du terminal client..."Quand avez-vous compilé le code ?

 
artmedia70:

Soit vous continuez à casser vos lances, soit vous lisez pourquoi les variables sont initialisées lorsque les paramètres d'entrée sont modifiés.

"... Les variables globales sont initialisées une fois, immédiatement après le chargement du programme dans la mémoire du terminal client... "

Ce que vous avez souligné en rouge et l'épaisseur de la police - cela ne vous donne pas la garantie qu'après avoir changé la valeur d'une variable externe, elle ne s'initialisera pas à nouveau comme elle l'a fait au premier démarrage.

pourquoi répondre si vous ne lisez pas attentivement vos messages ?

2. la variable n'est pas initialisée, elle prend la valeur 1.

Si vous êtes trop paresseux pour le tester, ne perdez pas votre temps.

Si vous voulez aider, je vous en serai reconnaissant !

Lisez attentivement vos messages et testez-les.


Où avez-vous trouvé ça ?

elle ne garantit pas qu'après avoir changé la valeur d'une variable externe, elle ne se réinitialisera pas comme à la première exécution.

Je n'ai pas encore vu de réinitialisation des variables globales.

 
wlad:

Pourquoi répondre si vous ne lisez pas attentivement les messages ?

2. la variable n'est pas initialisée mais prend la valeur 1.

Si vous êtes trop paresseux pour le tester, ne perdez pas votre temps.

Si vous voulez aider, je vous en serai reconnaissant !

Lisez attentivement vos messages et testez-les.


Où avez-vous trouvé ça ?

elle ne garantit pas qu'après avoir changé la valeur d'une variable externe, elle ne se réinitialisera pas comme à la première exécution.

Je n'ai pas encore vu de réinitialisation des variables globales.


Lorsqu'une variable externe est modifiée, l'EA est redémarrée. Je vous ai suggéré d'afficher les raisons de la désinitialisation dans le journal. Vous avez choisi de ne pas le faire.
 
valenok2003:

que voulez-vous dire par "charger le programme dans la mémoire du terminal client..." ?"C'est quand vous avez compilé le code ?

dans ce cas aussi

Vous voulez dire quand le programme est attaché au graphique pour la première fois.

mais je vais le répéter.

il ne s'agit pas d'initialisation

lire ci-dessus.

 
artmedia70:
Lorsque vous modifiez une variable externe, l'EA est redémarré. Je vous ai suggéré d'afficher les raisons de la désinitialisation dans le journal. Vous avez choisi de ne pas le faire.

Pourquoi ?

que fera-t-il pour moi ?

Je sais pourquoi la désinitialisation se produit

Je change la variable externe

 
wlad:

dans ce cas aussi.

c'est la première fois que le programme est attaché au tableau

mais je vais le répéter.

Il ne s'agit pas d'initiation.

lire ci-dessus



Vlad, il y a une erreur ici, l'initialisation a lieu chaque fois que vous modifiez les paramètres externes. Et c'est exactement le but, si c'est à propos de l'inite.

Raison: