Σάββατο 28 Δεκεμβρίου 2019

Αναθεώρηση 5, Έκδοση 9.9

Ανέβηκε η αναθεώρηση 5 της έκδοσης 9.9
Σε αυτήν την αναθεώρηση έκανα το EditBox ή Κείμενο, ένα στοιχείο ελέγχου να  δουλεύει για κείμενο RTL (right to left).Όπως ήταν πριν εμφάνιζε κείμενο όπως πρέπει αλλά δεν λειτουργούσε η αλλαγή κατεύθυνσης του δρομέα. Ακόμα υπάρχει δουλειά για το TextBox (δεν το έχω φτιάξει).
Το EditBox έχει μια διαμόρφωση ως TextBox, δηλαδή να εμφανίζει μόνο μια γραμμή πληροφορίας, χωρίς να δέχεται το Enter (το οποίο στο κανονικό EditBox παρεμβάλει μια νέα γραμμή).
Για να γίνει κατανοητό αυτό έχω βάλει ένα πρόγραμμα το SimpleTxt, με ελληνικές εντολές, και το SimpleTxtEn, με αγγλικές εντολές, στο info.
Με την εγκατάσταση της νέας αναθεώρησης (αφού κάνουμε απεγκατάσταση της παλιάς, αν έχουμε ήδη τη Μ2000 στον υπολογιστή μας), θα δώσουμε το Dir Appdir$: Load Info και μόλις φορτωθεί το νέο Info θα πατήσουμε το F1 για να μεταγραφεί στο φάκελο χρήστη..

Το EditBox, έχει τρεις επιμέρους διαμορφώσεις: Να εισάγει αριθμό με δεκαδικά, ή να εισάγει ακέραιο ή να εισάγει μια γραμμή κειμένου. Στο κείμενο μπορούμε να βάζουμε και RTL (πχ εβραϊκά).

Στο παράδειγμα φτιάχνουμε μια φόρμα με τρία στοιχεία ελέγχου τύπου Κείμενο (EditBox). Σε καθένα ορίζουμε την ιδιότητα που θέλουμε, να είναι αληθές, και συνδέουμε μια μεταβλητή με την τιμή που θα διαβάζουμε. Σε κάθε στοιχείο αν πατήσουμε το Ctrl+F1 θα πάρουμε μια νέα εμφάνιση "αποτελέσματος". Αν πατάμε enter ή κάνουμε κλικ πάνω στη φόρμα τότε παίρνουμε νέο αποτέλεσμα. Το αποτέλεσμα είναι να εμφανιστούν πληροφορίες απευθείας πάνω στη φόρμα, από τα στοιχεία, και ένα στοιχείο, το πρώτο να αυξάνει την τιμή του.
Επίσης βλέπουμε πως βάζουμε ετικέτες με την Επιγραφή ή Legend, με στοίχιση δεξιά.




Όρισε Φόρμα1 Φόρμα
Όρισε Κειμ1 Κείμενο Φόρμα Φόρμα1
Όρισε Κειμ2 Κείμενο Φόρμα Φόρμα1
Όρισε Κειμ3 Κείμενο Φόρμα Φόρμα1
θεσηΧ=4000
Μέθοδος Κειμ1, "Move", θεσηΧ,1200,5000,400
Μέθοδος Κειμ2, "Move", θεσηΧ,1800,5000,400
Μέθοδος Κειμ3, "Move", θεσηΧ,2400,5000,400
νγ$={
}
Με Κειμ1, "ShowAlways", Αληθές, "NumberOnly", Αληθές, "Value" ως Τιμ1
Με Κειμ2, "ShowAlways", Αληθές, "NumberIntOnly",Αληθές, "Value" ως Τιμ2
Με Κειμ3, "ShowAlways", Αληθές, "UsedAsTextBox", Αληθές,"Text" ως Τιμ3$
Τιμ1=93.112
Τιμ2=1456
Τιμ3$="Μια γραμμή μόνο"
Συνάρτηση Κειμ1.About {
      Κάλεσε Τοπικά Φόρμα1.About()
}
Συνάρτηση Κειμ2.About {
      Κάλεσε Τοπικά Φόρμα1.About()
}
Συνάρτηση Κειμ3.About {
      Κάλεσε Τοπικά Φόρμα1.About()
}
Συνάρτηση Φόρμα1.About {
      Επίπεδο Φόρμα1 {
            Οθόνη #606060
            Τύπωσε $(Τρόπος),"Κάνε κλικ εδώ ή πάτα Enter"
}
}
Συνάρτηση Φόρμα1.Enter {
      Κάλεσε Τοπικά Φόρμα1.Click()
}
Συνάρτηση Φόρμα1.Click {
      Επίπεδο Φόρμα1 {
            Τιμ1=Τιμ1+1 \\ δεν δουλεύει το Τιμ1++ γιατί είναι αντικείμενο και όχι μεταβλητή
            Οθόνη #606060
            Τύπωσε Τιμ1, Τιμ2, " Ctrl+F1"
            Τύπωσε Πάνω $(9), Τιμ3$
            Ανανέωση
            Μέθοδος Κειμ1, "Show"
}
}
Τρόπος=4
Επίπεδο Φόρμα1 {
      Γραμματοσειρά "Arial Black"
      Παράθυρο 16, 10000,4500
      Πένα 15
      Οθόνη #202020
      Οθόνη #606060, Ύψος-2
      Θέση θεσηΧ, 1200+400
      Επιγραφή "Ετικέτα ", Γραμματοσειρά$, Τύπος, 0, 1
      Θέση θεσηΧ, 1800+400
      Επιγραφή "Άλλη ετικέτα ", Γραμματοσειρά$, Τύπος, 0, 1
      Θέση θεσηΧ, 2400+400
      Επιγραφή "Και άλλη ετικέτα ", Γραμματοσειρά$, Τύπος, 0, 1
      Πένα 13
      Τύπωσε $(Τρόπος),"Κάνε κλικ εδώ ή πάτα Enter"
}
Μέθοδος Φόρμα1, "Show",1
Όρισε Κειμ1 Τίποτα
Όρισε Φόρμα1 Τίποτα


Και στα αγγλικά


Declare Form1 Form
Declare text1 editbox Form Form1
Declare text2 editbox Form Form1
Declare text3 editbox Form Form1
PositionX=4000
Method text1, "Move", PositionX,1200,5000,400
Method text2, "Move", PositionX,1800,5000,400
Method text3, "Move", PositionX,2400,5000,400
nl$={
}

With text1, "ShowAlways", True, "NumberOnly", True, "Value" As Value1
With text2, "ShowAlways", True, "NumberIntOnly", True, "Value" As Value2
With text3, "ShowAlways", True, "UsedAsTextBox", True,"Text" As Value3$
Value1=93.112
Value2=1456
Value3$="One line only"
Function text1.About {
      Call Local Form1.About()
}
Function text2.About {
      Call Local Form1.About()
}
Function text3.About {
      Call Local Form1.About()
}
Function Form1.About {
      Layer Form1 {
            Cls #606060
            Print $(Way),"Press right mouse button or Enter"
}
}
Function Form1.Enter {
      Call Local Form1.Click()
}
Function Form1.Click {
      Layer Form1 {
            Value1=Value1+1 \\  Value1++ not work becaue Value1 is an object (linked property)
            Cls #606060
            Print Value1, Value2, " Ctrl+F1"
            Print Over $(9), Value3$
            Refresh
            Method text1, "Show"
}
}
Way=4
Layer Form1 {
      Font "Arial Black"
      Window 16, 10000,4500
      Pen 15
      Cls #202020
      Cls #606060, Ύψος-2
      Move PositionX, 1200+400
      Legend "Label ", Fontname$, Mode, 0, 1
      Move PositionX, 1800+400
      Legend "Another Label ", Fontname$, Mode, 0, 1
      Move PositionX, 2400+400
      Legend "And another Label ", Fontname$, Mode, 0, 1
      Pen 13
      Print $(Way),"Press right mouse button or Enter"
}
Method Form1, "Show",1
Declare text1 Nothing
Declare Form1 Nothing



Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.