Παρασκευή, 5 Μαΐου 2017

Παράδειγμα (γράφτηκε σε Linux με Wine)

Το πρόγραμμα (άσκηση) γράφτηκε απευθείας σε Μ2000 που έτρεχε σε Linux με Wine.
Η εξαγωγή σε html έγινε απευθείας από το διορθωτή της Μ2000 με ctrl+C, με αντιγραφή (κάνει την μετατροπή στο κείμενο που επιλέγουμε - με ctrl+A το επιλέγουμε όλο). Για να το βάλω σε αυτό το blog όμως το επικολλώ πρώτα σε Libbreoffice Writer και μετά κάνω αντιγραφή από αυτό και επικόλληση εδώ στο blog. Σε Windows σύστημα δεν χρειάζεται κάποιος επεξεργαστής κειμένου, δουλεύει απ' ευθείας (αν από Wine κάνουμε απευθείας επικόλληση δεν θα βγει με χρώμα το κείμενο, και προφανώς εδώ κάτι παίζει με τον Firefox σε Ubuntu).
Η χρησιμότητα του προγράμματος είναι για να μάθουμε, να το πειράξουμε κιόλας, και να δούμε τι θα βγάλει!
Πρώτα πειράζουμε ότι είναι σταθερές, δηλαδή νούμερα και κείμενα (αλφαριθμητικά)! Κάποια νούμερα είναι χρώματα, κάποια όμως έχουν συγκεκριμένη λειτουργία, άλλες φορές δηλώνουν μια επιλογή τρόπου εκτέλεσης, και άλλες φορές τιμές για τη συγκεκριμένη επιλογή, όπως στην Αναφορά μια από αυτές είναι το κείμενο και μια άλλη το πλάτος εμφάνισης.
Δοκιμάστε χρώματα, άλλα κείμενα.
Η Αντίγραψε αντιγράφει απευθείας στην οθόνη από την οθόνη, απλά εδώ την βάζουμε να αντιγράφει σε αλφαριθμητικό. Εκτός από την περίπτωση που δίνουμε όνομα και σώνει όλη τη οθόνη σε αρχείο, στις άλλες παίρνει ως αριστερή πάνω γωνία την θέση του δρομέα, και έτσι δίνουμε το πλάτος και το ύψος που θέλουμε, και αν δεν το δώσουμε σε αλφαριθμητικό τότε θα δώσουμε δυο ακόμα νούμερα, το σημείο που θέλουμε να βγει το αντίγραφο (την πάνω αριστερή γωνία του προορισμού).
Η εντολή εικόνα κάνει κάτι άλλο. Παίρνει αρχείο ή αλφαριθμητικό με εικόνα και μπορεί να εμφανίσει την εικόνα με το πλάτος που θέλουμε (και βρίσκει το ύψος μόνη της), ή να δώσουμε πλάτος και ύψος (άρα να χαλάσουμε τις αρχικές αναλογίες. Και οι δυο εντολές έχουν και άλλες παρόμοιες λειτουργίες. Θα τις δούμε άλλη φορά!

Δείτε στις εικόνες ότι η φόρμα της Ρώτα() έχει διαφορετικό μέγεθος. Οι έτοιμες φόρμες διαλόγων της Μ2000 έχουν την δυνατότητα να μεγαλώνουν ή να μικραίνουν χωρίς να αλλάζει αυτό που δείχνουν.
Επίσης δείτε ότι με την χρήση του αλφαριθμητικού που κρατάει εικόνα δώσαμε την εικόνα στην φόρμα εισαγωγής!
Η έτοιμη εικόνα στη Ρώτα εμφανίζεται με μαύρο φόντο, ενώ σε Windows με διάφανο! (έχει θέμα το Wine)
Στην δεύτερη εικόνα η εντολή Φόντο 5,0 έβαλε φόντο από Ματζέντα μέχρι Μαύρο, υπολογίζοντας αυτόματα όλα τα ενδιάμεσα.
Επίσης φαίνεται ένα μαύρο περιθώριο (σε αυτό μπορούμε να αλλάξουμε χρώμα, και να το χρησιμοποιήσουμε και σαν οθόνη, να γράψουμε δηλαδή, αλλά εδώ δεν μας απασχολεί καθόλου).





\\ Στην άσκηση αυτή βλέπουμε:
\\ 1. Πώς ορίζουμε τη βασική φόρμα μας
\\ Εδώ βάζουμε μέγεθος γραμματων 15, σε πλήρη οθόνη  (μπορεί να βγει και περιθώριο)
\\ Μετά ορίζουμε φόντο το 5 (Ματζέντα), και το εφαρμόζουμε -(καθαρίζουμε την οθόνη)
\\ η δεύτερη παράμετρος λέει ότι η χωριστή οθόνη (αυτή που ολισθαίνει) θα ξεκινάει από τη
\\ πρώτη γραμμή (άρα δεν θα έχουμε χωριστή οθόνη)
\\ Μετά βάζουμε το 14 το κίτρινο.
\\ Τα χρώματα είναι από 0 έως το 15 ως βασικά των Windows
\\ Μπορούμε να δώσουμε RGB με δυο τρόπους:
\\ Με τύπο Html:
\\ το #FFFFFF είναι το άσπρο (πάντα θα πρέπει μετά το # να έχει έξι  νούμερα για να διαβαστεί ως αριθμός html χρώματος)
\\ Με συνάρτηση που γυρνάει το νούμερο (είναι πάντα αρνητικό, ώστε ξεχωρίζει από τα θετικά που είναι ειδικού τύπου)
\\ το Χρώμα(255,255,255) είναι το άσπρο.
\\ Πένα Χρώμα(255,0,0)   \\ βαζουμε το κόκκινο
\\ Πένα #FF0000
\\ Πένα #0000FF  \\ το μπλέ - χρειάζεται τα 0000 στην αρχή.
\\ 2. Κάποια στοιχεία για το πώς αντιγράφουμε την οθόνη και την κρατάμε σε αρχείο ή σε μεταβλητή
\\ 3. Κάποια στοιχεία για την χρήση της εντολής Αναφορά
\\ 4. Την χρήση της Ρώτα() ( και ως Ρώτα$() )
\\ 5. Χρήση μερικών εντολών  νημάτων.
Παράθυρο 15,0
\\ άλλος τρόπος είναι να οριστεί η οθόνη βάσει των χαρακτήρων που θέλουμε με την εντολή Φόρμα
\\ οπότε υπολογίζεται αυτόματα το μέγεθος χαρακτήρων και το διάστιχο, για να έχουμε σε όλο το
\\ παράθυρο αυτό που ζητάμε (εδώ ζητάμε 80 χαρακτήρες επί 40 γραμμές)
\\ κατεβάστε την εντολή φόρμα στην επόμενη γραμμή!
Σημ 1 : Φόρμα 80,40
Οθόνη 5,0
Πένα 14
\\ τα Html χρώματα είναι RGB ενώ στην μνήμη γράφονται σαν BGR, οπότε ισχύουν τα παρακάτω:
Τύπωσε #0000FF=Χρώμα(0,0,255), #0000FF=-(255*256*256), #0000FF=-0χFF0000
Θέση χ.σημεια/5, 3000
Δρομέας ! \\ μετατράπει την θέση του δρομέα γραφικών σε θέση του δρομέα κειμένου
\\ ισχύει και το Θέση ! για μετατροπή αντίστροφη
Κειμ$={   Βάζουμε μερικά κενά στην αρχή για εσοχή! Η Ρώτα() υπάρχει και ως Ρώτα$(). Η δεύτερη γυρνάει το όνομα του πλήκτρου και αν θέλουμε αφήνουμε ένα όρισμα κενό και πάμε στο επόμενο. Αυτή είναι μια παράγραφος, και ακολουθεί άλλη μία.

             - Δουλεύει και σαν MsgBox και σαν InputBox
             
             }
\\ χωρίς αριθμό θεωρεί ότι είναι το 0 - πλήρης στοίχιση
\\ Η Αναφορά γράφει κείμενο με αναδίπλωση  λέξης
\\ μπορούμε να ορίσουμε πλάτος σε σημεία οθόνης ή σε χαρακτήρες
\\ το βρίσκει αυτόματα η εντολή από τον αριθμό, αν είναι μικρός τον θεωρεί ως αριθμό χαρακτήρων
\\ εδώ δίνουμε πλάτος τα 3/5 της οθόνης (της φόρμας εντός του περιθωρίου)
\\ Αν το κείμενο απαιτεί και άλλες γραμμές για να εμφανιστεί και δεν υπάρχουν, τότε περιμένει να πατήσουμε διάστημα ή το αριστερό πλήκτρο του ποντικιού (τυχόν νήματα, ή φόρμας θα συνεχίσουν να τρέχουν)       
Αναφορά Κειμ$, χ.σημεια*3/5
Αναφορά 0, Κειμ$, χ.σημεια*3/5
\\  1 - στοίχιση δεξιά
Αναφορά 1, Κειμ$, χ.σημεια*3/5
\\ 2 - στοίχιση κέντρο
Αναφορά 2, Κειμ$, χ.σημεια*3/5
\\ 3 - στοίχιση αριστερά
Αναφορά 3, Κειμ$, χ.σημεια*3/5

Αν Αληθές Τότε {
      Θέση 0,0
      β$=""
      Ανανέωση
      Αντίγραψε χ.σημεία, υ.σημεία στο β$
} Αλλιώς {
      Αντίγραψε "Οθόνη1"
      \\ τώρα έχουμε το Οθόνη1.bmp στον τρέχοντα κατάλογος Κατ$
      β$=""
      \\ τώρα φορτώνουμε την εικόνα στο β$
      Εικόνα "Οθόνη1" στο β$
}
Θέση χ.σημεία/2, υ.σημεία/2
Εικόνα Β$, χ.σημεία/2
α$="Γιώργος"
Μ=Ρώτα("Το όνομά σου","Αλλαγή ονόματος","ΑΛΛΑΓΗ","ΕΠΙΣΤΡΟΦΗ",β$,α$)
Τύπωσε Μ ' δίνει 0,1 ή 2 '' 0 με Esc, 1με το Αλλαγή, και 2 με το Επιστροφή
Αν Μ=1 Τότε {
      'Στο σωρό έχει αφήσει το αποτέλεσμα
      Διάβασε α$
}

Αν Ρώτα$("Το όνομά σου","Αλλαγή ονόματος","ΑΛΛΑΓΗ","ΕΠΙΣΤΡΟΦΗ",β$,α$)="ΑΛΛΑΓΗ" Τότε {
      Διάβασε α$
}

Αν Ρώτα("Να καθαρίσω την οθόνη", "Ενέργεια", "Καθάρισε","Όχι")=1 Τότε Οθόνη 5,0

Αν Ρώτα("Να καθαρίσω την οθόνη", , "Καθάρισε","Όχι")=1 Τότε {
      Οθόνη : Φόντο 5, 0
      Δρομέας Πλάτος/2,10
      \\ τώρα θα τυπώσουμε το κείμενο από το μέσον της γραμμής και από την 11η γραμμή
      \\ και ορίζουμε πλάτος το ένα τέταρτο της γραμμής
      \\ αφού δεν δίνουμε πρώτο αριθμό σημαίνει ότι θέλουμε πλήρη στοίχιση!
      Αναφορά Κειμ$, Πλάτος/4
      Δρομέας 0,0 \\ Τύπωσε @(0,0),    \\ κάνει το ίδιο πράγμα
}

Κ$={Ένα κείμενο
      η δεύτερη παράγραφος, μπλα μπλα, η δεύτερη παράγραφος, μπλα μπλα,η δεύτερη παράγραφος
      η τρίτη παράγραφος
      η τέταρτη.........
      και άλλη...
      και άλλη...
      }
\\ δοκιμάστε με πάτημα του αριστερού πλήκτρου του ποντικιού να τραβήξετε το κείμενο πάνω ή κάτω
\\ 'Αλλος τρόπος: Στην δεξιά πλευρά εμφανίζεται η μπάρα ολίσθησης  όταν  ο δείκτης του ποντικιού βρίσκεται εκεί.
Μ=0
Μ1=Αληθές
Νήμα {
      Τύπωσε Μ
      Μ++
      Αν Μ=10 Τότε {
            Μετά 2000 {
                  Τύπωσε "Τελείωνε...επιτέλους"
                  Μ1=Ψευδές
                  Ανανέωση
            }
            Νήμα Αυτό Σβήσε
      }
}  Ως Ν Κάθε 50
Αν Ρώτα(Κ$)=1 Τότε Τύπωσε "Οκ"
\\ Η Νήματα Σβήσε βολεύει αν έχουμε νήματα που ορίστηκαν από νήμα
\\ όπως και για "αυτόματα νήματα" όπως αυτό που φτιάχνει η Μετά { }
Νήματα Σβήσε
Αν Μ1 Τότε Τύπωσε "Μπράβο δεν άργησες"