-- Leo's gemini proxy

-- Connecting to magaz.hellug.gr:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

Xbasic


Κώστας Τσακάλογλου(mailto:tsakf@hellug.gr)
Απρ 2000

Μία γλώσσα προγραμματισμού Basic που έχει αρκετά στοιχεία C. Μέρος ΙΙ


Μετα από μια πρώτη ματιά και την πρώτη προσπάθεια να γράψω ένα πρόγραμμα σκέφτηκα ότι πρώτα πρέπει να εξοικειωθώ με το περιβάλλον ανάπτυξης εφαρμογών της XBASIC για να μπορώ να δουλέψω καλύτερα. Στο σημερινό άρθρο θα σας παρουσιάσω το περιβάλλον ανάπτυξης για να είναι κατανοητό το παράδειγμα εφαρμογής που θα γραφτεί μετά.


1. Περιβάλλον συγγραφής του κώδικα


2. Παράθυρο εμφάνισης αποτελεσμάτων


3. Παράθυρο κατασκευής γραφικών αντικειμένων


4. Επίλογος


[1. Περιβάλλον συγγραφής του κώδικα]


[IMG]


Σε αυτό το παράθυρο γράφουμε τον κώδικα και έχουμε όλες τις δυνατότητες που έχουν τα σύγχρονα περιβάλλοντα προγραμματισμού. Πχ. σημεία προσωρινής παύσης (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. Παράθυρο εμφάνισης αποτελεσμάτων]


[IMG]


Σε αυτό το πραράθυρο εμφανίζονται τα μυνήματα εισόδου/εξόδου όταν η εφαρμογή μας δεν είναι κατασκευασμένη για γραφικό περιβάλλον. Εμφανίζονται τα αποτελέσματα (output) ή οι ερωτήσεις για πληκτρολόγηση δεδεομένων (input) με το απλό στύλ της κονσόλας.

Για απλά προγράμματα χωρίς περίπλοκη εισαγωγή δεδομένων είναι ότι πρέπει γιατί δεν υπάρχει λόγος να μπλέξουμε με γραφικό περιβάλλον στις απλές εφαρμογές.


[3. Παράθυρο κατασκευής γραφικών αντικειμένων]


[IMG]


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


[IMG]


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


[IMG]


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

Παρακάτω θα δούμε ένα ένα τα αντικείμενα του γραφικού περιβάλλοντος ένα ένα.


--------------------------------------------------------------------------------


\ XuiColor. Επιλογή χρωμάτων (125 διαθέσιμα)

[IMG]


[IMG]

XuiLabel. Εμφάνιση γραμμών κειμένου ή εικόνας


[IMG]

XuiCheckBox Επιλογή ανεξαρτήτων επιλογών (όχι μία από ομάδα)..


[IMG]

XuiRadioBox Επιλογή από μια ομάδα XuiRadioBox.


[IMG]

XuiPressButton Επιλέγεται όταν πατήσουμε το ποντίκι.


[IMG]

XuiPushButton Επιλέγεται όταν πατήσουμε και αφήσουμε το ποντίκι.


[IMG]

XuiToggleButton Με το πρώτο πάτημα ένεργοποιείται και με το δεύτερο απενεργοποιείται.


[IMG]

XuiScrollBarH Οριζόντια κίνηση/τοποθέτηση.


[IMG]

XuiScrollBarV Κάθετη κίνηση/τοποθέτηση.


[IMG]

XuiTextLine Εισαγωγή κειμένου (μία γραμμή).


[IMG]

XuiTextArea Εισαγωγή κειμένου (πολλές γραμμές).


[IMG]

XuiMenu Δημιουργία μενού εντολών.


[IMG]

XuiMenuBar Μενού επιλογών σε οριζόντια διάταξη.


[IMG]

XuiPullDown Μενού επιλογών σε κάθετη διάταξη.


[IMG]

XuiList Επιλογή ενός στοιχείου διαθέσιμου από μια λίστα.


[IMG]


[IMG]

XuiMessage1B/2B/3B/4B Εμφάνιση μηνύματος με 1/2/3/4 κουμπιά επιλογών

[IMG]


[IMG]

αντίστοιχα.


[IMG]

XuiProgress Εμφάνιση ποσοστού εκτέλεσης/υπολοίπου για κάποια διαδικασία.


[IMG]


[IMG]

XuiDialog2B/3B/4B Εμφάνιση μηνύματος και αποδοχή απάντησης από τον

[IMG]

χρήστη με 2/3/4 κουμπιά επιλογών.


[IMG]

XuiDropButton Εμφάνιση λίστας επιλογών με πάτημα κουμπιού.


[IMG]

XuiDropBox Καταχώρηση κειμένου ή επιλογή από λίστα επιλογών


[IMG]

XuiListButton Εμφάνιση λίστας επιλογών με πάτημα κουμπιού με μπάρα μετακίνησης στην λίστα.


[IMG]

XuiListBox Καταχώρηση κειμένου ή επιλογή από λίστα επιλογών με μπάρα μετακίνησης στην λίστα .


[IMG]

XuiRange Εμφάνιση τιμής και μεταβολή της +- με το πάτημα κουμπιών.


[IMG]

XuiFile Ετοιμο παράθυρο για την επιλογή αρχείου


[IMG]

XuiFont Ετοιμο παράθυρο επιλογής χαρακτήρων. (Είδος, μέγεθος, έντονα κλπ.)


[IMG]

XuiListDialog2B Εμφάνιση μηνύματος και αποδοχή απάντησης από τον χρήστη με 2 κουμπιά


--------------------------------------------------------------------------------


Αυτά είναι τα διάφορα αντικείμενα που μπορούμε να χρησιμοποιήσουμε για να κατασκευάσουμε την παραθυρική εφαρμογή μας.


[4. Επίλογος]


Μετά την πρώτη γνωριμία με το περιβάλλον στο επόμενο άρθρο θα δούμε τα βασικά δομικά στοιχεία που αποτελούν μια εφαρμογή XBASIC είτε σε περιβάλλον κονσόλας είτε σε παραθυρικό περιβάλλον (φόρμες, κουμπιά, πεδία κλπ.) Θα γίνουν και κάποια συγκριτικά τεστ με τις άλλες δύο Basic που ξέρω (Basic για το DOS και Visual Basic gia ta Windows) έτσι για να δούμε και τί γίνεται από ταχύτητες και θα αναφέρω ότι άλλο δώ ότι είναι ενδιαφέρον κάποιος να ξέρει πρίν ξενικήσει να γράψει την πρώτη του εφαρμογή. Θα τα ξαναπούμε στο επόμενο Magaz.


Αρχική Σελίδα

-- Response ended

-- Page fetched on Sat May 11 23:18:42 2024