Πρώτο commit
Αυτό το commit περιλαμβάνεται σε:
commit
8ec8e9bee2
451 αρχεία άλλαξαν με 46736 προσθήκες και 0 διαγραφές
236
content/articles/24/02_xbasic.md
Κανονικό αρχείο
236
content/articles/24/02_xbasic.md
Κανονικό αρχείο
|
@ -0,0 +1,236 @@
|
|||
+++
|
||||
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.
|
||||
|
Φόρτωση…
Προσθήκη πίνακα
Προσθήκη υπερσυνδέσμου
Παράθεση σε νέο ζήτημα