Δευτέρα, 24 Ιουλίου 2017

Εγχειρίδιο της Μ2000 - Τεύχος 32ο

17.3 Επιλογή (Checkbox)
Το στοιχείο ελέγχου Επιλογή, δίνει ένα οριζόντιο πλήκτρο με ένα πλαίσιο αριστερά που μπορεί να είναι "επιλεγμένο" με ένα ολόχρωμο πλαίσιο εσωτερικά, ή "μη επιλεγμένο", κενό δηλαδή. Η επιλογή γίνεται ή μέσω του ποντικιού με κλικ σε ένα ήδη εστιασμένο στοιχείο τύπου Επιλογή, ή με το πλήκτρο διάστημα, πάλι σε εστιασμένο πλήκτρο.

Προγραμματιστικά, μπορούμε να το θέσουμε στη θέση που θέλουμε, δηλαδή τσεκαρισμένο ή μη, χωρίς να παραχθεί γεγονός αλλαγής. Εκτός από μήνυμα για την αλλαγή, λειτουργεί και ως πλήκτρο, δηλαδή παράγει γεγονός Click. Επίσης αν σύρουμε δεξιά την επιγραγή (Caption) μέχρι σχεδόν το δεξιό άκρο πάλι θα λογαριαστεί ως Click. Το ίδιο θα συμβεί και αν πατήσουμε το Enter.
Συνοψίζοντας δέχεται σε πλήκτρα: Enter ή διάστημα ή Ctrl+F1 για βοήθεια.

Προς το παρόν δεν έχει ιδιότητες για να γίνεται μη ορατό. (ίσως σε άλλη έκδοση να μπει), ούτε για διάφανο, ούτε επιλογή χρωμάτων μπορούμε να κάνουμε. Ένας λόγος για αυτό είναι ότι υπάρχει ένα πιο σύνθετο στοιχείο που μπορεί να παίξει το ρόλο της Επιλογής, του CheckBox, και έχει απ' όλα τα καλά (η Λίστα ή Listbox). Η Λίστα είναι επακριβώς το μοναδικό στοχείο που πάνω σε αυτό βασίζονται όλα, ακόμα και ο διορθωτής κειμένου. Θα το δούμε σε άλλο τεύχος.

Ένας λόγος που αυτό το στοιχείο κρατήθηκε απλό είναι για να αποτελεί ένα στοιχείο φορμών για  εκπαίδευση.



Γεγονότα του στοιχείου ΕΠΙΛΟΓΗ
  • About συμβαίνει όταν πατάμε το Ctrl+F1 
  • Changed   Γυρνάει ή τον αριθμό (index) του στοιχείου (για πίνακα στοιχείων), και τη κατάσταση του "σημαδιού", με Αληθές σημαίνει τσεκαρισμένο, ή μόνο το δεύτεορ αν δεν έχουμε πίνακα στοιχείων. Συμβαίνει όταν κάνουμε κλικ στο πλαίσιο επιλογής, αριστερά από τη επιγραφή, ή όταν πατήσουμε το διάστημα αν το στοιχείο είναι επιλεγμένο.
  • Click  Συμβαίνει όταν πατήσουμε Enter (όταν είναι επιλεγμένο), ή με κλικ στην επιγραφή, ή με σύρσιμο τέρμα δεξιά (όταν το αφήσουμε εκεί).
Ιδιότητες 
  • Index αριθμός όταν ανήκει σε πίνακα στοιχείων Επιλογή (και όλα τα γεγονότα δίνουν επιπρόσθετα, ως πρώτο στοιχείο τον αριθμό Index για να αναγνωριστεί από την συνάρτηση "υποδοχής" γεγονότων.
  • Enabled δίνει και παίρνει τιμή 0 ή -1 (΄ψευδές ή αληθές). με ψευδές γίνεται ανενεργό για διόρθωση από το χρήστη, αλλά μπορεί να αλλαχθεί εσωτερικά. Το στοχείο δεν μπορεί να πάρει εστίαση αν δεν είναι ενεργό
  • Caprtion  Εδώ μπορούμε να αλλάξουμε την Επιγραφή αλλά όχι να διαβάσουμε τιμή (αν συνδέσουμε την ιδιότητα με μεταβλητή και πάμε να διαβάσουμε θα βγει λάθος).
  • CheckReset  Και εδώ μόνο αλλάζουμε τιμή, με -1 τσεκάτουμε την επιλογή, ενώ με 0 την ξετσακάρουμε!
  • Checked  Υπάρχει αυτή η ιδιότητα μόνο για ανάγνωση, που μας δείχνει αν είναι τσεκαρισμένη ή όχι η επιλογή
  • Top δίνει και παίρνει τιμή, ως την απόσταση από την πάνω ακμή της φόρμας ως το πάνω αριστερό σημείο του στοιχείου
  • Left δίνει και παίρνει τιμή ως την απόσταση  από την αριστερή ακμή της φόρμας, ως το πάνω αριστερού σημείο του στοιχείου
  •  ShowAlways παίρνει μόνο τιμή, και κάνει το εξής. Όταν αφήσουμε το στοιχείο, δηλαδή πάει αλλού η εστίαση, με ShowAlways παραμένει το χρώμα του όπως αυτό κατά την διόρθωση, αλλιώς αλλάζει σε χρώμα "ανάπαυσης" (ένα καφέ χρώμα).

Μέθοδοι  

  • Move δέχεται δυο ορίσματα συν δυο προεραιτικά, τα δυο πρώτα είναι η θέση στη φόρμα, τα left και top, και τα άλλα δυο είναι το πλάτος και ύψος του στοιχείου (σε twips).
  • FontAttr δέχεται ένα όρισμα με το όνομα γραμματοσειράς, και προαιρετικά δυο ακόμα, το μέγεθος και αν θέλουμε να έχουμε φαρδιά γράμματα (bold)  
  • GetFocus   Μεταθέτουμε την εστίαση στο στοιχείο
  • Show  επανασχεδιάζεται το στοιχείο

Απλό Παράδειγμα
Όλα τα στοιχεία ξεκινούν με προεπιλογές. Η φόρμα θα έχει μέγεθος προεπιλεγμένο από τον διερμηνευτή, και τίτλο Φόρμα1. Το στοιχεία Επιλ1 θα έχει επιγραφή Επιλ1 και δεν θα είναι τσεκαρισμένο. Το πλήκτρο Πλ1 θα έχει επιγραφή Πλ1. Μπορούμε με tab ή shift tab να αλλάζουμε στοιχείο. Στη διαδοχή των στοιχείων είναι και η φόρμα (εφόσον έχει τίτλο, δηλαδή έχει το πορτοκαλί πλαίσιο χειρισμού, για μετακίνηση και κλείσιμο). Όταν έχουμε επιλέξει τη φόρμα (από προεπιλογή η φόρμα είναι επιλεγμένη και όχι κάποιο στοιχείο). μπορούμε με Ctrl+F4 να την κλείσουμε (ή αν έχουμε συνάρτηση Φόρμα1.Unload να πάρουμε το γεγονός και να αποφασίσουμε τι θα κάνουμε).
Στο παράδειγμα δεν έχουμε κάποια συνάρτηση για να χρησιμοποιήσουμε γεγονότα. Άρα μπορούμε να κάνουμε αλλαγές στην εστίαση, να μετακινήσουμε την φόρμα, να κάνουμε επιλογή στο στοιχείο Επιλ1.

Όρισε Φόρμα1 Φόρμα
Όρισε Επιλ1 Επιλογή Φόρμα Φόρμα1
Όρισε Πλ1 Πλήκτρο Φόρμα Φόρμα1
Μέθοδος Επιλ1,"move", 1000, 1400, 5000, 600
Μέθοδος Πλ1,"move", 1000, 2200, 5000, 600
Μέθοδος Φόρμα1, "Show", 1


Προχωρημένο Παράδειγμα
Σε αυτό το παράδειγμα θέλουμε όταν γίνεται επιλογή να αλλάζει ο τίτλος της φόρμας. Συνάμα θέλουμε όταν ξεκινήσει η φόρμα να μην φαίνεται η Κονσόλα, ενώ στην επιστροφή (στο κλείσιμο)  θέλουμε να εμφανιστεί ξανά η κοσνόλα. 
Κάθε φορά που τσεκάρουμε την επιλογή, αλλάζει η κατάσταση από επιλεγμένο σε όχι επιλεγμένο, και το ανάποδο. Παράλληλα αλλάζουμε τρεις επιγραφές, την επιγραφή του Πλήκτρου Πλ1, τον Τίτλο της φόρμας Φόρμα1 και το  τίτλο στην γραμμή εργασιών (TaskBar).
Επίσης φαίνεται και ο τρόπος με ένα "Αυτόματο" νήμα (η εντολή Μετά παράγει ένα νήμα που θα τρέξει μετά από κάποια χιλιοστά μια μόνο φορά), όπου θέτουμε το στοιχείο που θέλουμε να έχει την εστίαση..
Σε αυτό το πρόγραμμα στο γεγονός Πλ1.click διαβάζουμε την ιδιότητα του Επιλ1 άμεσα με μια μεταβλητή Τιμή_Επλ1 όπου ορίσαμε να είναι η ιδιότητα Checked. Θα μπορούσαμε να ορίσουμε και την Βάλε_Τιμή_Επλ1 από την ιδιότητα "CheckReset" και αντί να καλούμε την Με Επλ2, "Checked",.... να κάνουμε το ίδιο με την Βάλε_Τιμή_Επλ1=....
Όταν φτιάχνουμε ιδιότητες σε μεταβλητές, τότε έχει γίνει η διαδικασία εύρεσης της ιδιότητας και καταγράφεται ο μοναδικός αριθμός της. Αν χρησιμοποιούμε την Με Αντικείμενιο, "ιδιότητα",...τότε η αναζήτηση πραγματοποιείται από την αρχή...σε κάθε εκτέλεση της εντολής
Πληροφιακά, οι εντολές Μέθοδος και Με (διαφέρει από την Με σε μια Επιλογή Με/Τελος Επιλογής), δουλεύουν για.αντικείμενα που είναι γνωστά στα Windows, ακόμα και τα ιδιωτικά, όπως οι φόρμες της Μ2000.
Η εντολή Όρισε κάνει αρκετά πράγματα για αντικείμενα (όχι μόνο για τα στοιχεία φορμών, αλλά οποιαδήποτε αντικείμενα είναι για ελεύθερη χρήση στα Windows, όπως για παράδειγμα το Word ή το Excel, τα οποία είναι αντικείμενα για "αυτόματισμό γραφείου" και μπορεί να τα χειριστεί η Μ2000).. Επιπλέον η Όρισε μπορεί να ανοίξει αντικείμενα με γεγονότα, και να τα χειριστούμε και αυτά, με την διαφορά ότι αντί για Αντικείμενο τελεία γεγονός έχουμε Αντικείμενο κάτω  παύλα και γεγονός. Υπάρχουν παραδείγματα στο Blog, αλλά θα υπάρξει και ειδικό τεύχος εγχειριδίου για αυτό το σκοπό.




\\ Με 0 η Τίτλος κρύβει την κονσόλα (ελαχιστοποίηση)
Σημ 1 :
Τίτλος "Παράδειγμα Επιλογής", 0
\\ Άλλος τρόπος είναι να δώσουμε Επιφάνεια 0
\\ Προσοχή δεν μπορούμε να δώσουμε και τις δυο εντολές. Η Επιφάνεια δουλεύει όταν δεν είναι η κονσόλα σε ελαχιστοποίηση.
Σημ 2 : Επιφάνεια 0 \\ τιμές από 0 - τελείως διάφανο - έως 255 τελείως αδιάφανο
\\ αλλά έχει το πρόβλημα ότι αν βγει λάθος δεν θα μπορούμε να μπουμε στη κονσόλα, γιατί θα είναι αόρατη, δεν θα μπορεί να επιλεχθεί! Πρέπει να πάμε στο Task Manager των Windows και να κλείσουμε τον διερμηνευτή! Δείτε και την Σημείωση 4 (Σημ 4)
Όρισε Φόρμα1 Φόρμα
Όρισε Επιλ1 Επιλογή Φόρμα Φόρμα1
Όρισε Πλ1 Πλήκτρο Φόρμα Φόρμα1


Μέθοδος Επιλ1,"move", 1000, 1400, 5000, 600
Μέθοδος Πλ1,"move", 1000, 2200, 5000, 600


Με Επιλ1, "Checked" ως Τιμή_Επιλ1, "Caption", "Επιλογή 1"
Πίνακας Βάση 0, Τ$(2)
Τ$(0):="όχι επιλεγμένο", "επιλεγμένο"
Με Πλ1, "Caption", "Άλλαξε Επιλογή σε "+Τ$(1)
Με Φόρμα1, "Title", Τ$(0)


Συνάρτηση Επιλ1.Changed {
      Διάβασε τι
      Με Φόρμα1,  "Title", Τ$(Απολ(τι))
      Τίτλος Τ$(Απολ(τι))
}
Συνάρτηση Πλ1.click {
      Με Επιλ1,  "CheckReset", όχι Τιμή_Επιλ1
      \\ δεν θα παραχθεί γεγονός Επιλ1.Changed
      Με Φόρμα1,  "Title", Τ$(Απολ(Τιμή_Επιλ1))
      Τίτλος Τ$(Απολ(Τιμή_Επιλ1))
      Με Πλ1, "Caption", "Άλλαξε Επιλογή σε "+Τ$(Απολ(όχι Τιμή_Επιλ1))
}
\\ με ένα νήμα μπορούμε να δώσουμε την εστίαση σε 0.2 του δευτερολέπτου
\\ τα νήματα χρειάζονται ένα "παράθυρο χρόνου"....
\\ και το δίνει το άνοιγμα της φόρμας τύπου Modal, σαν φόρμα διαλόγου.
\\ δηλαδή μπαίνει ο διερμηνευτής σε μια φάση αναμονής μέχρι να κλείσει η φόρμα
\\ αλλά παράλληλα εκτελεί νήματα και γεγονότα!
Μετά 200 { Μέθοδος Επιλ1, "GetFocus"}
' Αν δώσουμε πογραμματιστικά την εστίαση χωρίς να έχει εμφανιστεί η φόρμα δεν θα δοθεί!
Μέθοδος Φόρμα1, "Show", 1
Όρισε Πλ1 Τίποτα
Όρισε Επιλ1 Τίποτα
Όρισε Φόρμα1 Τίποτα
Σημ 3 :
Τίτλος "Τέλος Παραδείγματος", 1
Σημ 4 : Επιφάνεια 255


 

Κυριακή, 23 Ιουλίου 2017

Αναθεώρηση 19 (έκδοση 8.9)

Έγιναν μικρές βελτιώσεις στο στοιχείο ελέγχου Εισαγωγή (TextBox), ένα από τα στοχεία των φορμών της Μ2000.
Αναρτήθηκε νέο τεύχος του εγχειριδίου για το στοιχείο αυτό.
Δείτε εδώ: Εγχειρίδιο της Μ2000 - Τεύχος 31ο


Ετοιμάζεται το επόμενο τεύχος, με το επόμενο στοιχείο Επιλογή (CheckBox)

Εγχειρίδιο της Μ2000 - Τεύχος 31ο

17.3 Εισαγωγή (TextBox)

Το στοιχείο ελέγχου Εισαγωγή χρησιμοποιείται για να εισάγουμε κείμενο ή αριθμούς, σε μια γραμμή. Μπορούμε να ελέγχουμε τι μπαίνει πριν εμφανιστεί και ανάλογα να το διαμορφώσουμε. Δηλαδή με γεγονός κοιτάμε για την εγκυρότητα της εισαγωγής από το χρήστη. 

Το  στοιχείο εξ ορισμού έχει δυνατότητα για εισαγωγή 50 χαρακτήρων. Αυτό μπορεί να αλλάξει. Επειδή κατασκευάζουμε το στοιχείο δίνοντας τη θέση της πάνω αριστερής γωνίας και τα πλάτος και ύψος, μπορεί η εισαγωγή να είναι μεγαλύτερου πλάτους από το στοιχείο. Ο δρομέας αυτόματα καθώς προχωράμε προς τα δεξιά μεταφέρει κείμενο προς τα αριστερά, και κάνει το ανάποδο αν προχωράμε προς τα αριστερά. Δεν υποστηρίζει αντιγραφή, ή αποκοπή. Υποστηρίζει επικόλληση με Ctrl+V, αλλά με ταυτόχρονη διαγραφή της προηγούμενης τιμής. Δεν υποστηρίζει Σύρε και Άφησε (Drag and Drop). 

Όπως όλα τα στοιχεία του γραφικού περιβάλλοντος της Μ2000, και αυτό στηρίζεται σε ένα μοναδικό στοιχείο, γραμμένο εξ ολοκλήρου για τη γλώσσα αυτή, το οποίο οδηγείται από ένα αντικείμενο πάνω από αυτό (subclassing), και μπορεί να γράφει οποιοδήποτε χαρακτήρα του Unidoce συστήματος και εκείνους που μπαίνουν πάνω σε άλλους. Δεν υποστηρίζει όμως διόρθωση σε κείμενο που γράφεται από δεξιά προς αριστερά (το έχω γράψει αυτό το στοιχείο, αλλά δεν έχω εμπειρία ή γνώση από γλώσσα που γράφει "ανάποδα" από τα Ελληνικά, άρα δεν θα μπορούσα να το δοκιμάσω..και χωρίς δοκιμή πρόγραμμα δεν γίνεται).

Το κείμενο στην Εισαγωγή μπορεί να αποτελείται από τρια μέρη. Ένα σταθερό μέρος πριν την εισαγωγή, η εισαγωγή και ένα τρίτο μέρος (πχ οι μονάδες). Το τρίτο μέρος μπορεί να αλλάζει θέση ανάλογα με το πόσο μεγαλώνει η εισαγωγή. Επιπλέον μπορούμε να δείχνουμε μηνύματα χωρίς να χάνουμε αυτό που έχουμε στην εισαγωγή. Όταν χρησιμοποιούμε την Εισαγωγή για αριθμό, μπορούμε να αλλάζουμε τιμή με τα βελάκια άνω και κάτω, και με κλικ σε μια οριζόντια μπάρα.δεξιά, η οποία δείχνει γραφικά και τη τιμή σε σχέση με την περιοχή τιμών.


Γεγονότα του στοιχείου ΕΙΣΑΓΩΓΗ

  • About συμβαίνει όταν πατάμε το Ctrl+F1 
  • KeyDown &ΚωδικόςΠλήκτρου, &Τιμή_Shif_Ctrl_Alt  Οι τιμές είναι με αναφορά, μπορούμε να τις αλλάξουμε.
  • Click συμβαίνει με απλό κλικ στο στοιχείο
  • Enter
  • SpinnerValue aValue θα εξηγηθεί με παράδειγμα
  • ValidString &ThisValue$, &ThisPos  οι τιμές μπορούν να αλλάξουν

Ιδιότητες
  • index  αριθμός όταν ανήκει σε πίνακα στοιχείων Εισαγωγή (και όλα τα γεγονότα δίνουν επιπρόσθετα, ως πρώτο στοιχείο τον αριθμό Index για να αναγνωριστεί από την συνάρτηση "υποδοχής" γεγονότων.
  • Text  δίνει και παίρνει ένα αλφαριθμητικό (ότι είναι γραμμένο στο στοιχείο Εισαγωγή
  • Info  δίνει και παίρνει ένα αλφαριθμητικό - μπορούμε να βάλουμε μια πληροφορία χωρίς να χαθεί η τιμή της Εισαγωγής, αλλάζει το χρώμα του στοιχείου. Πχ μπορεί να είναι ένα μήνυμα λάθους, ή ένα μήνυμα "Κλειστό".
  • Prompt  δίνει και παίρνει ένα αλφαριθμητικό (το σταθερό μέρος αριστερά)
  • Vartext δίνει και παίρνει ένα αλφαριθμητικό (το μεσαίο μέρος). Αυτό το κομμάτι εξ ορισμού παίρνει 50 χαρακτήρες.
  • ThisKind δίνει και παίρνει ένα αλφαριθμητικό (το τρίτο μέρος, η σταθερή ένδειξη τύπου)
  • Value η τιμή του spinner, δηλαδή μπάρας ολίσθησης. Από εδώ διαβάζουμε τον αριθμό, όταν το έχουμε στην διαμόρφωση για αριθμητικές τιμές.
  • MaxCharLength δίνει και παίρνει αριθμητική τιμή. Εξ ορισμού έχει το 50.
  • SelStart δίνει και παίρνει αριθμητική τιμή σχετικά με τον δρομέα και την απόστασή του σε χαραχτήρς από τον πρώτο και μετά (μαζί με τον πρώτο).
  • ShowAlways παίρνει μόνο τιμή, και κάνει το εξής. Όταν αφήσουμε το στοιχείο, δηλαδή πάει αλλού η εστίαση, με ShowAlways παραμένει το χρώμα του όπωςαυτό κατά την διόρθωση, αλλιώς αλλάζει σε χρώμα "ανάπαυσης".

  • Visible δίνει και παίρνει αριθμητική τιμή για το αν θα φαίνεται ή όχι. Αν δεν φαίνεται δεν μπορεί να πάρει την εστίαση.
  • Enabled  δίνει και παίρνει τιμή 0 ή -1 (΄ψευδές ή αληθές). με ψευδές γίνεται ανενεργό για διόρθωση από το χρήστη, αλλά μπορεί να αλλαχθεί εσωτερικά. Το στοχείο δεν μπορεί να πάρει εστίαση αν δεν είναι ενεργό.
  • Locked δίνει και παίρνει τιμή 0 ή -1 (΄ψευδές ή αληθές). με ψευδές γίνεται ανενεργό - δεν αλλάζει τίποτα.
  • Top δίνει και παίρνει τιμή, ως την απόσταση από την πάνω ακμή της φόρμας ως το πάνω αριστερό σημείο του στοιχείου
  • Left δίνει και παίρνει τιμή ως την απόσταση  από την αριστερή ακμή της φόρμας, ως το πάνω αριστερού σημείο του στοιχείου
Μέθοδοι

  • Retired γυρνάει το χρώμα στο χρώμα "μη εστίασης" και την θέση του δρομέα στην αρχή.
  • SetFoucs δίνει την εστίαση στο στοιχείο 
  • Spinner  δέχεται τέσσερα ορίσματα, το πρώτο είναι η εμφάνιση ή όχι της μπάρας ολίσθησης, το δεύτερο είναι η μικρότερη τιμή, το τρίτο η μεγαλύτερη τιμή, και το τέταρτο το μεγάλο βήμα, δηλαδή πόσο αλλάζει η τιμή όταν την αλλάζουμε με βελάκια άνω και κάτω, ή με το ροδελάκι του ποντικιού, ή από την μπάρα ολίσθησης με κλίκ στα πλήκτρα της.
  • Move δέχεται δυο ορίσματα συν δυο προεραιτικά, τα δυο πρώτα είναι η θέση στη φόρμα, τα left και top, και τα άλλα δυο είναι το πλάτος και ύψος του στοιχείου (σε twips).
  • FontAttr δέχεται ένα όρισμα με το όνομα γραμματοσειράς, και προαιρετικά δυο ακόμα, το μέγεθος και αν θέλουμε να έχουμε φαρδιά γράμματα (bold)
  • Transparent κάνει το φόντο διάφανο (η διαφάνεια λειτουργεί με αντιγραφή από τη φόρμα, όχι από τυχόν άλλο στοιχείο που μπορεί να βρίσκεται από κάτω.
  • ColorsReset  φέρνει τα χρώματα στα αρχικά
  • Colors δέχεται ένα όρισμα και τρία προαιρετικά. Το πρώτο είναι το χρώμα για το άσπρο, το δεύτερο για το μαύρο, και τα άλλα δυο τα χρώματα "μη εστίασης", και το "κόκκινο" ή έντονο  χρώμα.
Το παράδειγμα πραγματεύεται πέρα από τη χρήση του πλήκτρου και άλλα θέματα, όπως το πώς θα ανοίξουμε μια φόρμα κεντραρισμένη στην οθόνη μας, και  πώς θα την κατασκευάσουμε στο μέγεθος που θέλουμε, με γράμματα σε μέγεθος και γραμματοσειρά της επιλογής μας. Επίσης θα ζωγραφίσουμε και θα βάλουμε κείμενο! Θα δούμε πως με κλικ πάνω στη φόρμα μπορούμε να διαβάσουμε το χρώμα και να κάνουμε κάποια ενέργεια.



Σε Wine σε Linux τρέχει το πρόγραμμα, αλλά το Τοπικό 1032 (ελληνικά) δεν δίνει το κόμμα για υποδιαστολή (έχει θέμα το Wine). Αν χρησιμοποιήσουμε το 1036 θα πάρουμε την υποδιαστολή! Δείτε τα locale id εδώ. Το 1036 είναι για την Γαλλία.


Σημ 1 : Διαφυγή Όχι \\ αν το βάλουμε αυτό το Esc δεν θα πιάνει για διακοπή κώδικα
Περιθώριο {
      μέγισταΧ=χ.σημεία
      μέγισταΥ=υ.σημεία
}
Τοπικό 1032 ' με 1033  βάζει την τελεία ενώ με Τοπικό 1032 βάζει το κόμμα για υποδιαστολή
\\ Αυτό το τμήμα απλά παίρνει ότι έχει ήδη ο σωρός και τα επεξεργάζεται,
\\ έτσι δεν χρειάζεται να τα γράψουμε δυο φορές στις ρουτίνες εξυπηρέτησης γεγονότων
Τμήμα Αρ {
      Διάβασε &Αριθμ, πως$, πολ, χωρις, &τροφ1$, &μιαθεση
      \\ η Αριθμ είναι αναφορά σε αντικείμενο "ιδιότητα"
      \\ δηλαδή ένα αντικείμενο συνδεδεμένο με μια ιδιότητα άλλου αντικειμένου
      Τοπική προσ1
      αν όχι χωρίς τότε προσ1=αρισ$(τροφ1$,1)="-"
      Δες {
            Τοπική αλφα
            αλφα=Τιμη(τροφ1$,"")*πολ : Αριθμ=αλφα : Αλφα=Αριθμ
      }
      Αν Έγκυρο(άλφα) Τότε {
                 τροφ1$=γραφη$(απολ(αλφα)/πολ,πως$)
                Αν προσ1 Τότε τροφ1$="-"+τροφ1$
                Αν μιαθέση>μήκος(τροφ1$) τότε μιαθέση=1
      } Αλλιώς μιαθέση=100
}


\\ τώρα θα ορίσουμε τη φόρμα με την εντολή Όρισε
\\ δεν δίνουμε κάποιο αντικείμενο Γεγονός οπότε οι κλήσεις των γεγονότων
\\ θα οδηγηθούν σε αυτό το τμήμα.
\\ Δυο τύποι κλήσεων γίνονται από την φόρμα. Οι έμμεσες και οι άμεσες.
\\ Οι άμεσες έχουν παραμέτρους με αναφορά, και άμεσα ζητούν απάντηση
\\ Οι έμμεσες μπορούν να έχουν ορίσματα αλλά αυτά είναι για "κατανάλωση"
\\ και με ένα εξωτερικό γεγονός θα μπορούσαμε να τα μαζέψουμε και να τα διοχετεύσουμε αργότερα
\\ μέσω ενός σωρού, με χρήση του ως FIFO, το πρώτο εισερχόμενο γίνεται και πρώτο εξερχόμενο


Όρισε Φόρμα1 Φόρμα
\\ Με την ίδια εντολή θα ορίσουμε το στοιχείο Εισαγ1
\\ Κεντράρισμα φόρμας. Το πλάτος και το ύψος θα το ορίσουμε μέσα στην Επίπεδο
\\ θα μπορούσαμε και εδώ αλλά θέλουμε αλλαγή γραμματοσειράς και μεγέθους στη φόρμα:
Μέθοδος Φόρμα1,"move", μέγισταΧ/2-5000, μέγισταΥ/2-4000
Επίπεδο Φόρμα1 {
      Γραμματοσειρά "Arial Black"
      Παράθυρο 12, 10000,8000
      Οθόνη 4
      Πένα 14
      Θέση Χ.σημεία/2, Υ.σημεία/2
      Κύκλος Γέμισμα 5, 4000,1/2.5
      Δρομέας 0, Ύψος-6
      Αναφορά 2, {Δοκίμασε κλικ μέσα στην έλλειψη
                  Και απ' έξω!
                  Πάρε αριθμούς από το WordPad και κάνε Ctrl+V
                  για επικόλληση!
                  Δες τη χρήση με τα βελάκια και το Shift!
                  }

}


Όρισε Εισαγ1 ΕΙΣΑΓΩΓΗ Φόρμα Φόρμα1
\\ και ένα δεύτερο!
Όρισε Εισαγ2 ΕΙΣΑΓΩΓΗ Φόρμα Φόρμα1


\\ τώρα θα προγραμματίσουμε τις Εισαγωγές, για να δεχτούν αριθμούς.
\\ Η μέθοδος Spinner δέχεται στο τέλος τρεις ακέραιους αριθμούς. Ακόμα και αν θέλουμε να βάλουμε αριθμό με δεκαδικά θα δώσουμε τα όρια υπολογίζοντας χωρίς την υποδιαστολή με τα δεκαδικά σαν μέρος ενός ακέραιου αριθμού:


\\ Για το Εισαγ1
\\ Εμφανίζουμε τη μπάρα ολίσθησης δεξιά και δίνουμε τα όρια και το μεγάλο βήμα
Μέθοδος Εισαγ1 "Spinner", Αληθές, -1000, 2000, 50
\\ δίνουμε θέση και μέγεθος σε twips
Μέθοδος Εισαγ1,"move", 1000, 1400, 5000, 600
\\ Συνδέουμε τα "Value" και "VarText" με μεταβλητές (ουσιαστικά είναι αντικείμενα και αυτά)
\\ Θα εμφανίζεται το Ύψος : 1.23 μέτρα και θα μένει πάντα με άσπρο φόντο (αυτό λέει η ShowAlways)
\\ δοκιμάστε με ψευδές


Με Εισαγ1, "Prompt", "Ύψος: ",  "Value" ως Αριθ, "VarText" ως Τροφ$, "ThisKind"," μέτρα", "ShowAlways", Αληθές


\\ Για το Εισαγ2
\\ Εμφανίζουμε τη μπάρα ολίσθησης δεξιά και δίνουμε τα όρια και το μεγάλο βήμα
Μέθοδος Εισαγ2 "Spinner", Αληθές, 0, 10000, 5
\\ δίνουμε θέση και μέγεθος σε twips
Μέθοδος Εισαγ2,"move", 1000, 2200, 5000, 600
\\ ομοίως και εδώ με σύνδεση τιμών σε μεταβλητές (δείτε με Τύπωσε Τύπος$(Αριθ2) τι δίνει)
Με Εισαγ2, "Prompt", "Απόσταση: ",  "Value" ως Αριθ2, "VarText" ως Τροφ2$, "ThisKind"," μέτρα"
Μέθοδος Εισαγ2, "Transparent"
Μέθοδος Εισαγ2, "Colors", #FFFFFF, #FFFFFF
\\ Τώρα θα βάλουμε τις συναρτήσεις που καλούνται από γεγονότα
\\ θα έχουν το όνομα του αντικειμένου, μια τελεία και το όνομα του γεγονότος.
\\ αν χρειαστεί να διαβάσουμε παραμέτρους χρησιμοποιούμε την Διάβασε ή Διάβασε Νέο για περιπτώσεις που δεν θέλουμε να μπλέξει το διάβασμα με υπάρχον όνομα
\\ Οι συναρτήσεις γεγονότων καλούνται σαν να τρέχουν στο τμήμα, με τη διαφορά ότι έχουν δικό τους σωρό τιμών. Δηλαδή ότι αφήσουμε στο σωρό θα χαθεί μετά τη κλήση.
\\ Ακόμα και να τρέξει δυο φορές ταυτόχρονα δεν θα έχουμε θέμα ακόμα και αν δημιουργούμε μεταβλητές, γιατί θα σβηστούν με την ανάποδη φορά από αυτή που φτιάχτηκαν.
\\ Συμφέρει όμως να έχουμε ήδη έτοιμες κάποιες μεταβλητές στο τμήμα, αφού αυτές οι συναρτήσεις μπορούν να δουν τις μεταβλητές του τμήματος.
\\ Επίσης δείτε ότι οι συναρτήσεις δεν γυρίζουν τιμή. Καλούνται με την Κάλεσε Τοπικά, σαν τμήματα, με τη διαφορά όπως αναφέρθηκε ότι έχουν δικό τους σωρό τιμών.


\\ Στην πρώτη εισαγωγή θα βάλουμε αριθμό με δυο δεκαδικά και πρόσημο.
\\ όταν πατήσουμε Ctrl+F1 θα παραχθεί το παρακάτω γεγονός
\\ Πατάμε τα ctrl+F1 και όταν τα αφήσουμε παράγεται το γεγονός!
Συνάρτηση Εισαγ1.About {
      Περί "Εισαγωγή Ύψους","Περιεχόμενο βοήθειας 1"
}


Συνάρτηση Εισαγ1.ValidString {
      \\ εδώ καλούμε με την κάλεσε και όχι απλά με την Αρ
      \\ γιατί ενδέχεται να τρέξει παράλληλα μια δεύτερη Αρ από άλλο στοιχείο
      \\ η Αρ διαβάζει έξι ορίσματα, αλλά εδώ δίνουμε τέσσερα, ενώ υπάρχουν ήδη άλλα δύο
      \\ που φέρνει η ValidSrting. Η Αριθ είναι αντικείμενο, και μπορεί να περάσει με αναφορά
      \\ Το τμήμα Αρ δεν βλέπει έξω από το χώρο του μεταβλητές
      \\ η συνάρτηση Εισαγ1.ValidString βλέπει γιατί έχει κληθεί με Κάλεσε Τοπικά
      \\ δείτε ότι δεν γυρίζει κάτι, αλλά πράγματι γυρίζει τις δυο μεταβλητές που έχει περάσει με αναφορά
      \\ απλά τις διαβάζουμε στο τμήμα Αρ
      \\ (αυτή είναι μια δυνατότητα της Μ2000, επειδή εκθέτει το σωρό τιμών μεταξύ των κλήσεων τμημάτων)
      \\ (Ισχύει στην Μ2000 ότι τα τμήματα είναι υπεύθυνα για το πώς θα αφήσουν τον σωρό)
      \\ Οι μεταβλητές με αναφορά δεν χρειάζεται να ξαναμπούν στο σωρό, γιατί η Διάβασε τις έχει ενώσει,
      \\ άρα η μεταφορά τιμής έχει γίνει!
      \\ Όμως η  ValidSrting θα ενημερώσει για τις αλλαγές στην επιστροφή! Εδώ έχουμε το γνωστό:
      \\ copy in copy out, γιατί οι αυθεντικές μεταβλητές ουσιαστικά βρίσκονται σε άλλο πραγματικό νήμα!
      \\ Στη Μ2000 όπου βλέπουμε το & πριν από μεταβλητή είναι πραγματική ένωση, η νέα μεταβλητή δείχνει το χώρο της αναφερόμενης. Η διαφορά όπως αναφέρθηκε είναι με τις αναφορές από γεγονότα.

      Κάλεσε Αρ, &Αριθ, "0.00", 100, ψευδές
}
Συνάρτηση Εισαγ1.SpinnerValue {
      \\ εδώ διαβάζουμ σε μια απλή μεταβλητή. Αν τρέξει και δεύτερη φορά, δεν μας πειράζει να πάρει την πιο νέα τιμή!
            Διάβασε τιμ
            Τροφ$=γραφή$(τιμ/100,"0.00")
}
\\ Η Τροφ$ είναι αντικείμενο συνδεδεμένο με ιδιότητα αντικειμένου. Δίνουμε το 1.5 ως αλφαριθμητικό
\\ γίνεται η μετατροπή στη σωστή υποδιαστολή, και αποκόπτονται τυχόν περισσότερα δεκαδικά.
\\ Πριν μπει τελικά στη θέση του στην Εισαγ1 (στοιχείο τύπου Εισαγωγή) θα κληθεί η ValidString, και αυτόματα θα ρυθμιστεί και η μπάρα ολίσθησης!
Τροφ$=Γραφή$(1.5,"0.00")


\\ Τώρα ετοιμάζουμε τη δεύτερη εισαγωγή, με βοήθεια, και εδώ δεν έχουμε δεκαδικά και δεν έχουμε πρόσημο
Συνάρτηση Εισαγ2.About {
      Περί "Εισαγωγή Απόστασης","Περιεχόμενο βοήθειας 2"
}
Συνάρτηση Εισαγ2.ValidString {
      Κάλεσε Αρ, &Αριθ2, "", 1, αληθές
}
Συνάρτηση Εισαγ2.SpinnerValue {
            Διάβασε τιμ
            Τροφ2$=γραφή$(τιμ,"")
}
\\ δοκιμάστε με "500000"
Τροφ2$="200"  ' βάζουμε τώρα την τιμή, και θα παίξεο αμέσως το ValidSrting


\\ Τώρα μας ενδιαφέρει όταν πατήσουμε το τετράγωνο πάνω αριστερά να μας ρωτήσει το πρόγραμμα
\\ αν πράγματι θέλουμε να κλείσουμε τη φόρμα
Εξ=Ψευδές
Συνάρτηση Φόρμα1.MouseDown {
      Διάβασε Νέο Πληκτ, Μεταθ, Χ, Υ
      Επίπεδο Φόρμα1 {
            Θέση Χ, Υ
            Αν Σημείο= #800080 Τότε Μετά 100 {Με Εισαγ1, "Info",""} : Έξοδος
            Μετά 100 {Με Εισαγ1, "Info","Κλείσαμε ξανά!"}
      }
}
Συνάρτηση Φόρμα1.Unload {
      \\ χρησιμοποιούμε την Νέο για την περίπτωση που ξαναδωθεί το γεγονός
      \\ επειδή δεύτερη αναφορά δεν μπορούμε να βάλουμε.
      \\ η συνάρτηση καλείται με το Κάλεσε Τοπικά με θέαση μεταβλητών στο τμήμα
      Διάβασε Νεο &όχι_τώρα
      \\ ακυρώνουμε την έξοδο εδώ
      όχι_τώρα=Αληθές
      Μετά 100 {
            Εξ= Ρώτα("Θές να τερματίσεις την εφαρμογή")=1
            Αν Εξ Τότε Μέθοδος Φόρμα1, "CloseNow"
      }
}


Μετά 300 {Με Εισαγ1, "Info","Κλείσαμε!"}


Νήμα {
      \\ δεν κάνει τίποτα, απλά υπάρχει για να τρέξει η Κύριο.Έργο
} ως ΧΧ κάθε 5000


\\ Η διαφορά με τους τρεις τρόπους είναι:
\\ μεταξύ 1 και 2, στο δεύτερο τρόπο όταν ανοίξουμε με το Ρώτα το διάλογο επικοινωνίας (messagebox), η ροή της κάθε θα διακοπεί, ενώ στο ένα επειδή το Κύριο.Έργο είναι νήμα θα συνεχίσει να τρέχει.
\\ και στις τρεις περιπτώσεις χρησιμοποιούμε τον ίδιο τρόπο εξόδου από την μεριά του γεγονότος.
\\ Στην περίπτωση 3 η έξοδος γίνεται με απευθείας εντολής για να κλείσει η φόρμα
\\ Στις περιπτώσεις 1 και 2 η φόρμα θα κλείσει αυτόματα όταν αποδεσμεύσουμε τα αντικείμενα
\\ και δεν θα παραχθεί γεγονός. Για το σκοπό αυτό έχουμε την μεταβλητή Εξ που κάνει έξοδο από τα μπλοκ κώδικα, και στο Κύριο.Έργο {} και στη Κάθε {}
\\ Και στις δυο εντολές έχουμε το 1000 που σημαίνει ότι εκτελούνται ανά δευτερόλεπτο. Δεν περνάει ένα δευτερόλεπτο από την κάθε εκτέλεση, αλλά το υπόλοιπο από το δευτερόλεπτο από το χρόνο που καταναλώνει η εκτέλεση μέσα στο μπλοκ, έτσι ξέρουμε ότι κάθε επανάληψη μπλοκ θα ξεκινάει ανά δευτερόλεπτο! Σε περίπτωση που η εκτέλεση χρειαστεί περισσότερο χρόνο, θα ξεκινήσει η επόμενη μόλις πάρει το χρόνο της (θα χάσει φάση όπως λέμε)
\\ Τα νήματα τρέχουν με το στάνταρ πλάνο το Σχέδιο.Νημάτων Διαδοχικό. Δείτε τη βοήθεια!


Επίλεξε Με 1
Με 1
      {
            Μέθοδος Φόρμα1 ,"Show"
            \\ η Κύριο.Έργο είναι νήμα και για να τρέξει πρέπει να υπάρχει ένα νήμα ακόμα.
           Κύριο.Έργο 1000 { \\ εδώ το Esc πιάνει και διακόπτει τη Κύριο.Έργο, εκτός και παίξει η πρώτη εντολή
            \\ η εντολή Διαφυγή Όχι βγάζει εκτός το Esc (δουλεύει μόνο ως έξοδος από διορθωτή κειμένου)
                  Τύπωσε Γραφή$(Τώρα, "hh:nn:ss")
                  Ανανέωση
                  Αν εξ τότε Έξοδος
            }
      }
Με 2
      {
            Μέθοδος Φόρμα1 ,"Show"
           Κάθε 1000 { \\ εδώ το Esc πιάνει και διακόπτει τη Κάθε, εκτός και παίξει η πρώτη εντολή
            \\ η εντολή Διαφυγή Όχι βγάζει εκτός το Esc (δουλεύει μόνο ως έξοδος από διορθωτή κειμένου)
                  Τύπωσε Γραφή$(Τώρα, "hh:nn:ss")
                  Ανανέωση
                  Αν εξ τότε Έξοδος
            }
      }
Με 3 \\ Εδώ θα ανοίξουμε τη φόρμα με τρόπο Modal
      Μέθοδος Φόρμα1 ,"Show", 1
Τέλος Επιλογής
\\ από εδώ συνεχίζουμε όταν κλείσει η φόρμα1
\\ τα δυο πρώτα είναι προεραιτικά, ίσως και τρίτο, αλλά για κάθε περίπτωση καλό είναι να αποδεσμεύουμε τα αντικείμενα με την ανάποδη σειρά από αυτή που δημιουργήθηκαν
\\ Γενικά πάντως η Μ2000 θα τα αποδεσμεύσει
\\ Το Esc το αφαιρέσαμε με την Διαφυγή Όχι, αλλά και χωρίς αυτό, τα Modal παράθυρα δεν βγαίνουν χωρίς να τα κλήσουμε.


\\ Τα νήματα θα τα σβήσει το τμήμα, εκτός από αυτά τα νήματα που δεν δημιουργήθηκαν από αυτό!
\\ Εδώ με την εντολή αυτή σβήνουμε όλα τα νήματα (ακόμα και αυτά που θα ξεκινήσουνε μετά το πέρας του νήματος θα διαβάσουν το μήνυμα τερματισμού και θα βγουν εκτός)
Νήματα Σβήσε


Όρισε Εισαγ2 Τίποτα
Όρισε Εισαγ1 Τίποτα
Όρισε Φόρμα1 Τίποτα



Παραλλαγή.
Στην επιλογή 3, όπου ανοίγουμε ένα Modal Παράθυρο (σαν παράθυρο διαλόγου δηλαδή, που απενεργοποιεί τα ήδη ανοικτά), μπορούμε να βάλουμε αντί για μια εντολή το παρακάτω μπλοκ, το οποίο θα τρέχει ένα νήμα που θα δείχνει την ώρα όπως και στις περιπτώσεις 1 και 2. Αυτό αυμβαίνει γιατί η αναμονή για να κλείσει ο "Διάλογος" δίνει χρόνο σε νήματα! Η διαφορά με το Κύριο.Έργο είναι ότι εδώ δεν θα τερματιστούν τα νήματα, αλλά θα γίνει ο τερματισμός όταν τερματίσει το τμήμα που δημιουργήθηκαν (ουσιαστικά το αντικείμενο εκτέλεσης όπου το νήμα είναι "παιδί" του).
      {
      Νήμα {
            Τύπωσε Γραφή$(Τώρα, "hh:nn:ss")
            Ανανέωση
      } ως ΑΑΑ κάθε 1000
      Μέθοδος Φόρμα1 ,"Show", 1
      }

Σάββατο, 22 Ιουλίου 2017

Αναθεώρηση 18 (Έκδοση 8.9) ..σχεδόν τελική!

Δυο αναθεωρήσεις, η 17 και η 18.
Στη 17:
1) Ολοκληρώθηκε η βοήθεια και στα αγγλικά.
2) Έγιναν διορθώσεις (καθώς ελέχθηκε η βοήθεια για όσες εντολές δεν είχαν περαστεί και στα αγγλικά).
3) Η Προσθήκη για πίνακες και η Ένωση() για πίνακες διορθώθηκε - είχαν πρόβλημα οι εντολές Πίνακας() και Πίνακας$() για το τελευταίο στοιχείο του πίνακα, έβγαζε ότι ο δείκτης ήταν εκτός ορίου, ενώ το στοιχείο υπήρχε, και η Τύπωσε με όνομα πίνακα το εμφάνιζε.
4) Μπήκε ένας νέος διακόπτης που μπορεί να αλλάξει προσωρινά ή και μόνιμα δείτε το Βοήγθεα Διακόπτες, και είναι το txt, με Διακόπτες "+txt" στην κονσόλα της Μ2000 κάνουμε μόνιμη την αλλαγή, και οι συγκρίσεις αλφαριθμητικών γίνονται βάσει γραμμάτων και όχι βάσει τιμής γράμματος (δυαδικού αριθμού). Έτσι το α ενώ έχει τιμή μεγαλύτερη από το έ, ενώ στην σύγκριση με το διακόπτη "+txt" βγαίνει μικρότερο, όπως πρέπει να είναι. Η εντολή από τη κονσόλα Monitor δείχνει τη θέση των διακοπτών, στο τρέχον περιβάλλον. Αν δώσουμε την εντολή Διακόπτες με την Θέσε Διακόπτες "+txt" μέσα από τμήμα τότε η αλλαγή θα είναι μόνο για το τρέχον περιβάλλον.
5) Εξ ορισμού ορίστηκε το σημείο της υποδιαστολής να είναι το τρέχον, του συστήματος. Μπορούμε με το διακόπτη "-DEC" να το γυρίσουμε στην τελεία, αλλά μια εντολή Τοπικό 1032 (που είναι το ελληνικό) προσωρινά το γυρίζει στο κόμμα.
Οι εντολές εισαγωγής αριθμών από την οθόνη συγχρονίζονται με την τρέχουσα υποδιαστολή, και εμείς απλά πατάμε την τελεία κάθε φορά, και εμφανίζεται το σύμβολο της υποδιαστολής (τελεία ή κόμμα).
Στο κώδικα της Μ2000 πάντα η υποδιαστολή είναι η τελεία. Το ίδιο ισχύει και όταν κάνουμε εισαγωγή από αρχείο κειμένου κατά αριθμούς και αλφαριθμητικά. Η εντολή Γράψε που γράφει σε αρχείο κειμένου με γραμμές με αριθμούς και αλφαριθμητικά δέχτεται χωριστά το πώς θέλουμε την υποδιαστολή και πώς να αλλάζει το διαχωριστικό αριθμών/αλφαριθμητικών.

Στη 18:
Όλα τα στοιχεία ελέγχου έχουν το γεγονός About το οποίο συμβαίνει όταν πατάμε το Ctrl+F1. Δηλαδή στο στοιχείο που έχουμε την εστίαση (το καταλάβαίνουμε από την αλλαγή χρώματος, και μπορούμε να αλλάξουμε εστίαση σε στοιχεία με Tab και Shift Tab, και ένα από αυτά είναι ο τίτλος της φόρμας (δεν αλλάζει χρώμα, αλλά γίνεται το ανάποδο, όλα τα στοιχεία δεν έχουν χρώμα που να δείχνει ότι είναι επιλεγμένο)... και σε πολλά παράθυρα με Ctrl+Tab.

Πέμπτη, 20 Ιουλίου 2017

Αναθεώρηση 16 (Έκδοση 8.9)

Μια αναθεώρηση, και ένα ωραίο παράδειγμα. Εδώ θα περάσουμε ονόματα πόλεων σε ένα μη ισορροπημένο δένδρο. Θέλουμε να δείξουμε τις πόλεις σε αλφαβητική σειρά, με αύξουσα και με φθίνουσα σειρα.
Στο δεύτερο πιο προχωρημένο πρόγραμμα, δημιουργούμε ένα αντικείμενο που κρατάει τις ρουτίνες που μοιάζουν με αυτές του πρώτου παραδείγματος. Επιπλέον μέσο ενός γεγονότος ανακατευθύνουμε την έξοδο από αυτό, κατά την ανάγνωση του!
Το παρακάτω μπήκε από την αναθεώρηση 17, και έτσι η Κέρκυρα έρχεται μετά την Καστοριά. Ο διακόπτης "+txt" κάνει τις συγκρίσεις αλφαριθμητικών να γίνονται ως κείμενο και όχι ως δυαδικές τιμές. Ως δυαδικές τιμές το έ έχει μικρότερη τιμή από το α, ενώ ως κείμενο το α είναι μικρότερο από το έ.
Θέσε Διακόπτες "+txt"
\\ Για την έκδοση 8.9 αναθεώρηση 16
\\ απλό δένδρο (μη ισορροπημένο)
\\ κάθε κόμβος μπορεί να έχει μια τιμή και να δείχνει σε δυο κόμβους
\\ κάθε κόμβος είναι ένας πίνακας τριών στοιχείων
\\ το μεσαίο στοιχείο είναι το αλφαριθμητικό
\\ το πρώτο και το τρίτο (το 0 και το 2), έχουν ή κενό πίνακα ή κόμβο, δηλαδή πίνακα με τρια στοιχεία)
\\ Χρησιμοποιείται η νέα παραλλαγή της Προσθήκης για δείκτες σε πίνακες
\\ Η δομή ξεκινάει από έναν δείκτη, την δομή_δένδρου
\\ Επειδή γίνεται χρήση ρουτινών, χωρίς χρήση μπλοκ κώδικα κατά τις κλήσεις....
\\ έχουμε μεγάλο όριο αναδρομής, το οποίο μπορούμε να το ορίσουμε:
\\ στις ρουτίνες δίνουμε μόνο δείκτες προς πίνακες, και ενώ περνούν με τιμή...
\\ δουλεύουν σαν να είναι με αναφορά.
\\ Στη Μ2000 σε ένα δείκτη δεν μπορούμε να βάλουμε οτιδήποτε, αλλά έναν δείκτη αντικειμένου
\\ Αντικείμενα είναι οι δείκτες σε πίνακα, οι καταστάσεις (λίστες με κλειδιά), και οι σωροί (ειδικές στοίβες)
Όριο.Αναδρομής 50000
δομή_δένδρου=(,)
Τύπωσε Τύπος$(δομή_δένδρου)
Βάλε_Ένα(δομή_δένδρου,"Πρέβεζα")
Βάλε_Ένα(δομή_δένδρου,"Αθήνα")
Βάλε_Ένα(δομή_δένδρου,"Κέρκυρα")
Βάλε_Ένα(δομή_δένδρου,"Πάργα")
Βάλε_Ένα(δομή_δένδρου,"Καστοριά")
Βάλε_Ένα(δομή_δένδρου,"Χανιά")
Βάλε_Ένα(δομή_δένδρου,"Πάτρα")
Βάλε_Ένα(δομή_δένδρου,"Βόλος")
Τύπωσε_Όλα(δομή_δένδρου)
Τύπωσε "........Αλλιώς.........."
Τύπωσε_Όλα_Αλλιώς(δομή_δένδρου)
Ρουτίνα Βάλε_Ένα(εδώ, τι$)
      Αν μήκος(εδώ)=0 τότε Προσθήκη εδώ, ((,),τι$,(,)) : Έξοδος Ρουτίνας
      Αν τι$<Πίνακας$(εδώ,1) Τότε Βάλε_Ένα( Πίνακας(εδώ,0), τι$) : Έξοδος Ρουτίνας
      Βάλε_Ένα(Πίνακας(εδώ,2), τι$)
Τέλος Ρουτίνας
Ρουτίνα Τύπωσε_Όλα(εδώ)
      Αν μήκος(εδώ)=0 τότε Έξοδος Ρουτίνας
      Τύπωσε_Όλα(Πίνακας(εδώ,0))
      Τύπωσε Πίνακας$(εδώ,1)
      Τύπωσε_Όλα(Πίνακας(εδώ,2))
Τέλος Ρουτίνας
Ρουτίνα Τύπωσε_Όλα_Αλλιώς(εδώ)
      Αν μήκος(εδώ)=0 τότε Έξοδος Ρουτίνας
      Τύπωσε_Όλα_Αλλιώς(Πίνακας(εδώ,2))
      Τύπωσε Πίνακας$(εδώ,1)
      Τύπωσε_Όλα_Αλλιώς(Πίνακας(εδώ,0))
Τέλος Ρουτίνας


Και η δεύτερη εκδοχή με αντικείμενο και ανακατεύθυνση εξαγωγής με χρήση γεγονότος.Χρησιμοποιούμε γενικό Γεγονός (καθολικό), αλλά όπως και όλες οι γενικές στη Μ2000, είναι προσωρινές, μέχρι να τερματίσει αυτό που τις έφτιαξε, και επίσης το τοπικό έρχεται πρώτο στην προτίμηση του διερμηνευτή, δηλαδή οι γενικές σκιάζονται!
Στα γεγονότα δηλώνουμε μια "υπογραφή" με μια διάβασε για το τι περιμένει στη κλήση γεγονότας, ενώ τα ονόματα στην περιγραφή απλά λένε στο διερμηενυτή κάτι για το τύπο (αν δεν δηλώνεται επακριβώς πάντα, πχ το κάτι$ είναι φανερό ότι είναι αλφαριθμητικό, ενώ ένα κάτι_άλλο θα μπορούσε να ήταν δείκτης, ή μια λάμδα συνάρτηση, θα φανεί όμως στον αποδέκτη....). Στην υπογραφή βάζουμε και με πέρασμα με αναφορά με το & στην αρχή του ονόματος.
Κάθε Γεγονός έχει μια λίστα συναρτήσεων, ακόμα και ίδιων, που καλεί με τη σειρά (multicast). Με την νέο βάζουμε νέα συνάρτηση, με την πέτα πετάμε αυτή που ζητάμε, με τη Καθαρό πετάμε όλες τις συναρτήσεις και μπαίνει σε κράτηση, με τη Κράτησε το γεγονός αγνοεί την κλήση ενώ την λίστα των παραμέτρων την εκτελεί (απλά δεν συνεχίζει σε κλήση), με το Άφησε αφήνουμε το γεγονός να εκτελεί.

Εδώ φαίνονται τρια διαφορετικά περάσματα συναρτήσεων. Απλή συνάρτηση όπως η Τ(). Συνάρτηση από αντικείμενο, για να καταγράψουμε πόσες φορές "ζητήθηκε". Μάλιστα αυτές τις δυο τις έχουμε μαζί στην αρχή. Και τέλος μπορούμε να χρησιμοποιήσουμε την κλήση προς τα πίσω. Η κλήση προς τα πίσω γίνεται μέσω μιας ψεύτικης συνάρτησης. Αυτή η συνάρτηση εκτελείται σαν να είναι το τμήμα που την περιέχει, και έχει θέαση σε ότι έχει το τμήμα. Η συνάρτηση Οκν$()  (οκνηρή αποτίμηση), με την παραλλαγή αυτή που βλέπουμε εδώ (με αναφορά συνάρτησης), παράγει μια ανώνυμη συνάρτηση που όταν τρέχει μεταφέρεται στο περιβάλλον του τμήματος. Έτσι γεμίζουμε τον πίνακα Εδώ$()

Παρατηρούμε ότι με το Γεγονός, έχουμε ένα αντικείμενο με πολλές χρήσεις, χωρίς να προσθέσουμε σε αυτό κώδικα.

\\ Παράδειγμα με χρήση γεγονότος
Όριο.Αναδρομής 50000
Γενικό Γεγονός ΚάνεΚάτι {
      Διάβασε κάτι$
}
Κλάση Άλφα {
Ιδιωτικό:
      δομή_δένδρου=(,)
Δημόσιο:
      Τμήμα Καθάρισε {
            \\ χρήση τελείας στην αρχή και <= για εκχώρηση
            .δομή_δένδρου<=(,)
      }
      Τμήμα Βάλε_Ένα {
            Αν Ταύτιση("Γ") Τότε {
                  Βάλε_Ένα(.δομή_δένδρου, γράμμα$)
            } Αλλιώς.Αν Ταύτιση("Π") Τότε {
                  Διάβασε Π
                  Κ=Κάθε(Π)
                  Ενώ Κ {
                        Βάλε_Ένα(.δομή_δένδρου, Πίνακας$(Κ))
                  }
            }
            Ρουτίνα Βάλε_Ένα(εδώ, τι$)
                  Αν μήκος(εδώ)=0 τότε Προσθήκη εδώ, ((,),τι$,(,)) : Έξοδος Ρουτίνας
                  Αν τι$<Πίνακας$(εδώ,1) Τότε Βάλε_Ένα( Πίνακας(εδώ,0), τι$) : Έξοδος Ρουτίνας
                  Βάλε_Ένα(Πίνακας(εδώ,2), τι$)
            Τέλος Ρουτίνας
      }
      Τμήμα Τύπωσε_Όλα {
            Τύπωσε_Όλα(.δομή_δένδρου)
            Ρουτίνα Τύπωσε_Όλα(εδώ)
                  Αν μήκος(εδώ)=0 τότε Έξοδος Ρουτίνας
                  Τύπωσε_Όλα(Πίνακας(εδώ,0))
                  Κάλεσε Γεγονός ΚάνεΚάτι Πίνακας$(εδώ,1)
                  Τύπωσε_Όλα(Πίνακας(εδώ,2))
            Τέλος Ρουτίνας
      }
      Τμήμα Τύπωσε_Όλα_Αλλιώς {
            Τύπωσε_Όλα_Αλλιώς(.δομή_δένδρου)
            Ρουτίνα Τύπωσε_Όλα_Αλλιώς(εδώ)
                  Αν μήκος(εδώ)=0 τότε Έξοδος Ρουτίνας
                  Τύπωσε_Όλα_Αλλιώς(Πίνακας(εδώ,2))
                  Κάλεσε Γεγονός ΚάνεΚάτι Πίνακας$(εδώ,1)
                  Τύπωσε_Όλα_Αλλιώς(Πίνακας(εδώ,0))
            Τέλος Ρουτίνας
      }
}
Μ=Αλφα()
Συνάρτηση Τ {
      Τύπωσε γράμμα$
}
Ομάδα Μέτρησε {
      μετρητής
      Συνάρτηση Ένα {
            πέτα
            .μετρητής++
      }
}
Γεγονός ΚάνεΚάτι Νέο Τ(), Μέτρησε.Ένα()
Για Μ {
      .Βάλε_Ένα "Πρέβεζα"
      .Βάλε_Ένα "Αθήνα"
      .Βάλε_Ένα "Κέρκυρα"
      .Βάλε_Ένα "Πάργα"
      \\ εδώ δίνουμε πίνακα με λέξεις
      \\ για μια λέξη θέλει ("λέξη",)   (το κόμμα πριν την παρένθεση)
      .Βάλε_Ένα ("Καστοριά","Χανιά", "Πάτρα","Βόλος")
      .Τύπωσε_Όλα
      Γεγονός ΚάνεΚάτι Πέτα Μέτρησε.Ένα()
      Τύπωσε "........Αλλιώς.........."     
      .Τύπωσε_Όλα_Αλλιώς
}
Τύπωσε "σύνολο=";Μέτρησε.μετρητής
Γεγονός ΚάνεΚάτι Καθαρό \\ κάνει συνάμα και Κράτησε δηλαδή αγνοεί τις κλήσεις
\\ και κάτι πιο δύσκολο.
\\ θέλουμε να διατρέξουμε το δένδρο από αυτό το τμήμα, πχ να βάλουμε σε πίνακα τα στοιχεία
Πίνακας Βάση 1, Εδώ$(Μέτρησε.μετρητής)
αρ=1
Συνάρτηση Ψεύτικη {
      \\ αυτό είναι μέρος του τμήματος
      Διάβασε Εδώ$(αρ)
      αρ++
}
Γεγονός ΚάνεΚάτι Νέο Οκν$(&Ψεύτικη())
Γεγονός ΚάνεΚάτι Άφησε \\ τώρα το αφήνουμε να πάρει κλήσεις
Μ.Τύπωσε_Όλα
Γεγονός ΚάνεΚάτι Κράτησε
Μ.Καθάρισε   ' τώρα έχει αδειάσει ο πίνακας
\\ Τώρα έχουμε έναν πίνακα με πόλες, ταξινομημένο!
Τύπωσε "[Πόλεις]"
Για ι=1 έως Μέτρησε.μετρητής {
      Τύπωσε Εδώ$(ι)
}


Τρίτη, 18 Ιουλίου 2017

Αναθεώρηση 14 (Έκδοση 8.9)

Αυτή η αναθεώρηση θεωρείται σχεδόν τελική (υπάρχει πια η αναθεώρηση 16). Εϊναι ίδια σε κώδικα με την 13 εκτός από το ότι στην 14 ολοκληρώθηκε η βοήθεια, και ειδικότερα στις έτοιμες συναρτήσεις, αριθμητικές και αλφαριθμητιές.
Στη βοήθεια έχουμε (από την 13η αναθεώρηση) και το όνομα στην άλλη γλώσσα ώστε όποτε θέλουμε να αλλάζουμε με απλό κλικ στο όνομα, ή να μαθαίνουμε πώς η εντολή γράφεται στην άλλη γλώσσα.

Ακολουθεί η λίστα Αριθμητικών συναρτήσεων (και το πρόγραμμα για το πώς βγαίνει)
\\ Όλα τα αναγνωριστικά σε αλφαβητική σειρά
Φόρμα 80,50
Άδειασε
Έγγραφο Όλα$
ΝέαΓραμμή$={
}
Κατάλογος Εφαρμογή.Κατ$ \\ AppDir$ δίνει το φάκελο που βρίσκεται η εφαρμογή του διερμηνευτή
Ανάκτηση "HELP2000", "SELECT * FROM COMMANDS ORDER BY DESCRIPTION"
Διάβασε Ν
Για ι=1 έως Ν {
      Ανάκτηση "HELP2000", "SELECT * FROM COMMANDS ORDER BY DESCRIPTION", ι
      Πέτα  \\ διώχνει ένα στοιχείο από το σωρό (από τη κορυφή)
      Διάβασε Ελλ$, Κείμενο$, Αγγ$, νούμερο_ομάδας
      \\ το 22 είναι η ομάδα Γενικά - που περιλαμβάνει τις εντολές ανά ομάδα
      Αν νούμερο_ομάδας<>22 Τότε {
                  Ανάκτηση "HELP2000","GROUP", 1,"GROUPNUM ", νούμερο_ομάδας
                  Πέτα 2 : Διάβασε τίτλος_ελλ_αγγ$
                   Ελλ$=Αλλαγή$("_"," ", Ελλ$)
                  Αν Δεξί$(Ελλ$,1)="(" Τότε Ελλ$=Ελλ$+")"
                  \\ ο χαρ$(160) είναι το διάστημα που δεν "σπάει", λογαριάζετα σαν γράμμα.
                  Αναφορά Ελλ$ +  " ("+ΑριστερόΜέρος$(τίτλος_ελλ_αγγ$, ","+Χαρ$(160))+")"
                  Όλα$=Ελλ$ +"   ("+ΑριστερόΜέρος$(τίτλος_ελλ_αγγ$, ","+Χαρ$(160))+")"+ΝέαΓραμμή$
      }
}
Τύπωσε
Σημ 1 : Πρόχειρο Όλα$ ' στο Πρόχειρο
Κατάλογος Χρήστη \\ επιστροφή στο κατάλογο χρήστη
Σώσε.Έγγραφο Όλα$, "Greek.txt"
Σύστημα "WordPad", Παράθεση$(Κατ$+"Greek.txt")


Δίνει το παρακάτω:


$() (ΧΕΙΡΙΣΤΕΣ ΤΗΣ ΤΥΠΩΣΕ)
@() (ΧΕΙΡΙΣΤΕΣ ΤΗΣ ΤΥΠΩΣΕ)
~() (ΧΕΙΡΙΣΤΕΣ ΤΗΣ ΤΥΠΩΣΕ)
ISWINE (ΣΤΑΘΕΡΕΣ)
MONITOR (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΑΔΕΙΑΣΕ (ΕΝΤΟΛΕΣ ΣΩΡΟΥ)
ΑΚ() (ΑΡΙΘΜΗΤΙΚΑ)
ΑΚΕΡΑΙΟ.ΔΥΑΔΙΚΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΑΚΕΡΑΙΟΣ (ΣΤΑΘΕΡΕΣ)
ΑΛΗΘΕΣ (ΣΤΑΘΕΡΕΣ)
ΑΛΗΘΗΣ (ΣΤΑΘΕΡΕΣ)
ΑΛΛΑΓΗ (ΣΤΟΧΟΙ & ΕΠΙΛΟΓΗ)
ΑΛΛΑΓΗ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΑΛΛΑΞΕ (ΟΡΙΣΜΟΙ)
ΑΛΛΙΩΣ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΑΛΛΙΩΣ.ΑΝ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΑΝ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΑΝΑΖΗΤΗΣΗ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΑΝΑΚΤΗΣΗ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΑΝΑΛΟΓΙΟ (ΕΝΤΟΛΕΣ ΙΣΤΟΥ)
ΑΝΑΛΟΓΙΟ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΑΝΑΛΥΤΗΣ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΑΝΑΜΟΝΗ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΑΝΑΝΕΩΣΗ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΑΝΑΦΟΡΑ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΑΝΑΨΕ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΑΝΟΙΓΜΑ.ΑΡΧΕΙΟΥ (ΚΟΙΝΕΣ ΦΟΡΜΕΣ)
ΑΝΟΙΓΜΑ.ΕΙΚΟΝΑΣ (ΚΟΙΝΕΣ ΦΟΡΜΕΣ)
ΑΝΟΙΞΕ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΑΝΤΙΓΡΑΨΕ (ΕΝΤΟΛΕΣ ΕΙΚΟΝΩΝ)
ΑΠΛΟΣ (ΣΤΑΘΕΡΕΣ)
ΑΠΟ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΑΠΟΘΗΚΕΥΣΗ.ΩΣ (ΚΟΙΝΕΣ ΦΟΡΜΕΣ)
ΑΠΟΚ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΑΠΟΛ() (ΑΡΙΘΜΗΤΙΚΑ)
ΑΡΓΑ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΑΡΙΘΜΟΣ.ΠΑΡΑΓΡΑΦΟΥ() (ΑΡΙΘΜΗΤΙΚΑ)
ΑΡΙΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΑΡΙΣΤΕΡΟΜΕΡΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΑΡΧΕΙΑ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΑΡΧΕΙΟ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΑΡΧΕΙΟ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΑΡΧΕΙΟΥ.ΜΗΚΟΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΑΡΧΕΙΟΥ.ΣΤΑΜΠΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΑΡΧΗ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΑΥΛΟΣ (ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ)
ΑΥΛΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΑΥΞΟΥΣΑ (ΣΤΑΘΕΡΕΣ)
ΑΦΑΙΡΕΣΗ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΑΦΗΣΕ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΒΑΛΕ (ΕΝΤΟΛΕΣ ΣΩΡΟΥ)
ΒΑΛΕ.ΑΔΕΙΑ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΒΑΣΗ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΒΑΣΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΒΑΣΗ.ΠΑΡΟΧΟΣ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΒΑΣΗ.ΧΡΗΣΤΗΣ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΒΑΨΕ (ΓΡΑΦΙΚΑ 2Δ)
ΒΗΜΑ (ΓΡΑΦΙΚΑ 2Δ)
ΒΟΗΘΕΙΑ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΓΕΓΟΝΟΣ (ΟΡΙΣΜΟΙ)
ΓΕΜΙΣΕ (ΓΡΑΦΙΚΑ 2Δ)
ΓΕΝΙΚΗ (ΟΡΙΣΜΟΙ)
ΓΙΑ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΓΡΑΜΜΑ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΓΡΑΜΜΑΤΟΣΕΙΡΑ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΓΡΑΜΜΑΤΟΣΕΙΡΑ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΓΡΑΜΜΕΣΑΝΑΦΟΡΑΣ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΓΡΑΜΜΗ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΓΡΑΜΜΗ ΕΙΣΑΓΩΓΗΣ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΓΡΑΦΗ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΓΡΑΨΕ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΓΡΗΓΟΡΑ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΔΕΙΚΤΗ.ΜΟΡΦΗ (ΕΝΤΟΛΕΣ ΔΕΙΚΤΗ)
ΔΕΙΚΤΗΣ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΔΕΙΚΤΗΣ.Υ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΔΕΙΚΤΗΣ.Χ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΔΕΙΚΤΗΣΑ.Υ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΔΕΙΚΤΗΣΑ.Χ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΔΕΙΞΕ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΔΕΚ() (ΑΡΙΘΜΗΤΙΚΑ)
ΔΕΚΑΕΞ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΔΕΝ (ΑΡΙΘΜΗΤΙΚΑ)
ΔΕΞΙ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΔΕΞΙΜΕΡΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΔΕΣ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΔΙΑΒΑΣΕ (ΕΝΤΟΛΕΣ ΣΩΡΟΥ)
ΔΙΑΓΡΑΦΗ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΔΙΑΚΟΠΤΕΣ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΔΙΑΜΕΣΟΥ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΔΙΑΡΘΡΩΣΗ (ΟΡΙΣΜΟΙ)
ΔΙΑΡΚΕΙΑ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΔΙΑΣΤΑΣΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΔΙΑΦΑΝΕΙΑ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΔΙΑΦΑΝΟ (ΕΝΤΟΛΕΣ ΕΙΚΟΝΩΝ)
ΔΙΑΦΥΓΗ (ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ)
ΔΙΕΚΟΨΕ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΔΙΚΤΥΟ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΔΙΟΡΘΩΣΕ (ΕΓΓΡΑΦΑ)
ΔΙΠΛΑ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΔΙΠΛΟΣ (ΣΤΑΘΕΡΕΣ)
ΔΟΚΙΜΗ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΔΟΚΙΜΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΔΟΜΗ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΔΡΟΜΕΑΣ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΔΥΑΔΙΚΗ.ΠΕΡΙΣΤΡΟΦΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΔΥΑΔΙΚΟ (ΣΤΑΘΕΡΕΣ)
ΔΥΑΔΙΚΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΔΥΑΔΙΚΟ.ΑΚΕΡΑΙΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΔΥΑΔΙΚΟ.ΑΝΤΙ() (ΑΡΙΘΜΗΤΙΚΑ)
ΔΥΑΔΙΚΟ.ΑΠΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΔΥΑΔΙΚΟ.Η() (ΑΡΙΘΜΗΤΙΚΑ)
ΔΥΑΔΙΚΟ.ΚΑΙ() (ΑΡΙΘΜΗΤΙΚΑ)
ΔΥΑΔΙΚΟ.ΟΛΙΣΘΗΣΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΔΥΟΜΙΣΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΔΩΣΕ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΕΓΓΡΑΦΕΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΓΓΡΑΦΟ (ΟΡΙΣΜΟΙ)
ΕΓΓΡΑΦΟΥ.ΛΕΞΕΙΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΓΓΡΑΦΟΥ.ΜΗΚΟΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΓΓΡΑΦΟΥ.ΜΟΝΑΔΙΚΕΣ.ΛΕΞΕΙΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΓΓΡΑΦΟΥ.ΠΑΡ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΓΓΡΑΨΙΜΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΓΚΥΡΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΙΚ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΕΙΚΟΝΑ (ΕΝΤΟΛΕΣ ΕΙΚΟΝΩΝ)
ΕΙΚΟΝΑ.Υ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΙΚΟΝΑ.Υ.ΣΗΜΕΙΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΙΚΟΝΑ.Χ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΙΚΟΝΑ.Χ.ΣΗΜΕΙΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΙΚΟΝΕΣ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΕΙΚΟΝΙΔΙΟ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΕΙΝΑΡ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΕΙΝΓΡ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΕΙΣΑΓΩΓΗ (ΟΘΟΝΗ & ΑΡΧΕΙΑ)
ΕΙΣΑΓΩΓΗ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΕΚΔΟΣΗ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΕΚΔΟΣΗ σταθερά (ΣΤΑΘΕΡΕΣ)
ΕΚΤΕΛΕΣΗ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΕΚΤΥΠΩΣΗ (ΕΚΤΥΠΩΣΕΙΣ)
ΕΚΤΥΠΩΤΗΣ (ΕΚΤΥΠΩΣΕΙΣ)
ΕΚΤΥΠΩΤΗΣ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΕΚΦΡ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΕΚΦΡ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΛΛΗΝΙΚΑ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΕΝΑΟΝΟΜΑ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΕΝΘΕΣΗ (ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ)
ΕΝΚΟΜ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΕΝΚΟΜ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΝΤΑΣΗ (ΗΧΟΙ & ΤΑΙΝΙΕΣ)
ΕΝΤΑΣΗ μεταβλητή (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΕΝΤΟΛΗ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΕΝΩ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΕΝΩΣΕ (ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ)
ΕΝΩΣΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΝΩΣΗ.ΣΕΙΡΑΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΕΞΟΔΟΣ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΕΠΑΝ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΕΠΑΝΑΛΑΒΕ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΕΠΑΝΕΛΑΒΕ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΕΠΙΓΡΑΦΗ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΕΠΙΛΕΞΕ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΕΠΙΛΕΞΕ.ΓΡΑΜΜΑΤΟΣΕΙΡΑ (ΚΟΙΝΕΣ ΦΟΡΜΕΣ)
ΕΠΙΛΕΞΕ.ΟΡΓΑΝΟ (ΗΧΟΙ & ΤΑΙΝΙΕΣ)
ΕΠΙΛΕΞΕ.ΧΡΩΜΑ (ΚΟΙΝΕΣ ΦΟΡΜΕΣ)
ΕΠΙΛΟΓΕΣ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΕΠΙΛΟΓΕΣ.ΦΑΝΕΡΕΣ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΕΠΙΛΟΓΗ (ΣΤΟΧΟΙ & ΕΠΙΛΟΓΗ)
ΕΠΙΛΟΓΗ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΕΠΙΛΟΓΗ μεταβλητή (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΕΠΙΠΕΔΟ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΕΠΙΣΤΡΟΦΗ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΕΠΙΦΑΝΕΙΑ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΕΠΟΜΕΝΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΤΟΙΜΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΥΡΕΣΗ (ΕΓΓΡΑΦΑ)
ΕΦΑΠ() (ΑΡΙΘΜΗΤΙΚΑ)
ΕΦΑΡΜΟΓΗ.ΑΡΧΕΙΟΥ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΕΦΑΡΜΟΓΗ.ΚΑΤ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΗΜ() (ΑΡΙΘΜΗΤΙΚΑ)
ΗΜΕΡΑ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΗΜΕΡΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΗΜΕΡΟΜΗΝΙΑ (ΣΤΑΘΕΡΕΣ)
ΗΧΟ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΗΧΟΙ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΗΧΟΣ (ΗΧΟΙ & ΤΑΙΝΙΕΣ)
ΘΕΣΕ (ΟΡΙΣΜΟΙ)
ΘΕΣΗ (ΓΡΑΦΙΚΑ 2Δ)
ΘΕΣΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΘΕΣΗ.Υ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΘΕΣΗ.Χ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΘΕΣΗ μεταβλητή (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΘΕΣΗΔΕΞΙΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΙΔΙΟΤΗΤΑ (ΟΡΙΣΜΟΙ)
ΙΔΙΟΤΗΤΕΣ (ΕΚΤΥΠΩΣΕΙΣ)
ΙΔΙΟΤΗΤΕΣ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΙΣΧΝΗ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΚΑΘΑΡΟ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΚΑΘΕ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΚΑΘΕ() (ΑΡΙΘΜΗΤΙΚΑ)
ΚΑΛΕΣΕ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΚΑΜΠΥΛΗ (ΓΡΑΦΙΚΑ 2Δ)
ΚΑΝΕ (ΟΡΙΣΜΟΙ)
ΚΑΝΟΝΙΚΑ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΚΑΤ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΚΑΤΑΛΟΓΟΣ (ΚΟΙΝΕΣ ΦΟΡΜΕΣ)
ΚΑΤΑΣΤΑΣΗ (ΟΡΙΣΜΟΙ)
ΚΑΤΑΣΤΑΣΗ.ΤΑΙΝΙΑΣ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΚΑΤΑΧΩΡΗΣΗ (ΕΓΓΡΑΦΑ)
ΚΑΤΩΜΙΣΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΚΕΙΜΕΝΟ (ΕΝΤΟΛΕΣ ΙΣΤΟΥ)
ΚΕΙΜΕΝΟ σταθερά (ΣΤΑΘΕΡΕΣ)
ΚΕΝΟ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΚΕΦ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΚΙΝΗΣΗ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΚΙΝΗΣΗ.Π (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΚΙΝΗΣΗ.ΠΥ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΚΙΝΗΣΗ.Υ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΚΙΝΗΣΗ.ΥΠ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΚΙΝΗΣΗ.Χ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΚΙΝΗΣΗ.ΧΠ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΚΛΑΣΗ (ΟΡΙΣΜΟΙ)
ΚΛΕΙΔΙ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΚΛΕΙΣΕ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΚΛΙΜΑΞ.Υ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΚΛΙΜΑΞ.Χ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΚΟΜ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΚΟΝΣΟΛΑ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΚΡΑΤΗΣΕ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΚΡΥΦΟ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΚΥΚΛΙΚΑ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΚΥΚΛΟΣ (ΓΡΑΦΙΚΑ 2Δ)
ΚΥΛΙΣΗ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΚΥΡΙΟ.ΕΡΓΟ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΚΩΔ() (ΑΡΙΘΜΗΤΙΚΑ)
ΛΑΒΗ (ΕΝΤΟΛΕΣ ΔΕΙΚΤΗ)
ΛΑΒΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΛΑΒΗ.ΑΝΑΛΟΓΙΚΟ.Υ() (ΑΡΙΘΜΗΤΙΚΑ)
ΛΑΒΗ.ΑΝΑΛΟΓΙΚΟ.Χ() (ΑΡΙΘΜΗΤΙΚΑ)
ΛΑΒΗ.ΚΑΤΕΥΘΥΝΣΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΛΑΘΟΣ (ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ)
ΛΑΘΟΣ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΛΑΘΟΣ.ΤΑΙΝΙΑΣ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΛΑΜΔΑ (ΟΡΙΣΜΟΙ)
ΛΑΤΙΝΙΚΑ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΛΕΞΕΙΣ (ΕΓΓΡΑΦΑ)
ΛΙΣΤΑ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΛΟΓ() (ΑΡΙΘΜΗΤΙΚΑ)
ΛΟΓΙΚΟΣ (ΣΤΑΘΕΡΕΣ)
ΛΟΓΙΣΤΙΚΟ (ΣΤΑΘΕΡΕΣ)
ΛΟΓΟΣ (ΗΧΟΙ & ΤΑΙΝΙΕΣ)
ΛΟΓΟΣ ως μεταβλητή (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΛΟΓΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΛΣ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΛΦ() (ΑΡΙΘΜΗΤΙΚΑ)
ΜΑΚΡΥΣ (ΟΡΙΣΜΟΙ)
ΜΑΚΡΥΣ ΤΥΠΟΣ (ΣΤΑΘΕΡΕΣ)
ΜΕ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΜΕΓΑΛΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΜΕΓΑΛΟ.ΣΕΙΡΑΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΜΕΓΑΛΟ.ΣΕΙΡΑΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΜΕΓΕΘΟΣ.ΣΩΡΟΥ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΜΕΓΕΘΟΣ.Υ() (ΑΡΙΘΜΗΤΙΚΑ)
ΜΕΓΕΘΟΣ.Χ() (ΑΡΙΘΜΗΤΙΚΑ)
ΜΕΛΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΜΕΛΟΥΣ.ΤΥΠΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΜΕΛΩΔΙΑ (ΗΧΟΙ & ΤΑΙΝΙΕΣ)
ΜΕΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΜΕΤΑ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΜΕΤΑΘΕΣΗ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΜΕΤΑΘΕΣΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΜΕΧΡΙ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΜΗΚΟΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΜΗΚΟΣ.ΕΜΦ() (ΑΡΙΘΜΗΤΙΚΑ)
ΜΙΚΡΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΜΙΚΡΟ.ΣΕΙΡΑΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΜΙΚΡΟ.ΣΕΙΡΑΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΜΙΚΡΟΣ.ΚΑΤΑΛΟΓΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΜΝΗΜΗ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΜΟΡΦΗ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΜΟΥΣΙΚΗ (ΗΧΟΙ & ΤΑΙΝΙΕΣ)
ΜΟΥΣΙΚΗ.ΜΕΤΡΗΤΗΣ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΜΠΙΠ (ΗΧΟΙ & ΤΑΙΝΙΕΣ)
ΜΠΡΟΣΤΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΝΕΟ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΝΗΜΑ (ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ)
ΝΗΜΑΤΑ (ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ)
ΝΗΜΑΤΑ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΞΕΚΙΝΑ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΟΔΗΓΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΟΘΟΝΗ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΟΚΝ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΟΜΑΔΑ (ΟΡΙΣΜΟΙ)
ΟΜΑΔΑ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΟΜΑΔΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΟΜΑΔΑ.ΣΥΝΟΛΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΟΝΟΜΑ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΟΝΟΜΑ.ΑΡΧΕΙΟΥ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΟΝΟΜΑ.ΑΡΧΕΙΟΥ.ΜΟΝΟ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΟΝΟΜΑ.ΧΡΗΣΤΗ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΟΡΙΟ.ΑΝΑΔΡΟΜΗΣ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΟΡΙΣΕ (ΟΡΙΣΜΟΙ)
ΟΧΙ (ΑΡΙΘΜΗΤΙΚΑ)
ΠΑΙΚΤΗΣ (ΕΝΤΟΛΕΣ ΕΙΚΟΝΩΝ)
ΠΑΙΞΕ (ΗΧΟΙ & ΤΑΙΝΙΕΣ)
ΠΑΝΩ (ΕΝΤΟΛΕΣ ΣΩΡΟΥ)
ΠΑΡΑΓΡΑΦΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΠΑΡΑΓΡΑΦΟΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΠΑΡΑΘΕΣΗ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΠΑΡΑΘΥΡΟ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΠΑΡΑΜ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΠΑΡΑΜ() (ΑΡΙΘΜΗΤΙΚΑ)
ΠΑΡΑΜΕΤΡΟΙ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΠΑΡΕ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΠΑΡΕΚΑΡΕ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΠΑΡΕΜΒΟΛΗ (ΕΓΓΡΑΦΑ)
ΠΑΤΗΜΕΝΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΠΑΧΟΣ (ΓΡΑΦΙΚΑ 2Δ)
ΠΕΔΙΟ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΠΕΔΙΟ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΠΕΔΙΟ μεταβλητή (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΠΕΖ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΠΕΝΑ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΠΕΝΑ μεταβλητή (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΠΕΡΙ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΠΕΡΙ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΠΕΡΙΘΩΡΙΟ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΠΕΡΙΘΩΡΙΟ   (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΠΕΤΑ (ΕΝΤΟΛΕΣ ΣΩΡΟΥ)
ΠΙ (ΣΤΑΘΕΡΕΣ)
ΠΙΝΑΚΑΣ (ΟΡΙΣΜΟΙ)
ΠΙΝΑΚΑΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΠΙΝΑΚΑΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΠΙΣΩ() (ΑΡΙΘΜΗΤΙΚΑ)
ΠΛΑΓΙΑ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΠΛΑΙΣΙΟ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΠΛΑΤΟΣ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΠΛΑΤΟΣ.ΣΗΜΕΙΟΥ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΠΛΑΤΦΟΡΜΑ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΠΛΗΚΤΡΟΛΟΓΙΟ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΠΟΛΥΓΩΝΟ (ΓΡΑΦΙΚΑ 2Δ)
ΠΡΟΣ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΠΡΟΣΘΕΣΕ.ΕΓΓΡΑΦΟ (ΕΓΓΡΑΦΑ)
ΠΡΟΣΘΗΚΗ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΠΡΟΣΩΡΙΝΟ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΠΡΟΧΕΙΡΟ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΠΡΟΧΕΙΡΟ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΠΡΟΧΕΙΡΟ.ΕΙΚΟΝΑ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΠΡΩΤΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΡΙΖΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΡΟΥΤΙΝΑ (ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ)
ΡΥΘΜΙΣΕΙΣ (ΚΟΙΝΕΣ ΦΟΡΜΕΣ)
ΡΩΤΑ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΡΩΤΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΣΑΡΩΣΕ (ΣΤΟΧΟΙ & ΕΠΙΛΟΓΗ)
ΣΒΗΣΕ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΣΕΙΡΑ (ΕΝΤΟΛΕΣ ΣΩΡΟΥ)
ΣΕΙΡΙΑΚΟΣ.ΔΙΣΚΟΥ() (ΑΡΙΘΜΗΤΙΚΑ)
ΣΕΛΙΔΑ (ΕΚΤΥΠΩΣΕΙΣ)
ΣΗΜ() (ΑΡΙΘΜΗΤΙΚΑ)
ΣΗΜΑΔΙ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΣΗΜΕΙΟ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΣΗΜΕΙΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΣΗΜΕΡΑ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΣΤΑΘΕΡΗ (ΟΡΙΣΜΟΙ)
ΣΤΑΤΙΚΗ (ΟΡΙΣΜΟΙ)
ΣΤΗ (ΟΡΙΣΜΟΙ)
ΣΤΗΛΗ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΣΤΗΛΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΣΤΟΚ (ΟΡΙΣΜΟΙ)
ΣΤΟΧΟΙ (ΣΤΟΧΟΙ & ΕΠΙΛΟΓΗ)
ΣΤΟΧΟΣ (ΣΤΟΧΟΙ & ΕΠΙΛΟΓΗ)
ΣΤΡΟΓΓ() (ΑΡΙΘΜΗΤΙΚΑ)
ΣΥΓΓΡΑΦΕΑΣ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΣΥΓΓΡΑΦΗ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΣΥΓΚΡΙΝΕ() (ΑΡΙΘΜΗΤΙΚΑ)
ΣΥΓΚΡΟΥΣΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΣΥΓΧΩΝΕΥΣΕ.ΕΓΓΡΑΦΟ (ΕΓΓΡΑΦΑ)
ΣΥΜΠΙΕΣΗ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΣΥΝ() (ΑΡΙΘΜΗΤΙΚΑ)
ΣΥΝΑΡΤΗΣΗ (ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ)
ΣΥΝΑΡΤΗΣΗ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΣΥΝΑΡΤΗΣΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΣΥΝΕΧΙΣΕ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΣΥΣΚΕΥΗ.ΠΡΟΒΟΛΗΣ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΣΥΣΤΗΜΑ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΣΥΧΝΟΤΗΤΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΣΧΔ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΣΧΕΔΙΑ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΣΧΕΔΙΟ.ΝΗΜΑΤΩΝ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΣΩΡΟΣ (ΕΝΤΟΛΕΣ ΣΩΡΟΥ)
ΣΩΡΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΣΩΡΟΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΣΩΡΟΥΤΥΠΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΣΩΣΕ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΣΩΣΕ.ΕΓΓΡΑΦΟ (ΕΓΓΡΑΦΑ)
ΤΑΙΝΙΑ (ΗΧΟΙ & ΤΑΙΝΙΕΣ)
ΤΑΙΝΙΑ.ΜΕΤΡΗΤΗΣ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΤΑΙΝΙΑ μεταβλητή (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΤΑΙΝΙΕΣ (ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ)
ΤΑΞΗ (ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ)
ΤΑΞΙΝΟΜΗΣΗ (ΕΓΓΡΑΦΑ)
ΤΑΥΤΙΣΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΤΕΛΟΣ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΤΕΛΟΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΤΙΚ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΤΙΛΤΟΣ.ΑΡΧΕΙΟΥ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΤΙΜΗ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΤΙΜΗ() (ΑΡΙΘΜΗΤΙΚΑ)
ΤΙΜΗΣΩΡΟΥ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΤΙΜΗΣΩΡΟΥ() (ΑΡΙΘΜΗΤΙΚΑ)
ΤΙΤΛΟΣ (ΚΟΙΝΕΣ ΦΟΡΜΕΣ)
ΤΜΗΜΑ (ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ)
ΤΜΗΜΑ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΤΜΗΜΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΤΜΗΜΑΤΑ (ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ)
ΤΟΝΟΣ (ΗΧΟΙ & ΤΑΙΝΙΕΣ)
ΤΟΞ.ΕΦ() (ΑΡΙΘΜΗΤΙΚΑ)
ΤΟΠΙΚΗ (ΟΡΙΣΜΟΙ)
ΤΟΠΙΚΟ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΤΟΠΙΚΟ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΤΟΠΙΚΟ() (ΑΡΙΘΜΗΤΙΚΑ)
ΤΟΠΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΤΟΠΟΣ.ΑΡΧΕΙΟΥ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΤΟΤΕ (ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
ΤΥΠΟΣ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΤΥΠΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΤΥΠΟΣ.ΑΡΧΕΙΟΥ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΤΥΠΟΣ μεταβλητή (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΤΥΠΩΣΕ (ΟΘΟΝΗ & ΑΡΧΕΙΑ)
ΤΥΧΑΙΟΣ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΤΥΧΑΙΟΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΤΩΡΑ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
Υ.ΣΗΜΕΙΑ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΥΠΑΡΧΕΙ() (ΑΡΙΘΜΗΤΙΚΑ)
ΥΠΑΡΧΕΙ.ΚΑΤΑΛΟΓΟΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΥΠΜΕΡ() (ΑΡΙΘΜΗΤΙΚΑ)
ΥΠΟΛΟΓΙΣΤΗΣ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΥΠΟΜΝΗΜΑ (ΣΤΑΘΕΡΕΣ)
ΥΠΩΡΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΥΨΟΣ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΥΨΟΣ.ΣΗΜΕΙΟΥ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΦΑΚΕΛΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΦΑΝΕΡΟ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΦΑΡΔΙΑ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΦΕΡΕ (ΕΝΤΟΛΕΣ ΣΩΡΟΥ)
ΦΕΡΕΠΙΣΩ (ΕΝΤΟΛΕΣ ΣΩΡΟΥ)
ΦΘΙΝΟΥΣΑ (ΣΤΑΘΕΡΕΣ)
ΦΙΛΤΡΟ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΦΟΝΤΟ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΦΟΡΜΑ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΦΟΡΜΑ$ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΦΟΡΜΑΡΙΣΜΑ ΑΛΦΑΡΙΘΜΗΤΙΚΩΝ (ΣΤΑΘΕΡΕΣ)
ΦΟΡΜΑΡΙΣΜΑ ΑΡΙΘΜΩΝ (ΣΤΑΘΕΡΕΣ)
ΦΟΡΜΑΡΙΣΜΑ ΓΙΑ ΚΑΘΕ ΤΥΠΟ (ΣΤΑΘΕΡΕΣ)
ΦΟΡΜΑΡΙΣΜΑ ΗΜΕΡΟΜΗΝΙΩΝ ΚΑΙ ΩΡΑΣ (ΣΤΑΘΕΡΕΣ)
ΦΟΡΤΟΣ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΦΟΡΤΩΣΕ (ΔΙΕΡΜΗΝΕΥΤΗΣ)
ΦΟΡΤΩΣΕ.ΕΓΓΡΑΦΟ (ΕΓΓΡΑΦΑ)
ΦΩΝΗ (ΗΧΟΙ & ΤΑΙΝΙΕΣ)
ΦΩΤΟ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
Χ.ΣΗΜΕΙΑ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΧΑΡ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΧΑΡΑΚΤΗΡΕΣ (ΕΝΤΟΛΕΣ ΚΟΝΣΟΛΑΣ)
ΧΑΡΑΞΕ (ΓΡΑΦΙΚΑ 2Δ)
ΧΑΡΚΩΔ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΧΑΡΚΩΔ() (ΑΡΙΘΜΗΤΙΚΑ)
ΧΡΗΣΗ (ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ)
ΧΡΟΝΟΣ$() (ΑΛΦΑΡΙΘΜΗΤΙΚΑ)
ΧΡΟΝΟΣ() (ΑΡΙΘΜΗΤΙΚΑ)
ΧΡΩΜΑ (ΓΡΑΦΙΚΑ 2Δ)
ΧΡΩΜΑ() (ΑΡΙΘΜΗΤΙΚΑ)
ΧΡΩΜΑΤΑ (ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ)
ΨΕΥΔΕΣ (ΣΤΑΘΕΡΕΣ)
ΨΕΥΔΗΣ (ΣΤΑΘΕΡΕΣ)
ΨΗΦΙΟ (ΣΤΑΘΕΡΕΣ)

Και το αντίστοιχο στα Αγγλικά:

\\ Get all English topicd from Help Database
Form 80,50
Flush
Document All$
nl$={
}
Dir appdir$
Retrieve "HELP2000", "SELECT * FROM COMMANDS ORDER BY ENGLISH"
Read n
For i=1 to N {
      Retrieve "HELP2000", "SELECT * FROM COMMANDS ORDER BY ENGLISH", i
      Drop
      read Gr$, Memo$, En$, group_id
      If group_id<>22 then {
            Retrieve "HELP2000","GROUP", 1,"GROUPNUM ", group_id
            Drop 2 : Read group_gr_en$
            En$=Replace$("_"," ",En$)
            If Right$(En$,1)="(" then En$=En$+")"
            Report En$ +"   ("+Rightpart$(group_gr_en$, ","+chr$(160))+")"
            All$=En$ +"   ("+Rightpart$(group_gr_en$, ","+chr$(160))+")"+nl$
      }
}
Print
ClipBoard All$ ' to clipboard
Dir user
Save.Doc All$, "English.txt"
Win "WordPad", Quote$(Dir$+"English.txt")




$()   (OPERATORS IN PRINT)
@()   (OPERATORS IN PRINT)
~()   (OPERATORS IN PRINT)
ABOUT   (INTERPRETER)
ABOUT$   (VARS READ ONLY)
ABS()   (ARITHMETIC FUNCTIONS)
ADD.LICENCE$()   (STRING FUNCTIONS)
AFTER   (FLOW CONTROL)
APPDIR$   (VARS READ ONLY)
APPEND   (DATABASES)
APPEND.DOC   (DOCUMENTS)
ARRAY$()   (STRING FUNCTIONS)
ARRAY()   (ARITHMETIC FUNCTIONS)
ASC()   (ARITHMETIC FUNCTIONS)
ASCENDING   (CONSTANTS)
ASK$()   (STRING FUNCTIONS)
ASK()   (ARITHMETIC FUNCTIONS)
ATN()   (ARITHMETIC FUNCTIONS)
BACK   (CONSOLE COMMANDS)
BACKGROUND   (CONSOLE COMMANDS)
BACKWARD()   (ARITHMETIC FUNCTIONS)
BASE   (DATABASES)
BEEP   (SOUNDS AND MOVIES)
BINARY   (CONSTANTS)
BINARY.AND()   (ARITHMETIC FUNCTIONS)
BINARY.NEG()   (ARITHMETIC FUNCTIONS)
BINARY.OR()   (ARITHMETIC FUNCTIONS)
BINARY.ROTATE()   (ARITHMETIC FUNCTIONS)
BINARY.SHIFT()   (ARITHMETIC FUNCTIONS)
BINARY.XOR()   (ARITHMETIC FUNCTIONS)
BITMAPS   (FILE OPERATIONS)
BMP$()   (STRING FUNCTIONS)
BOLD   (CONSOLE COMMANDS)
BOOLEAN   (CONSTANTS)
BREAK   (FLOW CONTROL)
BROWSER   (BROWSER COMMANDS)
BROWSER$   (VARS READ ONLY)
BUFFER   (DEFINITIONS)
BYTE   (CONSTANTS)
CALL   (FLOW CONTROL)
CAR()   (ARITHMETIC FUNCTIONS)
CASE   (FLOW CONTROL)
CDATE()   (ARITHMETIC FUNCTIONS)
CDR()   (ARITHMETIC FUNCTIONS)
CHANGE   (TARGET & MENU)
CHARSET   (CONSOLE COMMANDS)
CHOOSE.COLOR   (COMMON DIALOGS)
CHOOSE.FONT   (COMMON DIALOGS)
CHOOSE.ORGAN   (SOUNDS AND MOVIES)
CHR$()   (STRING FUNCTIONS)
CHRCODE$()   (STRING FUNCTIONS)
CHRCODE()   (ARITHMETIC FUNCTIONS)
CIRCLE   (DRAWING 2D)
CLASS   (DEFINITIONS)
CLEAR   (INTERPRETER)
CLIPBOARD   (INTERPRETER)
CLIPBOARD$   (VARS READ ONLY)
CLIPBOARD.IMAGE$   (VARS READ ONLY)
CLOSE   (FILE OPERATIONS)
CLS   (CONSOLE COMMANDS)
COLLIDE()   (ARITHMETIC FUNCTIONS)
COLOR   (DRAWING 2D)
COLOR()   (ARITHMETIC FUNCTIONS)
COLORS   (VARS READ ONLY)
COMMAND$   (VARS READ ONLY)
COMPARE()   (ARITHMETIC FUNCTIONS)
COMPRESS   (DATABASES)
COMPUTER$   (VARS READ ONLY)
CONS()   (ARITHMETIC FUNCTIONS)
CONST   (DEFINITIONS)
CONTINUE   (FLOW CONTROL)
CONTROL$   (VARS READ ONLY)
COPY   (BITMAP COMMANDS)
COS()   (ARITHMETIC FUNCTIONS)
CTIME()   (ARITHMETIC FUNCTIONS)
CURRENCY   (CONSTANTS)
CURSOR   (CONSOLE COMMANDS)
CURVE   (DRAWING 2D)
DATA   (STACK COMMANDS)
DATE$()   (STRING FUNCTIONS)
DATE()   (ARITHMETIC FUNCTIONS)
DATEFIELD   (CONSTANTS)
DB.PROVIDER   (DATABASES)
DB.USER   (DATABASES)
DECLARE   (DEFINITIONS)
DEF   (DEFINITIONS)
DELETE   (DATABASES)
DESCENDING   (CONSTANTS)
DESKTOP   (CONSOLE COMMANDS)
DIM   (DEFINITIONS)
DIMENSION()   (ARITHMETIC FUNCTIONS)
DIR   (COMMON DIALOGS)
DIR$   (VARS READ ONLY)
DO   (FLOW CONTROL)
DOC.LEN()   (ARITHMETIC FUNCTIONS)
DOC.PAR()   (ARITHMETIC FUNCTIONS)
DOC.UNIQUE.WORDS()   (ARITHMETIC FUNCTIONS)
DOC.WORDS()   (ARITHMETIC FUNCTIONS)
DOCUMENT   (DEFINITIONS)
DOS   (INTERPRETER)
DOUBLE   (CONSOLE COMMANDS)
DOUBLE as constant   (CONSTANTS)
DRAW   (DRAWING 2D)
DRAWINGS   (FILE OPERATIONS)
DRIVE$()   (STRING FUNCTIONS)
DRIVE.SERIAL()   (ARITHMETIC FUNCTIONS)
DROP   (STACK COMMANDS)
DRW$()   (STRING FUNCTIONS)
DURATION   (VARS READ ONLY)
EACH()   (ARITHMETIC FUNCTIONS)
EDIT   (INTERPRETER)
EDIT.DOC   (DOCUMENTS)
ELSE   (FLOW CONTROL)
ELSE.IF   (FLOW CONTROL)
EMPTY   (VARS READ ONLY)
END   (INTERPRETER)
ENVELOPE$()   (STRING FUNCTIONS)
EOF()   (ARITHMETIC FUNCTIONS)
ERROR   (MODULE COMMANDS)
ERROR$   (VARS READ ONLY)
ESCAPE   (MODULE COMMANDS)
EVAL$()   (STRING FUNCTIONS)
EVAL()   (ARITHMETIC FUNCTIONS)
EVENT   (DEFINITIONS)
EVERY   (FLOW CONTROL)
EXECUTE   (DATABASES)
EXIST()   (ARITHMETIC FUNCTIONS)
EXIST.DIR()   (ARITHMETIC FUNCTIONS)
EXIT   (FLOW CONTROL)
FALSE   (CONSTANTS)
FALSE  2   (CONSTANTS)
FAST   (INTERPRETER)
FIELD   (CONSOLE COMMANDS)
FIELD$()   (STRING FUNCTIONS)
FIELD as variable   (VARS READ ONLY)
FILE$()   (STRING FUNCTIONS)
FILE.APP$()   (STRING FUNCTIONS)
FILE.NAME$()   (STRING FUNCTIONS)
FILE.NAME.ONLY$()   (STRING FUNCTIONS)
FILE.PATH$()   (STRING FUNCTIONS)
FILE.STAMP()   (ARITHMETIC FUNCTIONS)
FILE.TITLE$()   (STRING FUNCTIONS)
FILE.TYPE$()   (STRING FUNCTIONS)
FILELEN()   (ARITHMETIC FUNCTIONS)
FILES   (FILE OPERATIONS)
FILL   (DRAWING 2D)
FILTER$()   (STRING FUNCTIONS)
FIND   (DOCUMENTS)
FKEY   (INTERPRETER)
FLOODFILL   (DRAWING 2D)
FLUSH   (STACK COMMANDS)
FONT   (CONSOLE COMMANDS)
FONTNAME$   (VARS READ ONLY)
FOR   (FLOW CONTROL)
FORM   (CONSOLE COMMANDS)
FORMAT$()   (STRING FUNCTIONS)
FORMATING  ANY TYPE   (CONSTANTS)
FORMATING DATE AND TIME   (CONSTANTS)
FORMATING NUMBERS   (CONSTANTS)
FORMATING STRINGS   (CONSTANTS)
FORWARD()   (ARITHMETIC FUNCTIONS)
FRAC()   (ARITHMETIC FUNCTIONS)
FRAME   (CONSOLE COMMANDS)
FREQUENCY()   (ARITHMETIC FUNCTIONS)
FUNCTION   (MODULE COMMANDS)
FUNCTION$()   (STRING FUNCTIONS)
FUNCTION()   (ARITHMETIC FUNCTIONS)
GET   (FILE OPERATIONS)
GLOBAL   (DEFINITIONS)
GOSUB   (FLOW CONTROL)
GOTO   (FLOW CONTROL)
GRABFRAME$   (VARS READ ONLY)
GRADIENT   (CONSOLE COMMANDS)
GREEK   (CONSOLE COMMANDS)
GROUP   (DEFINITIONS)
GROUP$()   (STRING FUNCTIONS)
GROUP()   (ARITHMETIC FUNCTIONS)
GROUP.COUNT()   (ARITHMETIC FUNCTIONS)
HEIGHT   (VARS READ ONLY)
HELP   (INTERPRETER)
HEX$()   (STRING FUNCTIONS)
HIDE   (CONSOLE COMMANDS)
HIDE$()   (STRING FUNCTIONS)
HILOWWORD()   (ARITHMETIC FUNCTIONS)
HOLD   (CONSOLE COMMANDS)
ICON   (CONSOLE COMMANDS)
IF   (FLOW CONTROL)
IMAGE   (BITMAP COMMANDS)
IMAGE.X()   (ARITHMETIC FUNCTIONS)
IMAGE.X.PIXELS()   (ARITHMETIC FUNCTIONS)
IMAGE.Y()   (ARITHMETIC FUNCTIONS)
IMAGE.Y.PIXELS()   (ARITHMETIC FUNCTIONS)
INKEY$   (VARS READ ONLY)
INKEY()   (ARITHMETIC FUNCTIONS)
INLINE   (MODULE COMMANDS)
INPUT   (SCREEN & FILES)
INPUT$()   (STRING FUNCTIONS)
INSERT   (DOCUMENTS)
INSTR()   (ARITHMETIC FUNCTIONS)
INT()   (ARITHMETIC FUNCTIONS)
INTEGER   (CONSTANTS)
INVENTORY   (DEFINITIONS)
ISLET   (VARS READ ONLY)
ISNUM   (VARS READ ONLY)
ISWINE   (CONSTANTS)
ITALIC   (CONSOLE COMMANDS)
JOYPAD   (MOUSE COMMANDS)
JOYPAD()   (ARITHMETIC FUNCTIONS)
JOYPAD.ANALOG.X()   (ARITHMETIC FUNCTIONS)
JOYPAD.ANALOG.Y()   (ARITHMETIC FUNCTIONS)
JOYPAD.DIRECTION()   (ARITHMETIC FUNCTIONS)
JPG$()   (STRING FUNCTIONS)
KEY$   (VARS READ ONLY)
KEYBOARD   (INTERPRETER)
KEYPRESS()   (ARITHMETIC FUNCTIONS)
LAMBDA   (DEFINITIONS)
LAN$   (VARS READ ONLY)
LATIN   (CONSOLE COMMANDS)
LAYER   (CONSOLE COMMANDS)
LAZY$()   (STRING FUNCTIONS)
LCASE$()   (STRING FUNCTIONS)
LEFT$()   (STRING FUNCTIONS)
LEFTPART$()   (STRING FUNCTIONS)
LEGEND   (CONSOLE COMMANDS)
LEN()   (ARITHMETIC FUNCTIONS)
LEN.DISP()   (ARITHMETIC FUNCTIONS)
LET   (DEFINITIONS)
LETTER$   (VARS READ ONLY)
LINE INPUT   (FILE OPERATIONS)
LINK   (MODULE COMMANDS)
LIST   (INTERPRETER)
LN()   (ARITHMETIC FUNCTIONS)
LOAD   (INTERPRETER)
LOAD.DOC   (DOCUMENTS)
LOCAL   (DEFINITIONS)
LOCALE   (CONSOLE COMMANDS)
LOCALE$()   (STRING FUNCTIONS)
LOCALE()   (ARITHMETIC FUNCTIONS)
LOG()   (ARITHMETIC FUNCTIONS)
LONG   (DEFINITIONS)
LONG TYPE   (CONSTANTS)
LOOP   (FLOW CONTROL)
LOWWORD()   (ARITHMETIC FUNCTIONS)
MAIN.TASK   (FLOW CONTROL)
MARK   (CONSOLE COMMANDS)
MATCH()   (ARITHMETIC FUNCTIONS)
MAX()   (ARITHMETIC FUNCTIONS)
MAX.DATA$()   (STRING FUNCTIONS)
MAX.DATA()   (ARITHMETIC FUNCTIONS)
MDB()   (ARITHMETIC FUNCTIONS)
MEMBER$()   (STRING FUNCTIONS)
MEMBER.TYPE$()   (STRING FUNCTIONS)
MEMO   (CONSTANTS)
MEMORY   (VARS READ ONLY)
MENU   (TARGET & MENU)
MENU$()   (STRING FUNCTIONS)
MENU.VISIBLE   (VARS READ ONLY)
MENU as variable   (VARS READ ONLY)
MENUITEMS   (VARS READ ONLY)
MERGE.DOC   (DOCUMENTS)
MID$()   (STRING FUNCTIONS)
MIN()   (ARITHMETIC FUNCTIONS)
MIN.DATA$()   (STRING FUNCTIONS)
MIN.DATA()   (ARITHMETIC FUNCTIONS)
MODE   (CONSOLE COMMANDS)
MODE variable   (VARS READ ONLY)
MODULE   (MODULE COMMANDS)
MODULE$   (VARS READ ONLY)
MODULE()   (ARITHMETIC FUNCTIONS)
MODULES   (MODULE COMMANDS)
MONITOR   (INTERPRETER)
MOTION   (CONSOLE COMMANDS)
MOTION.W   (CONSOLE COMMANDS)
MOTION.WY   (VARS READ ONLY)
MOTION.X   (VARS READ ONLY)
MOTION.XW   (VARS READ ONLY)
MOTION.Y   (VARS READ ONLY)
MOTION.YW   (VARS READ ONLY)
MOUSE   (VARS READ ONLY)
MOUSE.ICON   (MOUSE COMMANDS)
MOUSE.X   (VARS READ ONLY)
MOUSE.Y   (VARS READ ONLY)
MOUSEA.X   (VARS READ ONLY)
MOUSEA.Y   (VARS READ ONLY)
MOVE   (DRAWING 2D)
MOVIE, MEDIA   (SOUNDS AND MOVIES)
MOVIE.COUNTER   (VARS READ ONLY)
MOVIE.DEVICE$   (VARS READ ONLY)
MOVIE.ERROR$   (VARS READ ONLY)
MOVIE.STATUS$   (VARS READ ONLY)
MOVIE as variable   (VARS READ ONLY)
MOVIES   (FILE OPERATIONS)
MUSIC   (SOUNDS AND MOVIES)
MUSIC.COUNTER   (VARS READ ONLY)
NAME   (FILE OPERATIONS)
NEW   (INTERPRETER)
NORMAL   (CONSOLE COMMANDS)
NOT   (ARITHMETIC FUNCTIONS)
NOT 2   (ARITHMETIC FUNCTIONS)
NOW   (VARS READ ONLY)
NUMBER   (VARS READ ONLY)
ON   (FLOW CONTROL)
OPEN   (FILE OPERATIONS)
OPEN.FILE   (COMMON DIALOGS)
OPEN.IMAGE   (COMMON DIALOGS)
ORDER   (DATABASES)
OS$   (VARS READ ONLY)
OVER   (STACK COMMANDS)
OVERWRITE   (DOCUMENTS)
PAGE   (PRINTINGS)
PARAGRAPH$()   (STRING FUNCTIONS)
PARAGRAPH()   (ARITHMETIC FUNCTIONS)
PARAGRAPH.INDEX()   (ARITHMETIC FUNCTIONS)
PARAM$()   (STRING FUNCTIONS)
PARAM()   (ARITHMETIC FUNCTIONS)
PARAMETERS$   (VARS READ ONLY)
PATH$()   (STRING FUNCTIONS)
PEN   (CONSOLE COMMANDS)
PEN variable   (VARS READ ONLY)
PI   (CONSTANTS)
PIPE   (MODULE COMMANDS)
PIPENAME$()   (STRING FUNCTIONS)
PLATFORM$   (VARS READ ONLY)
PLAY   (SOUNDS AND MOVIES)
PLAYER   (BITMAP COMMANDS)
POINT   (VARS READ ONLY)
POINT()   (ARITHMETIC FUNCTIONS)
POLYGON   (DRAWING 2D)
POS   (VARS READ ONLY)
POS.X   (VARS READ ONLY)
POS.Y   (VARS READ ONLY)
PRINT   (SCREEN & FILES)
PRINTER   (PRINTINGS)
PRINTERNAME$   (VARS READ ONLY)
PRINTING   (PRINTINGS)
PROFILER   (FLOW CONTROL)
PROPERTIES   (PRINTINGS)
PROPERTIES$   (VARS READ ONLY)
PROPERTY   (DEFINITIONS)
PUSH   (STACK COMMANDS)
PUT   (FILE OPERATIONS)
QUOTE$()   (STRING FUNCTIONS)
RANDOM()   (ARITHMETIC FUNCTIONS)
READ   (STACK COMMANDS)
READY()   (ARITHMETIC FUNCTIONS)
RECORDS()   (ARITHMETIC FUNCTIONS)
RECURSION.LIMIT   (INTERPRETER)
REFRESH   (CONSOLE COMMANDS)
RELEASE   (CONSOLE COMMANDS)
REMOVE   (INTERPRETER)
REPEAT   (FLOW CONTROL)
REPLACE$()   (STRING FUNCTIONS)
REPORT   (CONSOLE COMMANDS)
REPORTLINES   (VARS READ ONLY)
RESTART   (FLOW CONTROL)
RETRIEVE   (DATABASES)
RETURN   (DATABASES)
RIGHT$()   (STRING FUNCTIONS)
RIGHTPART$()   (STRING FUNCTIONS)
RINSTR()   (ARITHMETIC FUNCTIONS)
RND   (VARS READ ONLY)
ROUND()   (ARITHMETIC FUNCTIONS)
ROW   (VARS READ ONLY)
SAVE   (INTERPRETER)
SAVE.AS   (COMMON DIALOGS)
SAVE.DOC   (DOCUMENTS)
SCALE.X   (VARS READ ONLY)
SCALE.Y   (VARS READ ONLY)
SCAN   (TARGET & MENU)
SCORE   (SOUNDS AND MOVIES)
SCROLL   (CONSOLE COMMANDS)
SEARCH   (DATABASES)
SEEK   (FILE OPERATIONS)
SEEK()   (ARITHMETIC FUNCTIONS)
SELECT   (FLOW CONTROL)
SET   (DEFINITIONS)
SETTINGS   (COMMON DIALOGS)
SGN()   (ARITHMETIC FUNCTIONS)
SHIFT   (STACK COMMANDS)
SHIFTBACK   (STACK COMMANDS)
SHORTDIR$()   (STRING FUNCTIONS)
SHOW   (CONSOLE COMMANDS)
SHOW$()   (STRING FUNCTIONS)
SIN()   (ARITHMETIC FUNCTIONS)
SINGLE   (CONSTANTS)
SINT()   (ARITHMETIC FUNCTIONS)
SIZE.X()   (ARITHMETIC FUNCTIONS)
SIZE.Y()   (ARITHMETIC FUNCTIONS)
SLOW   (INTERPRETER)
SND$()   (STRING FUNCTIONS)
SORT   (DOCUMENTS)
SOUND   (SOUNDS AND MOVIES)
SOUNDS   (FILE OPERATIONS)
SPEECH   (SOUNDS AND MOVIES)
SPEECH as variable   (VARS READ ONLY)
SPEECH$()   (STRING FUNCTIONS)
SPRITE   (BITMAP COMMANDS)
SPRITE$   (VARS READ ONLY)
SQRT()   (ARITHMETIC FUNCTIONS)
STACK   (STACK COMMANDS)
STACK$()   (STRING FUNCTIONS)
STACK()   (ARITHMETIC FUNCTIONS)
STACK.SIZE   (VARS READ ONLY)
STACKITEM$()   (STRING FUNCTIONS)
STACKITEM()   (ARITHMETIC FUNCTIONS)
STACKTYPE$()   (STRING FUNCTIONS)
START   (INTERPRETER)
STATIC   (DEFINITIONS)
STEP   (DRAWING 2D)
STOCK   (DEFINITIONS)
STR$()   (STRING FUNCTIONS)
STRING$()   (STRING FUNCTIONS)
STRUCTURE   (DATABASES)
SUB   (MODULE COMMANDS)
SWAP   (DEFINITIONS)
SWITCHES   (INTERPRETER)
TAB   (VARS READ ONLY)
TAB()   (ARITHMETIC FUNCTIONS)
TABLE   (DATABASES)
TAN()   (ARITHMETIC FUNCTIONS)
TARGET   (TARGET & MENU)
TARGETS   (TARGET & MENU)
TEMPNAME$   (VARS READ ONLY)
TEMPORARY$   (VARS READ ONLY)
TEST   (INTERPRETER)
TEST()   (ARITHMETIC FUNCTIONS)
TEXT, HTML   (BROWSER COMMANDS)
TEXT as constant   (CONSTANTS)
THEN   (FLOW CONTROL)
THREAD   (MODULE COMMANDS)
THREAD.PLAN   (FLOW CONTROL)
THREADS   (MODULE COMMANDS)
THREADS$   (VARS READ ONLY)
TICK   (VARS READ ONLY)
TIME$()   (STRING FUNCTIONS)
TIME()   (ARITHMETIC FUNCTIONS)
TIMECOUNT   (VARS READ ONLY)
TITLE   (COMMON DIALOGS)
TODAY   (VARS READ ONLY)
TONE   (SOUNDS AND MOVIES)
TRIM$()   (STRING FUNCTIONS)
TRUE   (CONSTANTS)
TRUE  2   (CONSTANTS)
TRY   (FLOW CONTROL)
TUNE   (SOUNDS AND MOVIES)
TWIPSX   (VARS READ ONLY)
TWIPSY   (VARS READ ONLY)
TYPE$()   (STRING FUNCTIONS)
UCASE$()   (STRING FUNCTIONS)
UINT()   (ARITHMETIC FUNCTIONS)
UNION.DATA$()   (STRING FUNCTIONS)
UNTIL   (FLOW CONTROL)
USE   (MODULE COMMANDS)
USER.NAME$   (VARS READ ONLY)
USGN()   (ARITHMETIC FUNCTIONS)
VAL()   (ARITHMETIC FUNCTIONS)
VALID()   (ARITHMETIC FUNCTIONS)
VERSION   (INTERPRETER)
VERSION as constant   (CONSTANTS)
VIEW   (DATABASES)
VOLUME   (SOUNDS AND MOVIES)
VOLUME as variable   (VARS READ ONLY)
WAIT   (FLOW CONTROL)
WEAK$()   (STRING FUNCTIONS)
WHILE   (FLOW CONTROL)
WIDTH   (DRAWING 2D)
WIDTH as variable   (VARS READ ONLY)
WIN   (INTERPRETER)
WINDOW   (CONSOLE COMMANDS)
WORDS   (DOCUMENTS)
WRITABLE()   (ARITHMETIC FUNCTIONS)
WRITE   (FILE OPERATIONS)
WRITER   (INTERPRETER)
X.TWIPS   (VARS READ ONLY)
Y.TWIPS   (VARS READ ONLY)