Einzelnen Beitrag anzeigen
  #7 (permalink)  
Alt 31.05.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AVT Beitrag anzeigen
Wenn Du im Editor den Cursor auf OnInit setzt und dann auf F1 drückst, öffnet sich die Hilfe zu OnInit, alle Blau geschriebenen sind Links auf die Du klicken kannst, um weiter zu sehen, was es noch alles zu sagen gibt - so kommst Du von 100 auf 1000.
Besten Dank für diesen sehr guten Tipp. Habe sonst die Dokumentation immer nur mit Google durchsucht. Wenn ich die Dokumentation so aufrufe wie von Dir empfhohlen, sind die Angaben der Dokumentation offenbar genauer (über Google habe ich manchmal nur schlecht ins Deutsche Teile der Dokumentation gefunden, manchmal habe ich das gesuchte auch gar nicht gefunden).


Zitat:
1. OnInit: wird IMMER und nur beim ersten Start ausgeführt
-. steht im Code ne Prüfung, z.B. ob genug Bars für Berechnungen da sind, kann man das Programm gleich beenden, wenn die Bars nicht reichen (wie willst Du einen Durchnschnitt von 100 ausrechnen, wenn Du nur 30 hast??) - also return(INIT_FAILED).
Init kann aus unterschiedlichen Gründen scheitern - auf dem Weg durch die ganzen Codezeilen. Gibt ein Benutzer z.B. negative Zahlen ein, ist das ne falsche Angabe (und eben nicht einfach nur "Tschüß, das wars").
-. Und wenn Init scheitert, dann wird dieser Code an DeInit weitergereicht, damit die reason von DeInit auch angeben kann "Benutzer hat Sch... eingegeben". DeInit kann auch aus anderen Gründen erfolgen, aber wenn's schon am Programmstart scheitert, dann muß das natürlich festgehalten werden.
-. Gibt es Fehler hier und wir müssen abbrechen, dann kann man z.B. in DeInit ausschließen, daß bestimmte Teile gemacht werden, bevor wir uns ganz verabschieden. Ich habe z.B. mein TradingPanel, das auf Wunsch die Einstellungen speichert (sind die aber so falsch, daß Init scheitern würde, dann macht es keinen Sinn, die Fehler auch noch zu speichern - denn beim nächsten Start holt sich das Panel die gespeicherten Werte wenn es welche gibt; und nur wenn nix gespeichert wurde, nimmt es die Benutzerangaben).

Okay, besten Dank für die detaillierten Erklärungen. Derzeit habe ich keine Rückfrage.


Zitat:
2. OnTimer: führt den dadrin stehenden Code nach der im Interval festgelegten Zeit aus. Es gibt ja Sachen, die müssen nicht bei jedem TickTack gemacht werden, es reicht ja vielleicht aus, wenn so was nur alle 10 Minuten gemacht wird. Und das schreibt man dann halt in die OnTimer Funktion rein.
Ja, interessant. Hast Du zufällig gerade ein Beispiel parat, für etwas, dass immer wieder gemacht werden muss, aber nicht bei jedem Tick?


Zitat:
3. OnEvent: wartet auf ein bestimmtes Ereignis, z.B. Mausklick oder ne Taste wurde gedrückt. Je nachdem was passiert ist (wenn es denn passierte) wird dann ein bestimmter Code ausgeführt.

Das alles sind Funktionen, in denen genau das passiert, was Du an Code reinschreibst. Steht nix in OnTimer drin, wird auch nix ausgeführt, steht da drin
Print("Es ist jetzt ",TimeToStr(TimeCurrent(),TIME_MINUTES));
dann kriegst Du im ExpertenTab des Terminals ne Zeitansage für Deine Serverzeit.
Okay. Besten Dank für die Ausführungen. Derzeit habe ich dazu keine Rückfrage.


Grüße,
LQK