Το Application Object

23
Οπτικός Προγραμματισμός Οπτικός Προγραμματισμός Κάθε εφαρμογή του C++ Builder δηλώνει αυτόματα μία μεταβλητή “Application” της κλάσης “TApplication”. Η μεταβλητή αυτή αναπαριστά την ίδια την εφαρμογή λειτουργώντας ως interface μεταξύ του προγραμ- ματιστή και του Λ.Σ. Περιέχει ιδιότητες, μεθόδους και συμβάντα για : 1.Επεξεργασία μηνυμάτων των Windows 2.Παροχή άμεσης βοήθειας σχετικής με το θέμα που επιλέγει ο χρήστης (context-sensitive help). 3.Διαχείριση πατημάτων πλήκτρων και συντομεύσεων επιλογών των μενού. 4.Διαχείριση Εξαιρέσεων. 5.Διαχείριση των θεμελιωδών τμημάτων που ορίζονται από τα Windows για μία εφαρμογή, όπως MainWindow, WindowClass κ.λ.π. Δεν εμφανίζεται σε παλέτες component, δεν ενσωματώνεται σε εφαρμογές, δεν έχει δημοσιευμένες

description

Το Application Object. - PowerPoint PPT Presentation

Transcript of Το Application Object

Page 1: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Κάθε εφαρμογή του C++ Builder δηλώνει αυτόματα μία μεταβλητή “Application” της κλάσης “TApplication”. Η μεταβλητή αυτή αναπαριστά την ίδια την εφαρμογή λειτουργώντας ως interface μεταξύ του προγραμ-ματιστή και του Λ.Σ. Περιέχει ιδιότητες, μεθόδους και συμβάντα για :

1. Επεξεργασία μηνυμάτων των Windows2. Παροχή άμεσης βοήθειας σχετικής με το θέμα που επιλέγει ο χρήστης

(context-sensitive help).3. Διαχείριση πατημάτων πλήκτρων και συντομεύσεων επιλογών των μενού.4. Διαχείριση Εξαιρέσεων.5. Διαχείριση των θεμελιωδών τμημάτων που ορίζονται από τα Windows για

μία εφαρμογή, όπως MainWindow, WindowClass κ.λ.π. Δεν εμφανίζεται σε παλέτες component, δεν ενσωματώνεται σε εφαρμογές,

δεν έχει δημοσιευμένες ιδιότητες. Ορισμένες ιδιότητες καθορίζονται μέσω των Project->Options. Μπορούμε να χειριστούμε τα συμβάντα του ενσωματώνοντας στην εφαρμογή ένα “TApplication Events” component.

Page 2: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Active (bool) : μας δείχνει άν η εφαρμογή έχει το focus του χρήστη. ExeName (AnsiString) : το όνομα του εκτελέσιμου αρχείου της εφαρμογής. Handle (HWND) : Δείκτης προς το κεντρικό παράθυρο της εφαρμογής.

Χρησιμοποιείται σε κλήση συναρτήσεων WinAPI που χρειάζονται ως παράμετρο ένα γονικό παράθυρο (π.χ. CreateWindow).

HelpFile (AnsiString) : το όνομα του αρχείου βοήθειας που αντιστοιχεί στην εφαρμογή.

Hint (AnsiString) : παίρνει την τιμή του τρέχοντος Hint (από επιλογή των μενού ή component Hint).

HintColor (TColor) : το χρώμα του κουτιού που εμφανίζει το Hint. HintHidePause (int) : χρόνος σε msec που το Hint είναι ορατό (def. 2500). HintPause (int) : χρόνος σε msec μέχρι την εμφάνιση του Hint (def. 500). Icon (TIcon) : περιέχει το εικονίδιο της εφαρμογής. MainForm (TForm *) : δείκτης στο κεντρικό παράθυρο της εφαρμογής.

Page 3: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

ShowMainForm (bool) : καθορίζει αν η κεντρική φόρμα θα εμφανίζεται κατά την εκτέλεση της εφαρμογής.

Terminated (bool) : καθορίζει αν η εφαρμογή έχει λάβει το μήνυμα WM_QUIT (π.χ. κλείσιμο του κεντρικού παραθύρου) και βαίνει προς τερματισμό. Γίνεται true από την ρουτίνα ProcessMessages όταν λάβει το μήνυμα WM_QUIT. Σε κλειστούς βρόχους υπολογισμών, όπου καλούμε περιοδικά την ProcessMessages, πρέπει να ελέγχουμε την “Terminated” ώστε να σταματάμε τους υπολογισμούς επιτρέποντας στην εφαρμογή να κλείσει.

Title (AnsiString) : ο τίτλος της εφαρμογής όταν είναι minimized.Μέθοδοι :ActivateHint() : προκαλεί την εμφάνιση του Hint για το αντικείμενο που

είναι κάτω από τον κέρσορα.BringToFront() : φέρνει σε πρώτο πλάνο το παράθυρο της εφαρμογής που

ήταν τελευταία ενεργό (Active).

Page 4: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

CreateForm() : δημιουργεί μία φόρμα. Ενσωματώνεται αυτόματα στο “Project.cpp” για κάθε “Auto-create” φόρμα της εφαρμογής.

HandleException() : βασική ρουτίνα διαχείρισης των Εξαιρέσεων. Καλείται αυτόματα άν η εφαρμογή περάσει από όλα τα try-catch blocks. Δημιουργεί το event “OnException”.

HelpContext(ID) : προκαλεί την εμφάνιση του θέματος βοήθειας με αναγνωριστικό “ID” (αριθμητικό αναγνωριστικό).

HelpJump(ContextString) : προκαλεί την εμφάνιση του θέματος βοήθειας με αναγνωριστικό “ContextString” (αλφαριθμητικό αναγνωριστικό).

Initialize() : καλείται στο “Project.cpp”. Εξ’ ορισμού δεν κάνει τίποτα, εκτός αν δώσουμε τιμή στον δείκτη InitProc.

Ανάθεση : InitProc = &MyInitializeFunction;Δήλωση pointer σε function : void (*func)(void);

MessageBox(Text,Caption,flags) : εμφανίζει ένα modal παράθυρο μηνυμάτων. Καλείται : Application->MessageBox(“...”, “…”, “MB_OK”)

Page 5: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Minimize() : ελαχιστοποιεί ολόκληρη την εφαρμογή (όλες τις φόρμες της) ProcessMessages() : επιτρέπει στα Windows να επεξεργαστούν τα μηνύματα

που βρίσκονται στην ουρά μηνυμάτων. Η ρουτίνα αυτή εκτελεί τον βρόχο μηνυμάτων των Windows μέχρι να τελειώσουν τα εκκρεμή μηνύματα και τότε επιστρέφει τον έλεγχο στην εφαρμογή. Πρέπει να καλείται περιοδικά σε ρουτίνες που εκτελούν κλειστούς βρόχους υπολογισμών, ώστε να επιτρέπουν στην εφαρμογή να αντιδρά σε μηνύματα, π.χ. OnPaint, OnMouseClick, OnKeyPress κ.λ.π.

Restore() : επαναφέρει τα παράθυρα της εφαρμογής όπως ήταν πριν γίνει Minimize.

Run() : ξεκινά τον βρόχο μηνυμάτων της εφαρμογής. ShowException() : εκτελείται αυτόματα για όσες Εξαιρέσεις δεν

φιλτράρονται από OnException events. Terminate() : καλεί την Win API function PostQuitMessage που προκαλεί

τον σωστό τερματισμό της εφαρμογής. Καλείται αυτόματα όταν παραχθεί ένα μήνυμα WM_QUIT ή όταν κλείνει η κεντρική φόρμα.

Page 6: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

OnActivate : συμβαίνει όταν η εφαρμογή αποκτά το focus του χρήστη, είτε κατά την εκκίνηση της εφαρμογής είτε σε αλλαγή από εφαρμογή σε εφαρμογή (π.χ. Alt+Tab).

OnDeactivate : συμβαίνει όταν ο χρήστης πηγαίνει σε άλλη εφαρμογή. OnException : παράγεται όταν συμβαίνουν Εξαιρέσεις (σφάλματα) που δεν

τις χειρίζεται ο κώδικας του προγράμματος με δομές try-catch. OnHelp : παράγεται όταν ο χρήστης ζητήσει βοήθεια. OnIdle : παράγεται όταν η εφαρμογή είναι σε κατάσταση ηρεμίας (idle).

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

OnMessage : παγιδεύει μηνύματα των Windows που προορίζονται για την εφαρμογή

OnMinimize : καλείται όταν η εφαρμογή γίνεται Minimize. OnRestore : καλείται όταν η εφαρμογή γίνεται Restore.

Page 7: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Τα σφάλματα που συμβαίνουν κατά την εκτέλεση μίας αντικειμενοστρα-φούς εφαρμογής ονομάζονται «Εξαιρέσεις» (Exceptions).

Η Διαχείριση των Εξαιρέσεων γίνεται βασικά μέσω των δομών try – catch – throw που αποτελούν συντακτικές λέξεις της C++.

Η throw παράγει Εξαιρέσεις. H δομή try ξεκινά ένα σετ εντολών που είναι επιρρεπή σε σφάλματα : try { compound statement }.

Η try ακολουθείται από μία ή περισσότερες εντολές catch μία για κάθε τύπο σφάλματος που μπορεί να παραχθεί. Κάθε catch συνοδεύεται από τον τύπο του σφάλματος και ένα όνομα μεταβλητής αυτού του τύπου μέσα σε παρενθέσεις και τον κώδικα που θέλουμε να εκτελεστεί σε { }.

try{ Εντολή1; Εντολή 2; ... ; Εντολή Ν ; }

catch (Exception & e) { Εντολή 1; Εντολή 2; ...; Εντολή Ν; }catch (MyError & e) { Εντολή 1; Εντολή 2; ...; Εντολή Ν; }catch (FileError & e) { Εντολή 1; Εντολή 2; ...; Εντολή Ν; }

Page 8: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Οι Εξαιρέσεις παράγονται συνήθως μέσα σε ρουτίνες (του χρήστη, της VCL ή των Windows), όταν συντρέχουν συνθήκες σφάλματος, με την κλήση της throw,

π.χ. throw Exception(“overflow”); Κατά την εκτέλεση της throw δημιουργείται ένα προσωρινό αντικείμενο μίας

δημιουργημένης κλάσης που περιέχει πληροφορίες για το σφάλμα. Οι Εξαιρέσεις της VCL παράγουν αντικείμενα καθορισμένων κλάσεων που πηγάζουν από την κλάση “Exception”.

Ο χρήστης μπορεί όμως να καθορίσει δικές του κλάσεις Εξαιρέσεων. Π.χ.class Err{}; void move() { if(x>=10) throw Err(“max reached”); else x++; }int main(){ x=0; try { move() } catch (Err & e) {MessageBox(NULL,“Move Stopped”,“”,MB_OK)}}

Page 9: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Μερικές κλάσεις Εξαιρέσεων στην VCL :EAbort Σταματά χωρίς να εμφανίζει μήνυμα σφάλματος.EAccessViolation Ελέγχει για σφάλμα προσπέλασης μνήμης.EDatabaseError Καθορίζει σφάλμα προσπέλασης DataBase.EDivByZero Διαίρεση Ακεραίου με το 0.EInOutError Σφάλμα Εισόδου/Εξόδου σε αρχείο.EIntOverflow Υπερχείλιση ακεραίου (μεγάλος ακέραιος αριθμός).EInvalidGraphic Μη αναγνωρίσιμο format αρχείου εικόνας.EInvalidPointer Σφάλμα με δείκτες (pointers).EPrinterError Σφάλμα κατά την εκτύπωση.EPropertyError Σφάλμα κατά την ανάγνωση ή εγγραφή σε μία

ιδιότηταEStackOverflow Η περιοχή του stack είναι γεμάτη.ERegistryException Σφάλμα που αφορά το Registry.

Page 10: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Σε κάθε εφαρμογή του C++ Builder δηλώνεται αυτόματα και ένα “Screen” object του τύπου TScreen. Το Screen object αναπαριστά την κατάσταση της οθόνης του συστήματος στην οποία εκτελείται μία εφαρμογή.

Περιέχει ιδιότητες και μεθόδους που παρακολουθούν τα εξής :1. Ποιές φόρμες και αντικείμενα δεδομένων έχουν αρχικοποιηθεί από την

εφαρμογή.2. Την «Ενεργή» φόρμα και το «Ενεργό» control μέσα στη φόρμα.3. Το μέγεθος και την ανάλυση της οθόνης.4. Τα εικονίδια του κέρσορα που είναι διαθέσιμα στην εφαρμογή και 5. Τα Fonts των γραμμάτων που είναι διαθέσιμα στην εφαρμογή. Ο χρήστης μπορεί είτε να διαβάζει τις τιμές των ιδιοτήτων του Screen object

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

TCursor Save_Cursor = Screen->Cursor;Screen->Cursor = crHourGlass; // Show hourglass cursor

Page 11: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

ActiveControl (TWinControl*) : δείκτης στο «ενεργό» control της «ενεργής» φόρμας.

ActiveForm (TForm*) : δείκτης στην «ενεργή» φόρμας της εφαρμογής. Cursor (TCursor) : καθορίζει το σχήμα του κέρσορα για όλη την εφαρμογή.

Άν έχει την τιμή crDefault τότε επιτρέπεται στα Controls να ορίζουν το σχήμα του κέρσορα.

DesktopHeight (int) : το ύψος του Desktop σε pixels (μπορεί να είναι μεγαλύτερο από το Height όταν έχουμε πολλαπλά monitor).

DesktopWidth (int) : το πλάτος του Desktop σε pixels (μπορεί να είναι μεγαλύτερο από το Width όταν έχουμε πολλαπλά monitor).

Fonts (TStrings*) : λίστα με τα ονόματα των Font οθόνης που είναι διαθέσιμα στην εφαρμογή.

FormCount (int) : ο αριθμός των φορμών της εφαρμογής που εμφανίζονται στην οθόνη.

Forms[i] (TForm *) : Πίνακας με δείκτες σε όλες τις φόρμες της εφαρμογής (i=0,…,FormCount-1).

Page 12: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Height (int) : το ύψος της οθόνης σε pixels.Width (int) : το πλάτος της οθόνης σε pixels.PixelsPerInch (int) : η διακριτικότητα της οθόνης σε pixel ανά ίντσα.

Μέθοδοι : DisableAlign() : οι ιδιότητες Align των φορμών αγνοούνται.EnableAlign() : οι ιδιότητες Align των φορμών λαμβάνονται υπόψιν.Realign() : επανατακτοποιεί τις φόρμες στην οθόνη σύμφωνα με τις

ιδιότητες align της καθεμιάς.

Συμβάντα :OnActiveControlChange : συμβαίνει όταν αλλάζει το «ενεργό» Control

της φόρμας (αλλάζει το control που έχει το focus).On ActiveFormChange : συμβαίνει όταν αλλάζει η «ενεργή» φόρμα της

εφαρμογής (αλλάζει η φόρμα που έχει το focus).

Page 13: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Για να εισάγουμε βοήθεια σε μία δική μας εφαρμογή θα πρέπει να κατασκευάσουμε ένα αρχείο με θέματα βοήθειας και να το συνδέσουμε στην εφαρμογή με την επιλογή Project->Options->Application->HelpFile ή μέσω της ιδιότητας HelpFile του Application object.

Το αρχείο βοήθειας πρέπει να γραφτεί αρχικά σε μορφή “rtf” π.χ. μέσω του Word με ειδικό τρόπο :

Κάθε θέμα της βοήθειας γράφεται σε ξεχωριστή σελίδα (αλλάζουμε σελίδες εισάγοντας ένα PageBreak).

Σε κάθε σελίδα βάζουμε μια επικεφαλίδα στην πρώτη γραμμή που χαρακτηρίζει την σελίδα βοήθειας.

Έχοντας τον κέρσορα στην αρχή της σελίδας εισάγουμε ένα Footnote (υποσημείωση) με τον χαρακτήρα “#” και στο κείμενο της υποσημείωσης γράφουμε το αναγνωριστικό της σελίδας. Με αυτό το αναγνωριστικό μπορούμε να μεταφερόμαστε με hyperlinks από τη μία σελίδα στην άλλη.

Εισάγουμε μία υποσημείωση με τον χαρακτήρα “$” στην οποία γράφουμε τον τίτλο του θέματος, όπως θα εμφανίζεται στις λίστες θεμάτων (Find).

Page 14: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Εισάγουμε μία υποσημείωση με τον χαρακτήρα “K” στην οποία γράφουμε τις λέξεις κλειδιά (Keywords) που θα μας οδηγούν σε αυτή τη σελίδα. Μπορούμε να βάλουμε πολλές λέξεις χωριζόμενες με “;”.

Για να εισάγουμε εικόνες μέσα στο κείμενο αρκεί να εισάγουμε το όνομα της εικόνας (bitmap) με την εξής μορφή :

{bmc picture.bmp} ή {bml ….} ή {bmr …} η εντολή bmc φορτώνει την εικόνα κάνοντάς την να συμπεριφέρεται ως ένας χαρακτήρας (inline with text). H bml φορτώνει την εικόνα στο αριστερό άκρο της γραμμής και το κείμενο τυλίγεται γύρω της. Η bmr την φορτώνει στο δεξί άκρο και το κείμενο τυλίγεται γύρω της.

Για να εισάγουμε hyperlink προς άλλη σελίδα κάνουμε τα εξής :1. Υπογραμμίζουμε με διπλή υπογράμμιση τo κείμενο του hyperlink και 2. Kολλητά σε αυτό γράφουμε το αναγνωριστικό της σελίδας στην οποία θα

μεταφερόμαστε αλλά σε μορφή “hidden”. Π.χ. :«You can create new documents with the New commandHID_FILE_NEW»

Page 15: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Page 16: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Δημιουργούμε το αρχείο Περιεχομένων (Contents file, *.cnt) που είναι επίσης ένα ASCII αρχείο και περιέχει τις οδηγίες για την σελίδα “Contents” της βοήθειας, αλλά και για τη σελίδα “Index”.

:Base Project1.hlp:Title Project Help:Index Project Index Help=Project1.hlp1 Menus2 File menu=menu_file2 Edit menu=menu_edit…1 How to.. Application procedures2 How to delete a file=file_delete2 How to Reopen a document=document_reopen…

Εκτελούμε το Microsoft help Workshop από τον κατάλογο ../Cbuilder5/Help/Tools/ και επιλέγουμε File->New->Help Project

Page 17: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Επιλέγουμε όνομα του Help Project συνήθως ίδιο με αυτό της εφαρμογής (Project1)

Επιλέγουμε Options->Files->RTF Files και προσθέτουμε το αρχείο με τα θέματα βοήθειας σε μορφή RTF.

Στην επιλογή Contents File δίνουμε το όνομα του .cnt αρχείου που φτιάξαμε.

Επιλέγουμε Save and Compile και παράγεται το Project1.hlp καθώς και ένα report με τυχόν Warnings ή σφάλματα κατά το compile του Project.

Δοκιμάζουμε το Help File με την επιλογή File->Run WinHelp.

Για να συνδέσουμε συγκεκριμένα Components ή φόρμες με συγκεκριμένες σελίδες της βοήθειας, αρκεί να θέσουμε στην ιδιότητα “HelpContext” του Component ή της φόρμας το «αναγνωριστικό» της σελίδας βοήθειας που θέλουμε να εμφανιστεί.

Page 18: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Page 19: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

Είναι μία ομάδα ρουτινών που δεν ανήκουν σε κανένα αντικείμενο αλλά είναι δηλωμένες στην βιβλιοθήκη VCL και μπορούν να χρησιμοποιηθούν σε οποιαδήποτε εφαρμογή του C++ Builder :

void Abort(void) : τερματίζει την τρέχουσα διεργασία παράγοντας την σιωπηρή Εξαίρεση EAbort.

bool AnsiSameStr(AnsiString S1, const AnsiString S2) : συγκρίνει τα δύο string και επιστρέφει true/false αν είναι ίδια ή όχι.

int AnsiStrComp(char * S1, char * S2) : συγκρίνει δύο C strings και επιστρέφει αποτ.>0 άν S1>S2, αποτ.<0 άν S1<S2 και αποτ.=0 άν S1==S2

void Beep(void) : προκαλεί ένα ηχητικό μπίπ καλώντας την WinAPI function “MessageBeep”.

AnsiString ChangeFileExt(AnsiString FileName, AnsiString Extension) : αλλάζει την επέκταση σε ένα όνομα αρχείου.

bool CompareMem(void * P1, void * P2, int Length) : συγκρίνει δύο περιοχές μνήμης που ξεκινούν από τους δείκτες P1 και P2 και έχουν μήκος Length και επιστρέφει true/false αποτέλεσμα.

Page 20: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

bool CreateDir(AnsiString Dir) : δημιουργεί ένα καινούργιο κατάλογο αρχείων και επιστρέφει true/false για το άν δημιουργήθηκε επιτυχώς.

TDateTime Date(void) : επιστρέφει την τρέχουσα ημερομηνία ως ένα TDateTime object.

AnsiString DateTimeToStr(TDateTime DateTime) : μετατρέπει την ημερομηνία και την ώρα του συστήματος σε AnsiString.

int DayOfWeek(TDateTime Date) : επιστρέφει την ημέρα της εβδομάδας (1..7) για την συγκεκριμένη ημερομηνία (όπου 1 = Κυριακή).

void DecodeDate(TDateTime Date, Word &Year, Word &Month, Word &Day) : αποκωδικοποιεί μία ημερομηνία από TDateTime object σε 3 ακεραίους Day, Month, Year.

void DecodeTime(TDateTime Time, Word &Hour, Word &Min, Word &Sec, Word &MSec) : αποκωδικοποιεί μία τιμή ώρας από TDateTime object σε 4 ακεραίους, Hour, Min, Sec, MSec.

bool DeleteFile(AnsiString FileName) : σβήνει ένα αρχείο από το δίσκο και επιστρέφει true/false για το άν διαγράφηκε επιτυχώς.

Page 21: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

__int64 DiskFree(Byte Drive) : επιστρέφει τον ελεύθερο χώρο ενός Drive, όπου 0=το τρέχον drive, 1=A, 2=B, 3=C, 4=D κ.ο.κ.

__int64 DiskSize(Byte Drive) : επιστρέφει τον συνολικό χώρο ενός Drive, όπου 0=το τρέχον drive, 1=A, 2=B, 3=C, 4=D κ.ο.κ.

TDateTime EncodeDate(Word Year, Word Month, Word Day) : κωδικο-ποιεί μία ημερομηνία από τη μορφή Day,Month,Υear σε TDateTime.

TDateTime EncodeTime(Word Hour, Word Min, Word Sec, Word MSec) : κωδικοποιεί μία τιμή ώρας από τη μορφή Hour, Min, Sec, Msec σε TDateTime object.

AnsiString ExcludeTrailingBackslash(AnsiString S) : αφαιρεί τυχόν ανάποδη κάθετο “\” που μπορεί να υπάρχει στο τέλος ενός ονόματος καταλόγου.

AnsiString ExpandFileName(AnsiString FileName) : επεκτείνει ένα απλό όνομα αρχείου σε πλήρες όνομα προσθέτοντας το τρέχον drive και path.

AnsiString ExtractFileDir(AnsiString FileName) : εξάγει το όνομα του καταλόγου από το πλήρες όνομα ενός αρχείου.

Page 22: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

AnsiString ExtractFileDrive(AnsiString FileName) : Εξάγει τό Drive από το πλήρες όνομα ενός αρχείου.

AnsiString ExtractFileExt(AnsiString FileName) : εξάγει την επέκταση από ένα πλήρες όνομα αρχείου.

AnsiString ExtractFileName(AnsiString FileName) : εξάγει το απλό όνομα ενός αρχείου από ένα πλήρες όνομα αρχείου.

int FileCreate(AnsiString FileName) : δημιουργεί ένα αρχείο. bool FileExists(AnsiString FileName) : ελέγχει αν υπάρχει το αρχείο. FileOpen, FileRead, FileWrite, FileSeek, FileClose : εργασίες αρχείων (C) FileGetDate, FileGetAttr, FileSetDate, FileSetAttr : εργασίες αρχείων. int FindFirst(AnsiString Path, int Attr, TSearchRec &F) : ψάχνει στον

κατάλογο Path να βρεί τήν πρώτη εγγραφή που να έχει χαρακτηριστικά Attr, και επιστρέφει τα στοιχεία της εγγραφής στο F.

int FindNext(TSearchRec &F) : συνεχίζει την αναζήτηση εγγραφών της προηγούμενης FindFirst. Επιστρέφει false αν δεν βρεί άλλη εγγραφή.

Page 23: Το  Application Object

Οπτικός ΠρογραμματισμόςΟπτικός Προγραμματισμός

AnsiString GetCurrentDir() : επιστρέφει τον τρέχοντα κατάλογο.bool IsDelimiter(AnsiString Delimiters, const AnsiString S, int Index) :

ελέγχει αν ο χαρακτήρας του AnsiString είναι ένας από τους Delimiters.bool IsLeapYear(Word Year) : ελέγχει αν το έτος είναι δίσεκτο.TDateTime Now(void) : επιστρέφει την τωρινή ώρα και ημέρα.bool RemoveDir(AnsiString Dir) : διαγράφει ένα κατάλογο.bool RenameFile(AnsiString OldName, AnsiString NewName) :

μετονομάζει ένα αρχείο.Trim, TrimLeft, TrimRight : κόβουν τα κενά από ένα AnsiString.AnsiString WrapText(AnsiString Line, AnsiString BreakStr, TSysCharSet

&BreakChars, int MaxCol) : χωρίζει την γραμμή Line σε πολλαπλές γραμμές εισάγοντας τον χαρακτήρα αλλαγής γραμμής που είναι στο BreakStr, στον τελευταίο χαρακτήρα πρίν από MaxCol στήλες που ανήκει στο σύνολο BreakChars.