236 γραμμές
22 KiB
Markdown
236 γραμμές
22 KiB
Markdown
+++
|
||
title = 'Xbasic'
|
||
date = '0000-04-01T00:00:00Z'
|
||
description = ''
|
||
author = 'Κώστας Τσακάλογλου(mailto:tsakf@hellug.gr)'
|
||
issue = ['Magaz 24']
|
||
issue_weight = 2
|
||
+++
|
||
|
||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
*Μία γλώσσα προγραμματισμού Basic που έχει αρκετά στοιχεία C. Μέρος ΙΙ*
|
||
|
||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
Μετα από μια πρώτη ματιά και την πρώτη προσπάθεια να γράψω ένα πρόγραμμα σκέφτηκα ότι πρώτα πρέπει να εξοικειωθώ με το περιβάλλον ανάπτυξης εφαρμογών της XBASIC
|
||
για να μπορώ να δουλέψω καλύτερα. Στο σημερινό άρθρο θα σας παρουσιάσω το περιβάλλον ανάπτυξης για να είναι κατανοητό το παράδειγμα εφαρμογής που θα γραφτεί
|
||
μετά.
|
||
|
||
**1. Περιβάλλον συγγραφής του κώδικα**
|
||
---------------------------------------------------------------
|
||
|
||
**2. Παράθυρο εμφάνισης αποτελεσμάτων**
|
||
----------------------------------------------------------------
|
||
|
||
**3. Παράθυρο κατασκευής γραφικών αντικειμένων**
|
||
-------------------------------------------------------------------------
|
||
|
||
**4. Επίλογος**
|
||
----------------------------------------
|
||
|
||
|
||
### [1. Περιβάλλον συγγραφής του κώδικα]{#s1}
|
||
|
||

|
||
|
||
Σε αυτό το παράθυρο γράφουμε τον κώδικα και έχουμε όλες τις δυνατότητες που έχουν τα σύγχρονα περιβάλλοντα προγραμματισμού. Πχ. σημεία προσωρινής παύσης
|
||
(breakpoints), εμφάνιση τιμών μεταβλητών κ.λ.π.\
|
||
Αναλυτικά θα δούμε τις κυριώτερες επιλογές των μενού.
|
||
|
||
- FileNew\
|
||
Επιλέγεται νέο αρχείο. Διαγράφεται ότι έχει παραμείνει στην μνήμη και διακόπτεται οποιαδήποτε λειτουργία. Τα δεδομένα δεν αποθηκεύονται έτσι πρέπει να έχει
|
||
γίνει πριν αποθήκευση αν θέλουμε να χρησιμοποιήσουμε πάλι το πρόγραμμα που μόλις είχαμε γράψει. Η επιλογή αυτή έχει μας δίνει την δυνατότητα να
|
||
δημιουργήσουμε 3 διαφορετικούς τύπους κώδικα.
|
||
1. Απλό αρχείο χαρακτήρων (text file)
|
||
2. Κανονικό πρόγραμμα BASIC (χωρίς την χρήση γραφικού περιβάλλοντος)
|
||
3. Πρόγραμμα που χρησιμοποιεί γραφικό περιβάλλον (φόρμες, κουμπιά κ.λ.π.)
|
||
- FileTextLoad\
|
||
Με αυτή την επιλογή μπορούμε να φορτώσουμε στο περιβάλλον αρχεία χαρακτήρων (text files) που μπορεί να μην είναι πρόγραμμα πχ. σημειώσεις. Στο περιβάλλον
|
||
δεν υποστηρίζεται η εμφάνιση χαρακτήρων πάνω από το 128 όπου αν υπάρχουν τέτoιοι χαρακτήρες θα φαίνονται περίεργα. Επίσης στο αρχείο χαρακτήρων δεν πρέπει
|
||
να υπάρχουν χαρακτήρες NULL. Βέβαια εδώ δημιουργείται το ερώτημα τι γινέται με τα Ελληνικα; Νομίζω όμως οτι μπορούμε να ξεπεράσουμε αυτόν τον περιορισμό αν
|
||
τα μηνύματα του προγράμματος δεν είναι μέσα στο ν κώδικα αλλά σε αρχείο όπου θα διαβάζεται από το πρόγραμμα. Αυτός ο τρόπος δίνει επίσης την δυνατότητα να
|
||
έχουμε διαφορετικά αρχεία για κάθε γλώσσα και έτσι νομίζω ότι ο περιορισμός του περιβάλλοντος να μην δέχεται χαρακτήρες \> 128 δεν είναι σπουδαίο πρόβλημα.
|
||
- FileLoad\
|
||
Φορτώνεται στο περιβάλλον ένα πρόγραμμα που εχει αποθηκευθεί από πριν.
|
||
- FileSave\
|
||
Αποθηκεύεται το τρέχον πρόγραμμα σε αρχείο.
|
||
- FileMode\
|
||
Επιλέγεται ο τρόπος λειτουργίας του περιβάλλοντος. Text mode είναι για να μπορούμε να επεξεργαζόμαστε οποιοδήποτε κείμενο ενώ το Program Mode μας δίνει τις
|
||
ευκολίες που χρειαζόμαστε για το γράψιμο προγραμμάτων
|
||
- FileRename\
|
||
Το επιλέγουμε για να αλλάξουμε το όνομα του προγράμματος που έχουμε στην μνήμη.
|
||
- FileQuit\
|
||
Δηλώνουμε ότι θέλουμε να εγκαταλείψουμε το περιβάλλον εργασίας και άν έχουμε κάνει μεταβολές στο πρόγραμμά μας το περιβάλλον μας ζητά επιβεβαίωση και φύλαξη
|
||
των τελευταίων αλλαγών άν θέλουμε.
|
||
- EditCut\
|
||
Διαγράφει καί αποθηκεύει σε προσωρική μνήμη (clipboard) το επιλεγμένο κείμενο.
|
||
- EditGrab\
|
||
Αντιγράφει το επιλεγμένο κείμενο στην προσωρινή μνήμη (clipboard).
|
||
- EditPaste\
|
||
Παρεμβάλλει στο τρέχον σημείο ότι είναι αποθηκευμένο στην μνήμη.
|
||
- EditFind\
|
||
Αναζήτηση κειμένου στο πρόγραμμα
|
||
- Edit\_\_\
|
||
Αντικατάσταση κειμένου με άλλο
|
||
- EditRead\
|
||
Ανάγνωση αρχείου στην προσωρινή μνήμη (clipboard).
|
||
- EditWrite\
|
||
Εγγραφή σε αρχείο της προσωρινής μνήμης (clipboard).
|
||
- EditAbandon\
|
||
Ακύρωση όλων των αλλαγών στην τρέχουσα ρουτίνα.
|
||
- ViewFunction\
|
||
Εμφανίζεται παράθυρο με όλες τις ρουτίνες του προγράμματος και επιλέγεται η επιθυμητή.
|
||
- ViewPriorFunction\
|
||
Εμφανίζεται η προηγούμενη ρουτίνα
|
||
- ViewNewFunction\
|
||
Δημιουργούμε μια νέα ρουτίνα και καθορίζουμε το όνομά της, παραμέτρους κλπ.
|
||
- ViewDeleteFunction\
|
||
Εμφανίζεται κατάλογος με όλες τις ρουτίνες και επιλέγουμε αυτήν πρός διαγραφή.
|
||
- ViewRenameFunction\
|
||
Δίνεται η δυνατότητα αλλαγής ονόματος της τρέχουσας ρουτίνας. Με την εντολή αλλαγής όλες οι κλήσεις σε αυτή την ρουτίνα προσαρμόζονται ανάλογα.
|
||
- ViewCloneFunction\
|
||
Αναπαράγεται ένα πιστό αντίγραφο κάποιας ρουτίνας.
|
||
- ViewLoadFunction\
|
||
Φορτώνεται μια ρουτίνα από αρχείο και ενσωματώνεται στο ήδη υπάρχον πρόγραμμα.
|
||
- ViewSaveFunction\
|
||
Αποθηκεύεται μια ρουτίνα σε αρχείο για την μεταφορά της όπως είναι σε άλλο πρόγραμμα.
|
||
- Options\
|
||
Επηρεάζεονται οι παράμετροι εμφάνισης του περιβάλλοντος και οι παράμετροι της μεταγλώττισης (Compile).
|
||
- RunStart\
|
||
Εκτελείται το τρέχον πρόγραμμα
|
||
- RunContinue\
|
||
Συνεχίζεται η εκτέλεση μετά από διακοπή της εκτέλεσης του προγράμματος.
|
||
- RunPause\
|
||
Διακοπή της εκτέλεσης του προγράμματος για τον έλεγχο μεταβλητών ή κλήσεων ρουτινών.
|
||
- RunKill\
|
||
Τερματισμός της λειτουργίας του προγράμματος και μηδενισμός μεταβλητών.
|
||
- RunRecompile\
|
||
Γίνεται μεταγλώττιση του προγράμματος χωρίς να εκτελεστεί για το έλεγχο λαθών σύνταξης κλπ.
|
||
- RunAssembly\
|
||
Γίνεται μεταγλώττιση του προγράμματος σε γλώσσα Assembly και αποθηκεύεται στον δίσκο με το επίθεμα .a
|
||
- RunLibrary\
|
||
Γίνεται μεταγλώττιση του προγράμματος σε γλώσσα Assembly και αποθηκεύεται στον δίσκο με το επίθεμα .a για να χρησιμοποιηθεί για την δημιουργία βιβλιοθηκών
|
||
ρουτινών.
|
||
- DebugToggleBreakpoint\
|
||
Τοποθετείται/ακυρώνεται στην τρέχουσα γραμμή σημείο διακοπής εκτέλεσης (Breakpoint) για έλεγχο της ροής και τνω μεταβλητών του προγράμματος.
|
||
- DebugClearBreakpoints\
|
||
Ακυρώνονται τα σημεία διακοπής (Breakpoints) σε όλο το πρόγραμμα.
|
||
- DebugEraseBreakpoints\
|
||
Ακυρώνονται τα σημεία διακοπής (Breakpoints) στην τρέχουσα ρουτίνα.
|
||
- DebugMemory\
|
||
Εμφανίζονται τα περιεχόμενα της μνήμης σε σημεία πού επιλέγετε.
|
||
- DebugAssembly\
|
||
Εμφανίζεται η τρέχουσα γραμμή σε μορφή Assembly και μπορούμε να προχωράμε τις εντολές βήμα-βήμα.
|
||
- DebugRegisters\
|
||
Εμφανίζονται τα περιεχόμενα των καταχωρητών (Registers) του επεξεργαστή.
|
||
- Help\
|
||
Βοήθεια για την λειτουργία το περιβάλλοντος προγραμματισμού.
|
||
|
||
|
||
### [2. Παράθυρο εμφάνισης αποτελεσμάτων]{#s2}
|
||
|
||

|
||
|
||
Σε αυτό το πραράθυρο εμφανίζονται τα μυνήματα εισόδου/εξόδου όταν η εφαρμογή μας δεν είναι κατασκευασμένη για γραφικό περιβάλλον. Εμφανίζονται τα αποτελέσματα
|
||
(output) ή οι ερωτήσεις για πληκτρολόγηση δεδεομένων (input) με το απλό στύλ της κονσόλας.\
|
||
Για απλά προγράμματα χωρίς περίπλοκη εισαγωγή δεδομένων είναι ότι πρέπει γιατί δεν υπάρχει λόγος να μπλέξουμε με γραφικό περιβάλλον στις απλές εφαρμογές.
|
||
|
||
|
||
### [3. Παράθυρο κατασκευής γραφικών αντικειμένων]{#s3}
|
||
|
||

|
||
|
||
Με την βοήθεια του toolkit μπορούμε να δημιουργήσουμε παράθυρα,κουμπιά και ότι άλλο προσφέρει το GuiDesigner για να κατασκευάσουμε το περιβάλλον της εφαρμογής
|
||
μας. Για να φανούν οι δυνατότητες του, θα αναφέρω παρακάτω ένα-ένα τα εικονίδια και τι κάνει το κάθε ένα. Πρώτα από όλα να δούμε τι κάνουν τα μενού.
|
||
|
||

|
||
|
||
Επιλέγοντας το Window μπορούμε να δημιουργήσουμε νέο παράθυρο, να εξαφανίσουμε το τρέχον, να ανακαλέσουμε κάποιο παλαιό για διόρθωση/συμπλήρωμα, να
|
||
αποθηκεύσουμε αυτό που έχουμε δημιουργήσει ή και να διαγράψουμε μόνιμα το τρέχον παράθυρο. Προσοχή! Δεν υπάρχει τρόπος να ανακληθεί παράθυρο που έχει διαγραφεί.
|
||
Ο τρόπος αποθήκευσης είναι τέτοιος ώστε τα παράθυρα αποθηκεύνται με ειδικές παραμέτρους για να μπορούν να ενσωματωθούν και να επικοινωνούν με την εφαρμογή μας.
|
||
Η τρίτη και δεύτερη επιλογή από το τέλος κάνει αυτή την μετατροπή στην μνήμη για να είναι άμεσα διαθέσιμες οι εντολές στο πρόγραμμά μας. Η τελευταία επιλογή
|
||
είναι φανερό ότι είναι το τέλος λειτουργίας του GuiDesigner.
|
||
|
||

|
||
|
||
Επιλέγοντας το Grid μπορούμε να ρυθμίσουμε την εμφάνιση, την συμεριφορά, την σειρά και την εξάρτηση (ποιό αντικείμενο ανήκει που, ομάδες κλπ) του κάθε
|
||
αντικειμένου. Η τελευταία επιλογή είναι για την διαγραφή του τρέχοντος αντικειμένου.\
|
||
Παρακάτω θα δούμε ένα ένα τα αντικείμενα του γραφικού περιβάλλοντος ένα ένα.
|
||
|
||
----------------------------------------------------- ----------------------------------------------------- -----------------------------------------------------
|
||
\ XuiColor. Επιλογή χρωμάτων (125 διαθέσιμα)
|
||

|
||
|
||
 XuiLabel. Εμφάνιση γραμμών κειμένου ή εικόνας
|
||
|
||
 XuiCheckBox Επιλογή ανεξαρτήτων επιλογών (όχι μία από ομάδα)..
|
||
|
||
 XuiRadioBox Επιλογή από μια ομάδα XuiRadioBox.
|
||
|
||
 XuiPressButton Επιλέγεται όταν πατήσουμε το ποντίκι.
|
||
|
||
 XuiPushButton Επιλέγεται όταν πατήσουμε και αφήσουμε το ποντίκι.
|
||
|
||
 XuiToggleButton Με το πρώτο πάτημα ένεργοποιείται και με το δεύτερο
|
||
απενεργοποιείται.
|
||
|
||
 XuiScrollBarH Οριζόντια κίνηση/τοποθέτηση.
|
||
|
||
 XuiScrollBarV Κάθετη κίνηση/τοποθέτηση.
|
||
|
||
 XuiTextLine Εισαγωγή κειμένου (μία γραμμή).
|
||
|
||
 XuiTextArea Εισαγωγή κειμένου (πολλές γραμμές).
|
||
|
||
 XuiMenu Δημιουργία μενού εντολών.
|
||
|
||
 XuiMenuBar Μενού επιλογών σε οριζόντια διάταξη.
|
||
|
||
 XuiPullDown Μενού επιλογών σε κάθετη διάταξη.
|
||
|
||
 XuiList Επιλογή ενός στοιχείου διαθέσιμου από μια λίστα.
|
||
|
||
  XuiMessage1B/2B/3B/4B Εμφάνιση μηνύματος με 1/2/3/4 κουμπιά επιλογών
|
||
  αντίστοιχα.
|
||
|
||
 XuiProgress Εμφάνιση ποσοστού εκτέλεσης/υπολοίπου για κάποια
|
||
διαδικασία.
|
||
|
||
  XuiDialog2B/3B/4B Εμφάνιση μηνύματος και αποδοχή απάντησης από τον
|
||
 χρήστη με 2/3/4 κουμπιά επιλογών.
|
||
|
||
 XuiDropButton Εμφάνιση λίστας επιλογών με πάτημα κουμπιού.
|
||
|
||
 XuiDropBox Καταχώρηση κειμένου ή επιλογή από λίστα επιλογών
|
||
|
||
 XuiListButton Εμφάνιση λίστας επιλογών με πάτημα κουμπιού με μπάρα
|
||
μετακίνησης στην λίστα.
|
||
|
||
 XuiListBox Καταχώρηση κειμένου ή επιλογή από λίστα επιλογών με
|
||
μπάρα μετακίνησης στην λίστα .
|
||
|
||
 XuiRange Εμφάνιση τιμής και μεταβολή της +- με το πάτημα
|
||
κουμπιών.
|
||
|
||
 XuiFile Ετοιμο παράθυρο για την επιλογή αρχείου
|
||
|
||
 XuiFont Ετοιμο παράθυρο επιλογής χαρακτήρων. (Είδος, μέγεθος,
|
||
έντονα κλπ.)
|
||
|
||
 XuiListDialog2B Εμφάνιση μηνύματος και αποδοχή απάντησης από τον
|
||
χρήστη με 2 κουμπιά
|
||
|
||
|
||
----------------------------------------------------- ----------------------------------------------------- -----------------------------------------------------
|
||
|
||
Αυτά είναι τα διάφορα αντικείμενα που μπορούμε να χρησιμοποιήσουμε για να κατασκευάσουμε την παραθυρική εφαρμογή μας.
|
||
|
||
|
||
### [4. Επίλογος]{#s4}
|
||
|
||
Μετά την πρώτη γνωριμία με το περιβάλλον στο επόμενο άρθρο θα δούμε τα βασικά δομικά στοιχεία που αποτελούν μια εφαρμογή XBASIC είτε σε περιβάλλον κονσόλας είτε
|
||
σε παραθυρικό περιβάλλον (φόρμες, κουμπιά, πεδία κλπ.) Θα γίνουν και κάποια συγκριτικά τεστ με τις άλλες δύο Basic που ξέρω (Basic για το DOS και Visual Basic
|
||
gia ta Windows) έτσι για να δούμε και τί γίνεται από ταχύτητες και θα αναφέρω ότι άλλο δώ ότι είναι ενδιαφέρον κάποιος να ξέρει πρίν ξενικήσει να γράψει την
|
||
πρώτη του εφαρμογή. Θα τα ξαναπούμε στο επόμενο Magaz.
|
||
|