Verwirrung über das Verhalten der Variablen - Seite 2

 
wlad:

falsch - es gibt keine Initialisierung

Hier ist ein Beweis aus der Hilfe

Globale Variablen werden nur einmal initialisiert, gleich nachdem das Programm in den Speicher des Client-Terminals geladen wurde.

es handelt sich nicht um eine Initialisierung, sondern um eine Änderung der Variablen

bitte lesen Sie den Code sorgfältig

Geben Sie auch den Grund für die Deinitialisierung in init() im Protokoll aus. Dann werden Sie verstehen, warum die Initialisierung stattfindet.
 
valenok2003:

Sie haben immer StringVal Bedingung != backup und firsttime wird immer wahr sein, weil es (init) nur einmal gestartet wird, JEDES Mal, wenn der EA gestartet wird, und ein neuer Start wird gemacht, wenn Sie das tf-Fenster ändern oder wenn Sie das Set ändern, wenn das Terminal startet.

Das ist nicht das, was Sie meinen.

weil Sie die Beiträge nicht sorgfältig gelesen haben.

Das Problem tritt auf, wenn der externe String Value

die zweite Variable ändert sich ebenfalls, wenn sich die erste Variable ändert

die ganze Zeit

sie sollte nur einmal geändert werden

 
artmedia70:
Und schreiben Sie den Grund für die Deinitialisierung in init() in das Protokoll. Dann werden Sie verstehen, warum die Initialisierung stattfindet.

Wovon reden Sie?

Vergessen Sie die Initialisierung

Nehmen Sie das letzte Beispiel ohne init() und testen Sie

Warum reden Sie so einen Unsinn, wenn Sie nicht verstehen, was ich meine?

 
wlad:

Wovon reden Sie?

Vergessen Sie die Initialisierung

Nehmen Sie das letzte Beispiel ohne init() und testen Sie es

Warum reden Sie Unsinn, wenn Sie nicht verstehen, worüber wir reden?



Entweder brechen Sie sich weiter das Genick oder lesen Sie, warum Variablen initialisiert werden, wenn Eingabeparameter geändert werden.

"... Globale Variablen werden nur einmal initialisiert, nachdem das Programm in den Speicher des Client-Terminals geladen wurde... "

Was Sie rot hervorgehoben haben und die Dicke der Schrift - es gibt Ihnen keine Garantie, dass nach der Änderung des Wertes einer externen Variable, wird es nicht wieder initialisieren, wie es beim ersten Start. Sie können sogar die Schriftgröße in Nachrichten ändern. Die Initialisierung erfolgt jedoch weiterhin, auch wenn Sie init() aus dem Programm entfernen.

 
wlad:

das ist nicht das, was Sie meinen

weil Sie den Beitrag nicht sorgfältig gelesen haben.

Das Problem tritt auf, wenn der externe String Value geändert wird

und die zweite Variable ändert sich ebenfalls, wenn die erste Variable geändert wird

die ganze Zeit

und sollte nur einmal geändert werden




einmal JEDES Mal, wenn der EA gestartet wird, und er wird jedes Mal gestartet, wenn Sie diese Variable ändern und OK drücken

Was meinen Sie mit "ein Programm in den Speicher des Client-Terminals laden..."Wann haben Sie den Code kompiliert?

 
artmedia70:

Entweder brechen Sie Ihre Speere weiter auf, oder Sie lesen, warum Variablen initialisiert werden, wenn Eingabeparameter geändert werden.

"... Die globalen Variablen werden einmal initialisiert, unmittelbar nachdem das Programm in den Speicher des Client-Terminals geladen wurde... "

Was Sie rot hervorgehoben haben und die Dicke der Schrift - es gibt Ihnen keine Garantie, dass nach dem Ändern des Wertes einer externen Variable diese nicht wieder wie beim ersten Start initialisiert wird.

Warum antworten Sie, wenn Sie Ihre Beiträge nicht sorgfältig lesen?

2. die Variable ist nicht initialisiert, sie nimmt den Wert 1 an.

Wenn Sie zu faul sind, es zu testen, verschwenden Sie Ihre Zeit nicht.

Wenn Sie helfen wollen, wäre ich Ihnen sehr dankbar!

Lesen Sie Ihre Beiträge sorgfältig und testen Sie sie.


Woher haben Sie das?

es garantiert nicht, dass nach der Änderung des Wertes einer externen Variablen die Initialisierung nicht wieder wie beim ersten Durchlauf erfolgt.

Ich habe noch keine Neuinitialisierung von globalen Variablen gesehen

 
wlad:

Warum antworten Sie, wenn Sie die Beiträge nicht aufmerksam lesen?

2. Die Variable wird nicht initialisiert, sondern erhält den Wert 1.

Wenn Sie zu faul sind, es zu testen, verschwenden Sie Ihre Zeit nicht.

Wenn Sie helfen wollen, wäre ich Ihnen sehr dankbar!

Lesen Sie Ihre Beiträge sorgfältig und testen Sie sie.


Woher haben Sie das?

es garantiert nicht, dass nach der Änderung des Wertes einer externen Variablen die Initialisierung nicht wieder wie beim ersten Durchlauf erfolgt.

Ich habe noch keine Neuinitialisierung von globalen Variablen gesehen


Wenn eine externe Variable geändert wird, wird der EA neu gestartet. Ich habe vorgeschlagen, dass Sie die Gründe für die Deinitialisierung im Protokoll anzeigen. Sie haben sich entschieden, dies nicht zu tun.
 
valenok2003:

Was meinen Sie mit "das Programm in den Speicher des Client-Terminals laden..."?"War das, als Sie den Code kompiliert haben?

auch in diesem Fall

Sie meinen, wenn das Programm zum ersten Mal an das Diagramm angehängt wird

aber ich sage es noch einmal.

es geht nicht um Initialisierung

oben lesen.

 
artmedia70:
Wenn Sie eine externe Variable ändern, wird der EA neu gestartet. Ich habe vorgeschlagen, dass Sie die Gründe für die Deinitialisierung im Protokoll anzeigen. Sie haben sich entschieden, dies nicht zu tun.

Warum?

Was wird es für mich tun?

Ich weiß, warum Deinitialisierung passiert

Ich ändere die externe Variable

 
wlad:

auch in diesem Fall.

das Programm wird zum ersten Mal an die Karte angehängt

aber ich sage es noch einmal.

Es geht nicht um Initiation.

oben lesen



Vlad, hier liegt ein Fehler vor. Die Initialisierung erfolgt jedes Mal, wenn Sie externe Parameter ändern. Und genau das ist der Punkt, wenn es um das Inite geht.