ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Σχετικά έγγραφα
State 47, ,240 11,800 8,790 5,725 6,064 2,

MHSA Funds Subject to Reversion by Fiscal Year by Component. FY Funds Subject to Reversion DRAFT

~~~~~~- - Tulore ==== == ==== === ========= ==== _ -

Alameda Berkeley NA Kern Wasco NA San Francisco San Francisco

(3) Από την εργαλειοθήκη επιλέξτε το εργαλείο «ετικέτας (Label)». Δημιουργήστε μια ετικέτα στην φόρμα σας.

ΛΥΚΕΙΟ ΑΓΙΑΣ ΦΥΛΑΞΕΩΣ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ. Ονοµατεπώνυµο :... Τµήµα :... Αριθµός :...

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση εργαλείων Εικόνων, Εντολών και Ετικετών ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Τα αντικείμενα ή Χειριστήρια και οι βασικές ιδιότητες τους (properties)

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ

Υπολογιστικά Συστήματα

Η εργασία που επέλεξες θα σου δώσει τη δυνατότητα να συνεργαστείς με συμμαθητές σου και να σχεδιάσετε μια εικονική εκδρομή με το Google Earth.

Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word

Υπολογιστικά Συστήματα

Εμφάνιση Συνολικού Χάρτη Αναζήτηση με κριτήρια Μέτρηση αποστάσεων Εκτυπώσεις Έτσι ο οποιοσδήποτε χρήστης του διαδικτυακού τόπου του Δήμου Κομοτηνής

ΟΔΗΓΙΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΕΦΑΡΜΟΓΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΑΜΕΣΟΥ ΑΡΧΕΙΟΥ ΣΕ ΠΕΡΙΒΑΛΛΟΝ VISUAL STUDIO NET

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE. ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»...

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Τοπικές vs Καθολικές Μεταβλητές ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΜICROSOFT VISUAL STUDIO Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging. Εισαγωγή

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

4. Επιλογή και Επανάληψη

Πώς εκτυπώνουμε μία λίστα από εγγραφές μίας Access database

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος.

Using Custom Python Expression Functions

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΙΛΟΓΗΣ-MSGBOX ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών:

ΓΕΩΓΡΑΦΙΚΟ ΠΛΗΡΟΦΟΡΙΑΚΟ ΣΥΣΤΗΜΑ. Δικτυακή Πύλη Πολεοδομικής Εφαρμογής Οδηγός Χρήσης

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Τα Σχήματα ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

15.1. προσδοκώμενα αποτελέσματα

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

Προγραμματισμός και Εφαρμογές Υπολογιστών

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΗ VISUAL BASIC Γ ΓΥΜΝΑΣΙΟΥ

Οδηγίες Χρήσης. Εισαγωγή. Δεδομένα του Συστήματος

Πολυμεσικές Εφαρμογές

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

6. ΓΕΩΓΡΑΦΙΚΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΜΑΘΗΜΑΤΟΣ ασική Πληροφορική 1 Θεωρία 5 ου ΕΞΑΜΗΝΟΥ ΜΑΘΗΜΑ 1 ο Λάζαρος Σ. Ηλιάδης Αναπληρωτής Καθηγητής ΠΘ

SPSS Statistical Package for the Social Sciences

ΛΥΚΕΙΟ ΑΓΙΟΥ ΝΕΟΦΥΤΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2011

4/26/2019 DETACHMENT TOTALS AREA TOTALS DISTRICT TOTALS. Detachment of California MEMBERSHIP REPORT. Squadrons HQ Admin - Squadron 9999 Totals

Visual Basic Γλώσσα οπτικού

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΜΕΤΑΒΛΗΤΕΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

5/31/2019 DETACHMENT TOTALS AREA TOTALS. Detachment of California MEMBERSHIP REPORT. Squadrons HQ Admin - Squadron 9999 Totals

Εγχειρίδιο Χρήσης Ενημέρωσης Λογισμικού Bluetooth Windows 7

Οδηγός Χρήστη για το ιαλειτουργικό Χάρτη

ΚΕΦΑΛΑΙΑ Name, Caption, Backcolor Load, Unload, Activate

ΔΟΜΗΜΕΝΟΣ ΟΠΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΠAΡΑΘΥΡΙΚΟ ΠΕΡΙΒΑΛΛΟΝ με τη Γλώσσα Προγραμματισμού VISUAL BASIC (1 ο ΕΠΙΠΕΔΟ)

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Δημιουργία τρισδιάστατου παιχνιδιού οδήγησης 1ο μέρος

Υπολογιστικά Συστήματα

Χρήσιμες Οδηγίες για την Πλοήγηση στο Υποστηρικτικό Υλικό. Περιεχόμενα

Οδηγός Χρήστη για τα Υδρολογικά εδοµένα

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Searching and Downloading OpenStreetMap Data

Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Πάτρας Τομέας Συστημάτων και Αυτομάτου Ελέγχου. Εργαστήριο Αναλογικού και Ψηφιακού Ελέγχου Ι

Runtime Checking (1/3) Runtime Checking (2/3) Runtime Checking (3/3) ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο

WORDPRESS. Εικόνα 1. Πατώντας στη «Σύνδεση» γράψτε το Username (όνομα χρήστη) και το Password (συνθηματικό) (εικόνα 2) που σας έδωσε ο διαχειριστής

Σύντοµος Οδηγός Βοήθειας για τη Χρήση των Μαθηµάτων e-learning για το ΟΛΟΚΛΗΡΩΜΕΝΟ ΠΛΗΡΟΦΟΡΙΑΚΟ ΣΥΣΤΗΜΑ

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Google Earth. Τσαγκαλίδης Κωνσταντίνος Πληροφορική 29/11/2014

Πώς εκτυπώνουμε μία λίστα εγγραφών από μία Access database (γενικός τρόπος)

2 Visual Basic. Χαριτούδη Γεωργία

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων

ΕΦΑΡΜΟΓΗ ΑΝΑΖΗΤΗΣΗΣ ΤΕΜΑΧΙΟΥ

Εργαλείο Τηλεδιάσκεψης και Σύγχρονης Εκπαίδευσης- Big Blue Button (ΒΒΒ)

Η λειτουργία της πλατφόρµας οπτικοποίησης πληροφοριών σεισµικής τρωτότητας απαιτεί την χρήση της έκδοσης 9.2 του λογισµικού Arcmap της ESRI.

Εισαγωγή στο πρόγραμμα Microsoft word 2003

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ WEB GIS ΕΦΑΡΜΟΓΗΣ ΠΟΛΕΟΔΟΜΙΑΣ ΔΗΜΟΥ ΡΕΘΥΜΝΟΥ ΝΟΕΜΒΡΙΟΣ 2008

Τεχνολογία Πολυμέσων. Ενότητα 11: Αντίγραφή, Επικόλληση και Καθαρισμός Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

2.2 Εργαλεία Πλοήγησης Χάρτη (Map Navigation tools)

1. Άνοιγμα Και Κλείσιμο Της Εφαρμογής Φυλλομετρητή Ιστού (Internet Explorer)

7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58

ΕΡΓΑΣΤΗΡΙΟ FRONT PAGE 2

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

1. Απαιτήσεις εργασίας

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΗΧΑΝΟΓΡΑΦΗΣΗ ΝΟΣΟΚΟΜΕΙΟΥ

Οδηγίες για εισαγωγή Photo Gallery σε Ιστοσελίδα με το SharePoint Designer 2007

3 ο Εργαστήριο Μεταβλητές, Τελεστές

Ευ ομή. Εγχειρίδιο χρήσης του περιβάλλοντος LT125-dp

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Εκπαιδευτικό Εργαλείο Κανονικοποίησης

Βιωματικό εργαστήριο ηλεκτρονικών υπολογιστών. Οργάνωση εκπαιδευτικού υλικού με Η/Υ από δραστηριότητες στο Δημοτικό και στο Νηπιαγωγείο.

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

Eισαγωγή στο λογισμικό QGis

Εγχειρίδιο Χρήσης-Οδηγός Εκπαίδευσης Χρηστών. - Δήμος Δέλτα - Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE

6. ΓΕΩΓΡΑΦΙΚΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1

Γνωρίστε το Excel 2007

ΠΑΡΟΥΣΙΑΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Θέμα : MULTIMEDIA GIS Καθηγητής : κ. Γ. Ευαγγελίδης Μεταπτυχιακοί φοιτητής : Σιατραβάνης Αθανάσιος Α.Μ. 1/98 Σεπτέμβριος 2000 Θεσσαλονίκη

1 ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ... 1 Εισαγωγή... 2 Εναλλακτικοί τρόποι ανάπτυξης της εφαρμογής...3 GIS εφαρμογές... 4 Παρουσίαση εργασίας...6 Παρουσίαση και εξήγηση του κώδικα... 13

2 Εισαγωγή Η διπλωματική εργασία Multimedia GIS έχει σκοπό την επεξεργασία και παρουσίαση των γεωγραφικών πληροφοριών με τη χρηση πολυμέσων. Πιο συγκεκριμένα γίνεται επεξεργασία του χάρτη της Καλιφόρνιας. Έτσι, ο χρήστης, ανάλογα με τη γεωγραφική περιοχή που επιλέγει (Βόρεια, Ανατολική, Δυτική, Κεντρική, Νότια Καλιφόρνια) μπορεί να δει τους νομούς της επιλογής του ( 1 επίπεδο ανάλυσης ). Στη συνέχεια επιλέγοντας ένα νομό παρουσιάζονται πληροφορίες για τα σχολειά, τα αεροδρόμια, τα νοσοκομεία, τις λίμνες, τις εκκλησίες, τα πάρκα και τα λιμάνια του νομού ( 2 επίπεδο ανάλυσης ). Τέλος επιλέγοντας μια συγκεκριμένη πληροφορία από τις παραπάνω κατηγορίες βλέπει την επιλογή του στο χάρτη, καθώς φωτογραφίες και video αν υπάρχει ( 3 επίπεδο ανάλυσης). Για τη συγγραφή της εργασίας χρησιμοποιήθηκε : Visual Basic 6.0 πάνω στην οποία «οικοδομήθηκε» η εργασία, δημιουργώντας το interface, σύνδεση με εξωτερικούς πίνακες βάσεων δοδομένων και χρήση όλων των πολυμεσικών δυνατοτήτων που παρέχει η γλώσσα ( αναπαραγωγή ήχου και video). Map objects 2.0, εξειδικευμένες βιβλιοθήκες που επιτρέπουν την απεικόνιση και επεξεργασία των χαρτών μέσα από το περιβάλλον της Visual Basic καθώς και Photoshop 5.0 για την επεξεργασία των εικόνων. Απαραίτητες προϋποθέσεις για να «τρέξει» το πρόγραμμμα είναι: Pentium II στα 166 Ανάλυση οθόνης 800 X 600.

3 Εναλλακτικοί τοόποι ανάτττυετκ me q>gpuovhc Σήμερα στην αγορά, κυκλοφορούν πολλά «πακέτα» για την δημιουργία και ανάπτυξη παρόμοιων εφαρμογών. Ένας τέτοιος εναλλακτικός τρόπος είναι με τη χρήση του Director 7.0 και Map objects 2.0. To Director είναι ένα εξιδεικευμένο πολυμεσικό πακέτο το οποίο ενσωματώνει και εκμεταλλεύεται τις λειτουργίες των ActiveX controls. Στα θετικά του «πακέτου» είναι η δημιουργία καλύτερου interface με τη χρήση ειδικών εφέ καθώς και δημιουργία HTML αρχείων. Έχει όμως πρόβλημα στο να ενσωματώσει όλες τις λειτουργίες και ιδιότητες των ActiveX control. Χρήση της γλώσσας areview avenue.h γλώσσα avenue επιτρέπει στον χρήστη να δημιουργεί επαναλαμβανόμενες διαδικασίες καθώς και δυναμικά κουμπιά μέσα από το περιβάλλον του areview και να επικοινωνεί το areview με άλλες εφαρμογές (π.χ MS-WORD) για αυτόματη εξαγωγή αναφορών. Μειονεκτήματα του συνδυασμού areview και avenue είναι ότι δεν μπορεί να χρησιμοποιηθεί η avenue έξω από το περιβάλλον του areview, δεν δημιουργεί κλάσεις και δεν εξάγει αντικείμενα του areview και δεν έχει περαιτέρω δυνατότητες για πολυμεσικές εφαρμογές. Σε συνδυασμό με μια γλώσσα αντικειμενοστρεφή προγραμματισμού αποκτά και τα πολυμεσικά χαρακτηριστικά που του λείπουν. Χρήση των arc objects σε συνδυασμό με μια γλώσσα αντικειμενοστρεφή προγραμματισμού, ή εξιδεικευμένων πολυμεσικών «πακέτων» για τη διαχείριση των ActiveX controls που αυτά εξάγουν. Συνδυασμός areview με ενσωμάτηση επεκτάσεων (Web View) για Web presentation (http://www.spatial-online.com/spatiai/product.asp?pf_id=58) και χρήση του Flash Macromedia για πολυμεσική δικτυακή παρουσίαση.

4 GIS εφαριιογές Στην αγορά και στο Internet υπάρχουν αρκετές GIS εφαρμογές: Μία εφαρμογή που κυκλοφόρησε ήταν ο «Οδηγός πόλης Θεσσαλονίκης» που έβρισκε τη συντομότερη διαδρομή. Ο χρήστης επέλεγε το σημείο που βρίσκεται ( αφετηρία ) και το σημείο προορισμού και η εφαρμογή του έδειχνε τη συντομότερη διαδρομή για να φτάσει στον προορισμό του. Εφαρμογή υπολογισμού φόρου οικοπέδων για την επαρχία Gatham στη Βόρεια Καρολίνα που επιτρέπει την παρουσίαση, δημιουργία και εκτύπωση χαρτών. (http://www.emapper.com/chatham/map.htm) Εφαρμογή που χρησιμοποιεί η αστυνομική αρχή του Illinois και παρέχει στατιστικές πληροφορίες για τις περιοχές αυτοκινητιστικών ατυχημάτων και των ί - r ι»- t- σεξουαλικών εγκλημάτων. (http://samnet.isp.state.il.us/isp/samintro.htm) Εφαρμογή που παρέχει πληροφορίες για την θέση των πλοίων σε πραγματικό χρόνο, (http://www.starship.stem.de/)

5 Εφαρμογή που παρέχει πληροφορίες για οικιστικές, επιχειρηματικές και κυβερνητικές τοποθεσίες στην Αυστραλία, (http://www.whitepages.com.au/) Εφαρμογή που δίνει πληροφορίες για τις τράπεζες, νοσοκομεία και βενζινάδικα του Ισραήλ και εύρεση διαδρομής μεταξύ δύο σημείων. ( http://www.emap.co.il/) Menashe Emek.Khefer ^ Lev.ha-Sharon Tel a /Iv-[va to State Jurisd Khevel M odi'in Mate E M odi'in Gezer Ashdod Jerusalem (Y Asnaoa M Yehuda Khof Ashkelon Gush.E Εφαρμογή 7ΐου παρέχει πληροφορίες για κάθε επαρχία την Νότιας Αυστραλίας. (http://www.planning.sa.gov.au/maps_online/) Εφαρμογή που παρέχει πληροφορίες για όλα τα σχολεία του Oakland καθώς και αεροφωτογραφίες για την πόλη. (http://mapstacker.ousd.kl2.ca.us/welcome.htm)

6 Εφαρμογή που παρέχει πληροφορίες για τα χαρακτηριστικά των οικοπέδων και τον φόρο της επαρχίας Lucas στο Ohio. (http://www.co.lucas.oh.us/real_estate/areis_online/logon.asp) Εφαρμογή που παρέχει πληροφορίες για τις επιχειρηματικές ζώνες και τα δημογραφικά στοιχεία του Pittsburg. ( http://209.21.13.32/pittsburg ) Παρουσίαση εργασίας Η εργασία αποτελείται από τρεις φόρμες. Στην πρώτη φόρμα που είναι και η αρχική σελίδα περιέχονται πληροφορίες για τον τίτλο της εργασίας, το μεταπτυχιακό τμήμα, τον υπεύθυνο καθηγητή καθώς και την εξεταστική επιτροπή, όπως φαίνεται και στην εικόνα 1. Με το ξεκίνημα της εφαρμογής αρχίζει να εκτελείται ένα wav αρχείο το οποίο αποτελεί και την μουσική επένδυση της εφαρμογής.

7 ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ : MULTIMEDIA CIS ΜΕΤΑΠΤ. ΦΟΙΤΗΤΗΣ ; ΣΙΛΓΡΛΒΑΝΗΣ ΑΘΑΝΑΣΙΟΣ Παρακαλώ Περιμένετε... Εικόνα 1 Εισαγωγική φόρμα Μπαίνοντας στο πρόγραμμα, βλέπουμε στην αριστερή πλευρά της οθόνης μία πυξίδα με τα τέσσερα σημεία του ορίζοντα (Βορράς, Ανατολή, Νότος, Δύση, καθώς και το γράμμα C που συμβολίζει την Κεντρική Καλιφόρνια). Στη δεξιά πλευρά της οθόνης βρίσκεται ο χάρτης της Καλιφόρνιας ενώ στο κάτω μέρος υπάρχουν τα κουμπιά πλοήγησης για το πρόγραμμα.

8 Εικόνα 2 Σελίδα επιλογής γεωγραφικού διαμερίσματος της Καλιφόρνιας Έτσι πατώντας στο βελάκι που δείχνει προς τα αριστερά το πρόγραμμα γυρνάει το χρήστη ένα βήμα πίσω. Αν πατηθεί η πόρτα το πρόγραμμα τερματίζεται, ενώ αν πατηθεί το μεσαίο βέλος ο χρήστης επιστρέφει στην αρχική σελίδα που είναι η εικόνα 2. Στο σημείο αυτό ο χρήστης θα πρέπει να επιλέξει κάποιο σημείο του ορίζοντα, έστω το γράμμα Ε που συμβολίζει την ανατολή. Τότε στην οθόνη εμφανίζεται ο χάρτης της ανατολικής Καλιφόρνιας και οι επαρχίες της όπως φαίνεται στην εικόνα 3.

9 Εικόνα 3 Επιλογή επαρχίας Σ'αυτό το σημείο μπορεί να επιλέξει μία από τις επαρχίες. Έστω ότι επιλέγει την επαρχία Sierra. Τότε βλέπει στο χάρτη της Καλιφόρνιας την επαρχία που επέλεξε καθώς και τις εξής κατηγορίες τις οποίες μπορεί να επιλέξει (εικόνα 4): Σχολεία Αεροδρόμια Νοσοκομεία Εκκλησίες Λίμνες Λιμάνια Πάρκα

10 Εικόνα 4 Επιλογή κατηγορίας Συνεχίζοντας τη διερεύνηση της Καλιφόρνιας και επιλέγοντας την κατηγορία λίμνες τότε έχει τη δυνατότητα να δει στην οθόνη τις λίμνες της επαρχίας Sierra όπως δείχνει η εικόνα 5.

11 Περιοχή Όνομα 1 Coburn Lai. < Gold Lake Onion Valle;, B '.jo Note Mountain Jc'ahur^v Lake Duck. Soup Fond Gold Lai i old Laki Gold Laki Εικόνα 5 Επιλογή εγγραφής Στον πίνακα δεξιά παρουσιάζονται τα ονόματα των λιμνών και σε ποιες περιοχές της επαρχίας Sierra βρίσκονται ενώ παράλληλα έχει και την οπτική παρουσίασή τους στο χάρτη σε μορφή κουκίδων. Σ' αυτό το σημείο ο χρήστης έχει τη δυνατότητα να επέμβει μέσα στο χάρτη. Έτσι μπορεί να επιλέξει με το αριστερό κλικ του ποντικιού μια περιοχή μέσα στο χάρτη που του ενδιαφέρει και να τη μεγεθύνει όσες φορές θέλει, ενώ με το πάτημα του δεξιού κουμπιού του «ποντικιού» επαναφέρει το χάρτη στην αρχική προβολή. Επιπλέον μπορεί να επιλέξει κάποια εγγραφή μέσα από τον πίνακα (στην προκειμένη περίπτωση το όνομα μιας λίμνης ) και να δει ταυτόχρονα και τη φωτογραφία της. Έτσι επιλέγοντας την λίμνη Dugan Pond στην περιοχή Sierra City βλέπει ταυτόχρονα την φωτογραφία της ή το video αν υπάρχει (εικόνα 6).

12 Περιοχή Όνομα $ at Hey Haypret: Gold Lak Deer Lake Orton Valley Blue No:e Mountain i Delahuntv Lake A ------ I Due. Soup - - j Sierra City Due: a' Ford Gold Lai Gold Lakt Haven Lake Gold Lak ί Hawley Laue GoidLak Lillie Deer La': Εικόνα 6 Απεικόνιση της εγγραφής με τη φωτογραφία

13 Παρουσίαση και εξήγηση του κώδικα Ο κώδικας της πρώτης και εισαγωγικής σελίδας είναι ο εξής : Private Sub Form_Click() Form2.Show Με το πάτημα του ποντικιού να γίνεται unload η φόρμα Unload Forml Private Sub Form_Load() For n = 0 To 9 Φορτώνει τις φωτογραφίες για Set NotiaPics(n) = LoadResPicture(149 + n, 0) την Νότια Καλιφόρνια. Next n For a = 0 To 6 Φορτώνει τις φωτογραφίες για Set AnatolikhPics(a) = LoadResPicture(142 + a, 0) την Ανατολική Καλιφόρνια. Next a For b = 0 To 8 Φορτώνει τις φωτογραφίες για Set BoreiaPics(b) = LoadResPicture(101 + b, 0) την Βόρεια Καλιφόρνια. Next b For d = 0 To 10 Φορτώνει τις φωτογραφίες για Set DytikhPics(d) = LoadResPicture(l 10 + d, 0) την Δυτική Καλιφόρνια. Next d

14 For k = 0 To 20 Φορτώνει τις φωτογραφίες για Set KentrikhPics(k) = LoadResPicture(121 + k, 0) την Κεντρική Καλιφόρνια. Next k Forml.BackColor = RGB(0, 0, 128) Labell.Left = 13000 Label2.Left = 13000 Label3.Left = 13000 Καθορίζει το χρώμα της φόρμας Όλα τα label τα όριζω να βρίσκονται σε μια συγκεκριμένη θέση στην οθόνη, στην θέση που έχει τιμή 13000. LabeM.Left = 13000 Label5.Left = 13000 Status = 0 Forml.MousePointer =11 Ο δείκτης του ποντικιού σε μορφή κλεψύθρας ι$ $$##$$$$$$$$$ MMControll.Notify = False MMControll.Wait = True Δήλωση της διαδρομής του MMControll.Shareable = False αρχείου που θέλουμε ν MMControll.DeviceType = "Waveaudio" ανοίξουμε και να MMControll.FileName = DbfFolder & "\ixos\welcom98.wav" αναπαράγουμε, MMControll.Command = "open" MMControll.Command = "play" άνοιγουμε τη συσκευή και δίνουμε την εντολή να Εκτελέσει το αρχείο. Όταν φορτώνεται η φόρμα, φορτώνονται ταυτόχρονα κι ένα αρχείο που περιέχει τις εικόνες από τις πολιτείες της Καλιφόρνιας. Private Sub image l_click() Call Form Click

15 Με την χρήση των παρακάτω timer επιτυγχάνω κίνηση των label από αριστερά προς τα δεξιά. Η λειτουργία των timer είναι η ίδια για όλα τα label, γι αυτό και θα εξηγήσω τη λειτουργία του ενός. Ο κάθε χρονοδιακόπτης λειτουργεί σύμφωνα με κάποιο χρονικό διάστημα που του έχω ορίσει (0,03 sec ). Private Sub Timerl_Timer() Label 1. Visible = False If Label5.Left <= 3000 Then Label 1. Visible = True Label 1.Left = Label 1.Left - 300 If Labell.Left <= 200 Then Timer 1.Enabled = False To labell δεν είναι ορατό. Όταν το label5 που ήδη κινείται φτάσει στη θέση 3000, τότε κάνω το labell ορατό.το labell που βρίσκεται στη θέση 13000 αρχίζει να κινείται προς τα αριστερά διανύοντας απόσταση ίση με 300 twips κάθε φορά που λειτουργεί ο Timer. Μόλις φτάσει στη θέση 200 End If απενεργοποιώ τον timer. End If Private Sub Timer2_Timer() Label2.Visible = False If Labell.Left <= 200 Then Label2.Visible = True Label2.Left = Label2.Left - 300 If Label2.Left <= 200 Then Timer2. Enabled = False End If End If

16 Private Sub Timer3_Timer() Label3. Visible = False If Label2.Left <= 200 Then Label3. Visible = True Label3.Left = Labe 13.Left - 300 If LabeB.Left <= 200 Then Timer3.Enabled = False Label6. Visible = True Wait.Enabled = True End If End If Private Sub Timer4_Timer() Label4.Left = LabeW.Left - 300 If Label4.Left <= 4500 Then Timer4. Enabled = False End If

17 Private Sub Timer5_Timer() Label5. Visible = False If LabeW.Left <= 4500 Then Label5.Visible = True Label5.Left = Label5.Left - 300 If Label5.Left <= 3000 Then Timer5.Enabled = False End If End If Private Sub Wait_Timer() WaitTime = WaitTime + Wait.Interval If WaitTime > 5 Then Wait.Enabled = False Call FormClick Exit Sub End If Ο κώδικας από το κυρίως πρόγραμμα είναι: Private Sub Compass_Click(Index As Integer)

18 '************** jxqjj* ************************************************** MMControll.Notify = False MMControll.Wait -- True MMControll.Shareable = False MMControll.DeviceType = "Waveaudio" MMControll.FileName = DbfFolder & "\ixos\utopia.wav" MMControll.Command = "open" MMControll.Command = "play" MMControll.Command = "prev" I********* ej?e ******************************************************** Set objname = img efel.enabled = True δηλώνει το object ενεργοποιεί τον timer για το efe μέχρι να Do Until efel.enabled = False DoEvents Loop Call ResetEfe(objname, 1530, 4095) >****************************** καλεί τη συνάρτηση ResetEfe από το module. I mage 1.Enabled = True ViewStatus = 1 Call VisibleFalseFrames Select Case Index Case 0 Στο σημείο αυτό επιλέγει από την πυξίδα τα 5 σημεία του ορίζοντα Βόρεια Καλιφόρνια Geo 1(1). Visible = True Status = 1 To frame Geo 1(1) γίνεται ορατό και είναι η Βόρεια Καλιφόρνια Case 1 Ά Geo 1(2). Visible = True Status = 2 To frame Geo 1(2) γίνεται ορατό και είναι η Ανατολική Καλιφόρνια

19 Case 2 TNT Geo 1(3). Visible = True Status = 3 Case 3 To frame Geo 1(3) γίνεται ορατό και είναι η Νότια Καλιφόρνια 'D Geo 1(4). Visible = True Status = 4 Case 4 To frame Geo 1(4) γίνεται ορατό και είναι η Δυτική Καλιφόρνια 'Κ Geo 1(5).Visible = True Status = 5 To frame Geol(5) γίνεται ορατό και είναι η Κεντρική Καλιφόρνια End Select If**************************************************** **************** Private Sub Category_Click(Index As Integer) videobutton. Visible = False Call VisibleFalseFrames ViewStatus = 3 Labell5.Left = Mapl.Width 12 + Mapl.Left - (Labell5.Width/ 2) MSFlexGrid2. C lear MSFlexGrid2.Cols = 2 MSFlexGrid2.Rows = 2 Photo.Visible = False Categorylndex = Index Select Case Index Στο σημείο αυτό επιλέγει τις κατηγορίες

20 Case 0 'sxolia Labell 3.Caption = "Σχολεία" QueryString = "school" Επιλέγει τα σχολεία και καλεί την συνάρτηση για τον εντοπισμό των στοιχείων Case 1 'aerodromia Labell 3.Caption = "Αεροδρόμια" Επιλέγει τα αεροδρόμια και καλεί την συνάρτηση για τον εντοπισμό των στοιχείων QueryString = "airport" Case 2 'nosokomia Labell 3.Caption = "Νοσοκομεία" QueryString = "hospital" Επιλέγει τα νοσοκομεία και καλεί την συνάρτηση για τον εντοπισμό των στοιχείων Case 3 'eklisies Labell 3. Caption = "Εκκλησίες" QueryString = "church" Επιλέγει τις εκκλησίες και καλεί την συνάρτηση για τον εντοπισμό των στοιχείων Case 4 'limnes Labell 3.Caption = "Λίμνες" QueryString = "lake" Επιλέγει τις λίμνες και καλεί την συνάρτηση για τον εντοπισμό των στοιχείων Case 5 'limania Labell 3.Caption = "Λιμάνια" QueryString = "harbor" Επιλέγει τα λιμάνια και καλεί την συνάρτηση για τον εντοπισμό των στοιχείων Case 6 'parka Label 13.Caption = "Πάρκα" QueryString = "park" Επιλέγει τα πάρκα και καλεί την συνάρτηση για τον εντοπισμό των στοιχείων End Select Geo 1(6). Visible = False L.Show

21 φφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφ Private Sub efel_timer() Call efe_l(objname, 100) καλεί την συνάρτηση efel ft******************************************************************** Private Sub EparxiaA_Click(Index As Integer) *************** ixos* MMControll.Notify = False MMControll.Wait = True MMControll.Shareable = False MMControll. DeviceType = "Waveaudio" MMControll.FileName = DbfFolder & "\ixos\utopia.wav" MMControll.Command = "open" MMControll.Command = "play" MMControll.Command = "prev" I******************************************************************** If Not DbfFolder = Chr(z) + "Acalifornia" Then MsgBox "Παρακαλώ τοποθετήστε το CD-ROM MMGis στο CD-Drive", vbcritical Exit Sub Ελέγχει για το CD και για τον κατάλογο California End If ********** gfg **************** Set objname = img3 efel.enabled = True

Do Until efel.enabled = False DoEvents Loop Call ResetEfe(objname, 1530, 4095) '****************************** ViewStatus = 2 Call VisibleFalseFrames Geo 1(6). Visible = True BaseControler.DatabaseName = DbfFolderQ Συνδέουμε το control βάσεως Img7. Visible = False Select Case Index Case 0 EparxiaName.Caption = "Inyo" Label 15.Caption = "Inyo" BaseControler.RecordSource = "iny" Img7.Picture = AnatolikhPics(Index) δεδομένων της VB6 με τον κατάλογο που περιέχει τους πίνακες. Δίνει στα labels EparxiaName και labell 5 το ανάλογο όνομα και ανοίγει τον dbf πίνακα για το Inyo. Φορτώνει την ανάλογη εικόνα. Case 1 EparxiaName.Caption = "El Dorado" Labell 5.Caption = "El Dorado" BaseControler.RecordSource = "eld" Img7.Picture = AnatolikhPics(Index) Δίνει στα labels EparxiaName και labell 5 το ανάλογο όνομα και ανοίγει τον dbf πίνακα για το El Dorado. Φορτώνει την ανάλογη εικόνα. Case 2 EparxiaName.Caption = "Alpine" Label 15.Caption = "Alpine" BaseControler.RecordSource = "alp" Img7.Picture = AnatolikhPics(Index) Δίνει στα labels EparxiaName και label 15 το ανάλογο όνομα και ανοίγει τον dbf πίνακα για το Alpine. Φορτώνει την ανάλογη εικόνα. Case 3 EparxiaName.Caption = "Nevada" Labell 5.Caption = "Nevada" BaseControler.RecordSource = "nev" Img7.Picture = AnatolikhPics(Index) Δίνει στα labels EparxiaName και labell 5 το ανάλογο όνομα και ανοίγει τον dbf πίνακα για το Nevada. Φορτώνει την ανάλογη εικόνα. Case 4

23 EparxiaName.Caption = "Mono" Labell 5.Caption = "Mono" BaseControler.RecordSource = "mno" Img7.Picture = AnatolikhPics(Index) Δίνει στα labels EparxiaName και label 15 το ανάλογο όνομα και ανοίγει τον dbf πίνακα για το Mono. Φορτώνει την ανάλογη εικόνα. Case 5 EparxiaName.Caption = "Sierra" Labell 5.Caption = "Sierra" BaseControler.RecordSource = "sie" Img7.Picture = AnatolikhPics(Index) Δίνει στα labels EparxiaName και labell 5 το ανάλογο όνομα και ανοίγει τον dbf πίνακα για το Sierra. Φορτώνει την ανάλογη εικόνα. Case 6 Labell 5.Caption = "Placer" EparxiaName.Caption = "Placer" BaseControler.RecordSource = "pla" Img7.Picture = AnatolikhPics(Index) Δίνει στα labels EparxiaName και label 15 το ανάλογο όνομα και ανοίγει τον dbf πίνακα για το Placer. Φορτώνει την ανάλογη εικόνα. End Select Img7. Visible = True Ελέγχει πόσα layers υπάρχουν στο map object If Mapl.Layers.Count = 2 Then κι αν είναι πάνω από δύο, αφαιρεί το ένα και Mapl.Layers.Remove 0 τοποθετεί το ανάλογο layer. Set QueryLayer.GeoDataset = dc.findgeodataset(basecontroler.recordsource) QueryLayer.Symbol.Size = 0 Mapl.Layers. Add Query Layer Else Set QueryLayer.GeoDataset = dc.findgeodataset(basecontroler.recordsource) QueryLayer.Symbol.Size = 0 Mapl.Layers.Add QueryLayer End If

24 Private Sub EparxiaB_Click(Index As Integer) '*ill*ill*ft********ixos******************************** ******************* MMControll.Notify = False MMControll.Wait = True MMControll. Shareable = False MMControll.DeviceType = "Waveaudio" MMControll.FileName = DbfFolder & "\ixos\utopia.wav" MMControll.Command = "open" MMControll.Command = "play" MMControll.Command = "prev" I******************************************************************** If Not DbfFolder = Chr(z) + "Acalifornia" Then MsgBox "Παρακαλώ τοποθετήστε το CD-ROM MMGis στο CD-Drive", vbcritical Exit Sub End If I********* g-jg **************** Set objname = img2 efel. Enabled = True Do Until efel.enabled = False DoEvents Loop Call ResetEfe(objname, 1530,4095) t****************************** ViewStatus = 2 Call VisibleFalseFrames Geo 1(6). Visible = True

25 BaseControler.DatabaseName = DbfFolder() Img7.Visible = False Select Case Index Case 0 EparxiaName.Caption = "Humboldt" Labell 5.Caption = "Humboldt" BaseControler.RecordSource = "hum" Img7.Picture = BoreiaPics(Index) Case 1 EparxiaName.Caption = "Del Norte" Labell 5.Caption = "Del Norte" BaseControler.RecordSource = "dnt" Img7.Picture = BoreiaPics(Index) Case 2 EparxiaName.Caption = "Modoc" Labell 5.Caption = "Modoc" BaseControler.RecordSource = "mod" Img7.Picture = BoreiaPics(Index) Case 3 EparxiaName.Caption = "Lassen" Labell 5.Caption = "Lassen" BaseControler.RecordSource = "las" Img7.Picture = BoreiaPics(Index) Case 4 EparxiaName.Caption = "Shasta" Labell 5.Caption = "Shasta" BaseControler.RecordSource = "sha" Img7.Picture = BoreiaPics(Index) Case 5 EparxiaName.Caption = "Plumas" Labell 5.Caption = "Plumas" BaseControler.RecordSource = "plu" Img7.Picture = BoreiaPics(Index)

26 Case 6 EparxiaName.Caption = "Trinity" Labell 5.Caption = "Trinity" BaseControler.RecordSource = "tri" Img7.Picture = BoreiaPics(Index) Case 7 EparxiaName.Caption = "Tehama" Label 15. Caption = "Tehama" BaseControler.RecordSource = "teh" Img7.Picture = BoreiaPics(Index) Case 8 EparxiaName.Caption = "Siskiyou" Labell 5.Caption = "Siskiyou" BaseControler.RecordSource = "sis" Img7.Picture = BoreiaPics(Index) End Select Img7. Visible = True If Mapl.Layers.Count = 2 Then Mapl.Layers.Remove 0 Set QueryLayer.GeoDataset = dc.findgeodataset(basecontroler.recordsource) QueryLayer.Symbol.Size = 0 Map 1.Layers.Add QueryLayer Else Set QueryLayer.GeoDataset = dc.findgeodataset(basecontroler.recordsource) QueryLayer.Symbol.Size = 0 Map 1.Layers. Add QueryLayer End If

27 Private Sub EparxiaD_Click(Index As Integer) MMControll.Notify = False MMControll.Wait = True MMControll.Shareable = False MMControll.DeviceType = "Waveaudio" MMControll.FileName = DbfFolder & "\ixos\utopia.wav" MMControll.Command = "open" MMControll.Command = "play" MMControll.Command = "prev" If Not DbfFolder = Chr(z) + "Acalifomia" Then MsgBox "Παρακαλώ τοποθετήστε το CD-ROM MMGis στο CD-Drive", vbcritical Exit Sub End If Set objname = img5 efel.enabled = True Do Until efel.enabled = False DoEvents Loop Call ResetEfe(objname, 1530, 4095) ViewStatus = 2 Call VisibleFalseFrames Geo 1(6). Visible = True BaseControler.DatabaseName = DbfFolderQ

28 Img7.Visible = False Select Case Index Case 0 EparxiaName.Caption = "Contra Costa" Labell 5.Caption = "Contra Costa" BaseControler.RecordSource = "cca" Img7.Picture = DytikhPics(Index) Case 1 EparxiaName.Caption = "Alameda" Labell 5.Caption = "Alameda" BaseControler.RecordSource = "ala" Img7.Picture = DytikhPics(Index) Case 2 EparxiaName.Caption = "Marin" Labell 5.Caption = "Marin" BaseControler.RecordSource = "mrn" Img7.Picture = DytikhPics(Index) Case 3 EparxiaName.Caption = "Monterey" Labell 5.Caption = "Monterey" BaseControler.RecordSource = "mnt" Img7.Picture = DytikhPics(Index) Case 4 EparxiaName.Caption = "Mendocino" Labell 5.Caption = "Mendocino" BaseControler.RecordSource = "men" Img7. Picture = DytikhPics(Index) Case 5 EparxiaName.Caption = "San Francisco" Labell 5.Caption = "San Francisco" BaseControler.RecordSource = "sfo" Img7.Picture = DytikhPics(Index) Case 6

29 EparxiaName. Caption = "Santa Cruz" Labell5.Caption = "Santa Cruz" BaseControler.RecordSource = "scr" Img7.Picture = DytikhPics(Index) Case 7 EparxiaName.Caption = "San Benito" Label 15.Caption = "San Benito" BaseControler.RecordSource = "sbt" Img7.Picture = DytikhPics(Index) Case 8 EparxiaName.Caption = "Sonoma" Labell 5.Caption = "Sonoma" BaseControler.RecordSource = "son" I mg7. Picture = DytikhPics(Index) Case 9 EparxiaName.Caption = "San Mateo" Labell 5.Caption = "San Mateo" BaseControler.RecordSource = "smt" Img7.Picture = DytikhPics(Index) Case 10 EparxiaName.Caption = "Santa Clara" Label 15.Caption = "Santa Clara" BaseControler.RecordSource = "scl" Img7.Picture = DytikhPics(Index) End Select Img7.Visible = True MAP OBJ CODE 'Mapl. Visible = False IfMapl.Layers.Count = 2 Then Mapl.Layers.Remove 0 Set QueryLayer.GeoDataset = dc.findgeodataset(basecontroler.recordsource) QueryLayer.Symbol.Size = 0 Mapl.Layers. Add Query Layer

30 Else Set QueryLayer.GeoDataset = dc.findgeodataset(basecontroler.recordsource) QueryLayer.Symbol.Size = 0 Map 1.Layers.Add QueryLayer End If Private Sub EparxiaK_Click(Index As Integer) 1$ $ $ $ $ $ + $ $ $ 1X0 S3^ * ^ ^ ^ ^ ^ **** ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ **** ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ MMControll.Notify = False MMControll.Wait = True MMControll. Shareable = False MMControll.DeviceType = "Waveaudio" MMControll.FileName = DbfFolder & "\ixos\utopia.wav" MMControll.Command = "open" MMControll.Command = "play" MMControll.Command = "prev" IfNot DbfFolder = Chr(z) + "Acalifomia" Then MsgBox "Παρακαλώ τοποθετήστε το CD-ROM MMGis στο CD-Drive", vbcritical Exit Sub End If '********* gfg *************** Set objname = img6 efel.enabled = True Do Until efel.enabled = False

31 DoEvents Loop Call ResetEfe(objname, 1530, 4095) ViewS tat us = 2 Call VisibleFalseFrames Geo 1(6). Visible = True BaseControler.DatabaseName = DbfFolder() Img7. Visible = False Select Case Index Case 0 EparxiaName.Caption = "Kings" Label 15.Caption = "Kings" BaseControler.RecordSource = "kng" Img7.Picture = KentrikhPics(Index) Case 1 EparxiaName.Caption = "Glen" Label 15.Caption = "Glen" BaseControler.RecordSource = "gle" Img7.Picture = KentrikhPics(Index) Case 2 EparxiaName.Caption = "Fresno" Label 15.Caption = "Fresno" BaseControler.RecordSource = "fre" Img7. Picture = KentrikhPics(Index) Case 3 EparxiaName.Caption = "Colusa" Labell 5.Caption = "Colusa" BaseControler.RecordSource = "col" Img7.Picture = KentrikhPics(Index) Case 4 EparxiaName.Caption = "Calaveras" Labell 5.Caption = "Calaveras"

32 BaseControler.RecordSource = "cal" Img7.Picture = KentrikhPics(Index) Case 5 EparxiaName.Caption = "Butte" Label 15.Caption = "Butte" BaseControler.RecordSource = "but" Img7.Picture = KentrikhPics(Index) Case 6 EparxiaName.Caption = "Amador" Labell 5.Caption = "Amador" BaseControler.RecordSource = "ama" Img7.Picture = KentrikhPics(Index) Case 7 EparxiaName.Caption = "Napa" Label 15.Caption = "Napa" BaseControler.RecordSource = "nap" Img7.Picture = KentrikhPics(Index) Case 8 EparxiaName.Caption = "Mariposa" Labell 5.Caption = "Mariposa" BaseControler.RecordSource = "mpa" Img7. Picture = KentrikhPics(Index) Case 9 EparxiaName.Caption = "Merced" Labell 5. Caption = "Merced" BaseControler.RecordSource = "mer" Img7. Picture = KentrikhPics(Index) Case 10 EparxiaName.Caption = "Madera" Labell 5.Caption = "Madera" BaseControler.RecordSource = "mad" Img7.Picture = KentrikhPics(Index) Case 11 EparxiaName.Caption = "Lake"

33 Label 15.Caption = "Lake" BaseControler.RecordSource = "lak" Img7.Picture = KentrikhPics(Index) Case 12 EparxiaName.Caption = "Sacramento" Labell 5.Caption = "Sacramento" BaseControler.RecordSource = "sac" Img7.Picture = KentrikhPics(Index) Case 13 EparxiaName.Caption = "Yuba" Labell 5.Caption = "Yuba" BaseControler.RecordSource = "yub" Img7. Picture = KentrikhPics(Index) Case 14 EparxiaName.Caption = "Yolo" Labell 5.Caption = "Yolo" BaseControler.RecordSource = "yol" Img7.Picture = KentrikhPics(Index) Case 15 EparxiaName.Caption = "Tuolumne" Label 15.Caption = "Tuolumne" BaseControler.RecordSource = "tuo" Img7.Picture = KentrikhPics(Index) Case 16 EparxiaName.Caption = "Tulare" Labell 5.Caption = "Tulare" BaseControler.RecordSource = "tul" Img7. Picture = KentrikhPics(Index) Case 17 EparxiaName.Caption = "Sutter" Labell 5.Caption = "Sutter" BaseControler.RecordSource = "sut" Img7.Picture = KentrikhPics(Index) Case 18

34 EparxiaName.Caption = "Stanislaus" Labell 5.Caption = "Stanislaus" BaseControler.RecordSource = "sta" Img7.Picture = KentrikhPics(Index) Case 19 EparxiaName.Caption = "Solano" Labell 5.Caption = "Solano" BaseControler.RecordSource = "sol" Img7.Picture = KentrikhPics(Index) Case 20 EparxiaName.Caption = "San Joaquin" Labell 5.Caption = "San Joaquin" BaseControler.RecordSource = "sjq" Img7.Picture = KentrikhPics(Index) End Select Img7.Visible = True 'MAP OBJ CODE 'Map 1. Visible = False If Mapl.Layers.Count = 2 Then Mapl.Layers.Remove 0 Set QueryLayer.GeoDataset = dc.findgeodataset(basecontroler.recordsource) QueryLayer. Symbol. Size = 0 Mapl.Layers.Add QueryLayer Else Set QueryLayer.GeoDataset = dc.findgeodataset(basecontroler.recordsource) QueryLayer.Symbol.Size = 0 Mapl.Layers.Add QueryLayer End If Private Sub EparxiaN_Click(Index As Integer)

35 ι**************ίχος*:μ**************************** ******************** MMControll.Notify = False MMControll.Wait = True MMControll. Shareable = False MMControll.DeviceType = "Waveaudio" MMControll.FileName = DbfFolder & "\ixos\utopia.wav" MMControll.Command = "open" MMControll.Command = "play" MMControll.Command = "prev" If Not DbfFolder = Chr(z) + "Acalifornia" Then MsgBox "Παρακαλώ τοποθετήστε το CD-ROM MMGis στο CD-Drive", vbcritical Exit Sub End If ********** gfg **************** Set objname = img4 efel.enabled = True Do Until efel.enabled = False DoEvents Loop Call ResetEfe(objname, 1530, 4095) I****************************** ViewStatus = 2 Call VisibleFalseFrames Geo 1(6). Visible = True BaseControler.DatabaseName = DbfFolderQ

36 Img7.Visible = False Select Case Index Case 0 EparxiaName.Caption = "Kern" Labell 5.Caption = "Kern" BaseControler.RecordSource = "km" Img7.Picture = NotiaPics(Index) Case 1 EparxiaName.Caption = "Imperial" Labell 5.Caption = "Imperial" BaseControler.RecordSource = "imp" Img7.Picture = NotiaPics(Index) Case 2 EparxiaName.Caption = "Orange" Labell 5.Caption = "Orange" BaseControler.RecordSource = "ora" Img7.Picture = NotiaPics(Index) Case 3 EparxiaName.Caption = "Los Angeles" Label 15.Caption = "Los Angeles" BaseControler.RecordSource = "lax" Img7.Picture = NotiaPics(Index) Case 4 EparxiaName.Caption = "San Diego" Label 15.Caption = "San Diego" BaseControler.RecordSource = "sdg" Img7.Picture = NotiaPics(Index) Case 5 EparxiaName.Caption = "Santa Barbara" Labell 5.Caption = "Santa Barbara" BaseControler.RecordSource = "sba" Img7.Picture = NotiaPics(Index) Case 6

37 EparxiaName. Caption = "San Bernardino" Label 15.Caption = "San Bernardino" BaseControler.RecordSource = "sbd" Img7.Picture = NotiaPics(Index) Case 7 EparxiaName.Caption = "Riverside" Label 15.Caption = "Riverside" BaseControler.RecordSource = "riv" Img7.Picture = NotiaPics(Index) Case 8 EparxiaName.Caption = "Ventura" Label 15.Caption = "Ventura" BaseControler.RecordSource = "ven" Img7. Picture = NotiaPics(Index) Case 9 EparxiaName.Caption = "San Luis Obispo" Label 15.Caption = "San Luis Obispo" BaseControler.RecordSource = "slo" Img7.Picture = NotiaPics(Index) End Select Img7. Visible = True MAP OBJ CODE 'Mapl.Visible = False If Map 1.Layers.Count = 2 Then Mapl.Layers.Remove 0 Set QueryLayer.GeoDataset = dc.findgeodataset(basecontroler.recordsource) QueryLayer.Symbol.Size = 0 Mapl.Layers.Add QueryLayer Else Set QueryLayer.GeoDataset = dc.findgeodataset(basecontroler.recordsource) QueryLayer.Symbol.Size = 0 Mapl.Layers.Add QueryLayer End If

38 **************** Ι'*********=Ι=**** + + + ****************** Ι **************** Private Sub Form_Load() dc.database = DbfFolder() συνδέει τη βάση δεδομένων με το map object ActiveMoviel.FileName = DbfFolder & "Wideo\lake.avi" Active Movie 1.^Visible = False Dim lyrcountry As New MapLayer δηλώνουμε ένα επίπεδο του map Set lyrcountry.geodataset = dc.findgeodataset("cntymrg") lyrcountry.symbol.color = modarkgreen Mapl.Layers. Add lyrcountry και το εμφανίζω Mapl.ScrollBars = False For h = 0 To 6 Image5(h).Left = -105 Image5(h).Top = 15 Next h img4.top = 1530 img4.lefl = 6825 img3.top = 1530 img3.left = 6825 img2.top - 1530 img2.left = 6825 img6.top = 1530

39 img6.left = 6825 img.top = 1530 img.left = 6825 img5.top - 1530 img5.left = 6825 Framel.BackColor = RGB(0, 0, 128) Form2.BackColor = RGB(0, 0, 128) 'loading pics once in memory img.picture = LoadResPicture(159, 0) Image2.Picture = LoadPicture(App.Path + 'Vcompass4.gif') img6.picture = LoadResPicture(160, 0) img5.picture = LoadResPicture(161, 0) img4.picture = LoadResPicture(162, 0) img3.picture = LoadResPicture(163, 0) img2.picture = LoadResPicture(164, 0) For u = 0 To 6 Image5(u).Left = Image5(6).Lefl Image5(u).Top = Image5(6).Top Image5(u).Height = Image5(6). Height Image5(u).Width = Image5(6).Width Next u For i = 0 To 7 Geol(i).Left = Geo 1(6).Left Geol(i).Top = Geol(6).Top Geol(i).Height = Geo 1(6). Height Geo l(i). Width = Geo 1(6). Width

40 Geo 1 (i).backcolor = RGB(0, 0, 128) Next i For b = 0 To 8 EparxiaB(b).Picture = LoadPicture(App.Path + "/koumpil.gif') Next b For k = 0 To 20 EparxiaK(k).Picture = LoadPicture(App.Path + "/koumpil.gif') Next k For d = 0 To 10 EparxiaD(d).Picture = LoadPicture(App.Path + "/koumpil.gif') Next d For n = 0 To 9 EparxiaN(n).Picture = LoadPicture(App.Path + "/koumpil.gif') Next n For c = 0 To 6 Category(c).Picture = LoadPicture(App.Path + "/koumpil.gif') Next c For a = 0 To 6 EparxiaA(a).Picture = LoadPicture(App.Path + "/koumpil.gif') Next a For p = 0 To 6 Image5(p).Picture = LoadPicture(App.Path + "\bg.gif) Next p MSFlexGrid2.ColWidth(0) = 2000 MSFlexGrid2.ColWidth( 1) = 2000

41 Imagel.Left = Framel.Width / 3-2 * Imagel.Width Image3.Left = 2 * Framel.Width 13-4* Image3.Width Image4.Left = 3 * Framel. Width 13-6* Image4. Width Status = 0 Call VisibleFalseFrames Geo 1(0). Visible = True Private Sub imagel_click() MMControll.Notify = False MMControll.Wait = True MMControll.Shareable = False MMControll.DeviceType = "Waveaudio" MMControll.FileName = DbfFolder & "\ixos\utopia.wav" MMControll.Command = "open" MMControll.Command = "play" MMControll.Command = "prev" Call VisibleFalseFrames Select Case ViewStatus Case 0

42 Geo 1(0). Visible = True Case 1 Geo 1(0). Visible = True Case 2 Geol(Status).Visible = True ViewStatus = ViewStatus - 1 Case 3 Geo 1(6). Visible = True ViewStatus = ViewStatus - 1 Mapl. Visible = True ActiveMo vie 1. Visible = False End Select %3 ea ea ea ea e^e3 e3 e3 e4ea e^ea e^eafea ea e^eafea e3fea e4e4e9 ea ea e9 c4c9 ca e9 ea ea e3 e3 e4e4e4c4e4ea ea e4e4:3 c3 c3 e%j e4c4ea ea ea ca ca ca e4e4e4e4e^a e%%a e4e Private Sub Image3_Click() l************** jxqg***** ********************************************** MMControll.Notify = False MMControll. Wait = True MMControll.Shareable = False MMControll.DeviceType = "Waveaudio" MMControll.FileName = DbfFolder & "\ixos\utopia.wav" MMControll.Command = "open" MMControll. Command = "play" MMControll.Command = "prev" I******************************************************************** Call VisibleFalseFrames Καλεί την συνάρτηση που κάνει όλα τα frames Geo 1(0).Visible = True μη ορατά και επιστρέφει στην αρχική σελίδα. ViewStatus = 0

43 Mapl. Visible = True ActiveMo vie 1. Visible = False Private Sub Image4_Click() $$ *****$*$*****$*****$$* *******$******$*********** MMControll.Notify = False MMControll.Wait = True MMControll. Shareable = False MMControll.DeviceType = "Waveaudio" MMControll.FileName = DbfFolder & "\ixos\utopia.wav" MMControll.Command = "open" MMControll.Command = "play" MMControll.Command = "prev" I******************************************************************** Unload Me Τερματίζει το πρόγραμμα. Private Sub Label 16_Click(Index As Integer) 'ft*** * * * ** ***** g *** **** ** * * * * * * * **** * * * * * *** * *** ***** ********* * * * * * MMControll.Notify = False MMControll.Wait = True MMControll.Shareable = False MMControll.DeviceType = "Waveaudio"

44 MMControll.FileName = DbfFolder & "\ixos\utopia.wav" MMControll.Command = "open" MMControll.Command = "play" MMControll.Command = "prev" Select Case Index Case 0 To 20 Call EparxiaKClick(Index) Case 21 To 31 Call EparxiaD_Click(Index - 21) Case 32 To 40 Call EparxiaB_Click(Index - 32) Case 41 To 47 Call EparxiaA_Click(Index - 41) Case 48 To 57 Call EparxiaN_Click(Index - 48) Case 58 To 64 Call Category_Click(Index - 58) End Select

45 Private Sub Mapl_BeforeLayerDraw(ByVal Index As Integer, ByVal hdc As stdole.olehandle) If OnlyMe = False Then Select Case QueryString Case "airport" QueryF = "'airport'" Case "school" QueryF = " school" Case "park" QueryF = "park" Case "church" QueryF = '"church" Case "hospital" QueryF = "'hospital'" Case "harbor" QueryF = '"harbor" Case "lake" QueryF = '"lake"' End Select q = "feat_type=" + QueryF Εμφάνιση όλων των Set Sel = Form2.Mapl.Layers(0).SearchExpression(q) εγγραφών στο If Not Sel.EOF Then Dim sym As New MapObjects2.Symbol sym.symboltype = mofillsymbol επιλεγμένο layer του map object με χρώμα κίτρινο sym.style = mosolidfill sym.color = moyellow

46 sym.size = 10 Form2.Mapl.DrawShape Sel, sym End If Else Dim sym2 As New MapObjects2.Symbol sym2.symboltype = mofillsymbol Εμφάνιση μιας επιλεγμένης εγγραφής με χρώμα κόκκινο sym2.style = mosolidfill sym2.color = mored sym2.size = 10 Mapl.DrawShape Selfld, sym2 End If φφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφ# Private Sub Mapl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Select Case Button Case 1 διαχείριση του ποντικιού για το zoom στο map object. ' Zoom in for the left button If Button = 1 And Shift = 0 Then Επιλογή τετραγώνου στο map object και Dim r As MapObjects2.Rectangle μεγέθυνση της επιλεγμένης περιοχής Set r = Mapl.TrackRectangle If Not r Is Nothing Then Mapl.Extent = r Else ' Otherwise, pan the map Mapl.Pan End If Case 2 Map 1.Extent = Map 1.FullExtent Δεξί κλικ στο ποντίκι επαναφορά του map στο αρχική προβολή. End Select

47 Private Sub MSFlexGrid2_Click() MMControll.Notify = False MMControll.Wait = True MMControll. Shareable = False MMControll.DeviceType = "Waveaudio" MMControll.FileName = DbfFolder & "\ixos\utopia.wav" MMControll.Command = "open" MMControll.Command = "play" MMControll.Command = "prev" On Error GoTo errorhandler Dim rec As Integer MSFlexGrid2.Col = 1 rec = MSFlexGrid2.Row Sel.MoveFirst If MSFlexGrid2.Row > 1 Then For i = 1 To rec - 1 Sel.MoveNext Next I astring = Sel.Fields("feat_name").ValueAsString Επιλογή συγκεκριμένης εγγραφής κάνοντας κλικ το MSFlexGrid2 Else astring = Sel.Fields("feat_name").ValueAsString End If t = "feat_name=" + "'" + astring +... Set Selfld = Mapl,Layers(0).SearchExpression(t) OnlyMe = True Mapl.Refresh MsgBox astring

48 'Epilogh photos Photo.Picture = LoadPicture(photoF(CategoryIndex)) Photo.Visible = True Mapl.Visible = True ActiveMo vie 1. Visible = False 'Video If EparxiaName.Caption = "Orange" And Categorylndex = 4 Then videobutton. Visible = True End If errorhandler: Err.Clear Select Case Err.Number Case 0 'nothing happens Case 5002 Case Else MsgBox 'Ένα απρόσμενο λάθος παρουσιάστηκε, παρακαλώ επικοινωνίστε με τον κατασκευαστή του προγράμματος", vbcritical End Select Private Sub videobutton_click()

49 **************^χοδ** ************************************************* MMControll.Notify = False MMControll.Wait = True MMControll. Shareable = False MMControll.DeviceType = "Waveaudio" MMControll.FileName - DbfFolder & "\ixos\utopia.wav" MMControll.Command = "open" MMControll.Command = "play" MMControll.Command = "prev" Map 1. Visible = False ActiveMoviel. Visible = True ActiveMovie 1.Run Ο κώδικας του Module είναι: Global Categorylndex As Integer Global Status As Integer Global ViewStatus As Integer Global QueryString As String Global Counter As Double Global WaitTime As Integer Δήλωση των global μεταβλητών Global w As Double Global AnatolikhPics(0 To 6) As Picture Global BoreiaPicsfO To 8) As Picture Global DytikhPics(0 To 10) As Picture Global KentrikhPics(0 To 20) As Picture

50 Global NotiaPics(0 To 9) As Picture Global objname As Object Global QueryLayer As New MapLayer Global dc As New DataConnection Global Sel As MapObjects2.Recordset Global Selfld As MapObjects2.Recordset Global OnlyMe As Boolean Global z As Integer Public Function VisibleFalseFrames() Συνάρτηση που κάνει όλα τα frames μη For i = 0 To 7 ορατά. Form2.Geo l(i). Visible = False Next i End Function Public Function FindData(QueryString) Counter = 0 Form2.MSFlexGrid2.Row = 0 Form2.MSFlexGrid2.Col = 0 Form2.MSFlexGrid2.Text = " Περιοχή " Form2.MSFlexGrid2.Col = 1 Form2.MSFlexGrid2.Text = " Ονομα " L.ProgressBarl.Max = Form2.MSFlexGridl.Rows θέτω τη μεγίστη τιμή του ProgressBarl τις γραμμές For w = 1 To Form2.MSFlexGridl.Rows - 1 του MSFlexGridl. If InStr(Form2.MSFlexGridl.TextMatrix(w, 8), (QueryString)) Then Counter = Counter + 1

51 Form2.MSFlexGrid2.RowHeight(Counter) = 500 Στο for...next ψάχνει Form2.MSFlexGrid2.Col = 0 Form2.MSFlexGrid2.Row = Counter κάθε γραμμή της 8ης στήλης την τιμή του QueryString.To Form2.MSFlexGridl.Col = 4 Form2.MSFlexGridl.Row = w MSFIexGridl αντιγράφει όλες τις τιμές του πίνακα ενώ το MSFlexGrid2 Form2.MSFlexGrid2.Text = Form2.MSFIexGridl.Text αντιγράφει τις τιμές που μας ενδιαφέρουν από το MSFIexGridl Form2.MSFlexGrid2.Col = 1 Form2.MSFlexGrid2.Row = Counter Form2.MSFlexGridl.Col = 5 Form2.MSFlexGridl.Row = w Form2.MSFlexGrid2.Text = Form2.MSFIexGridl.Text Form2.MSFlexGrid2.Rows = Form2.MSFlexGrid2.Rows + 1 End If L.LoadingData (w) Next w Form2.MSFlexGrid2.Rows = Form2.MSFlexGrid2.Rows - 1 Unload L End Function Public Function efe_l(objectname As Object, Speed As Integer) If ObjectName.Height < 96 Then Η συνάρτηση αυτή μεταβάλλει το top και το Form2.efel.Enabled = False height του image συμμετρικά ως προς τον άξονα Exit Function που περνάει από το κέντρο της εικόνας.

52 End If ObjectName.Top = ObjectName.Top + Speed \ 2 ObjectName.Height = ObjectName.Height - Speed End Function ****************************************************** Public Function ResetEfe(ObjectName As Object, t_op, height) ObjectName.Top = t_op Η συνάρτηση αυτή δίνει τις αρχικές ObjectName.Height = h EIGHT τιμές του image. End Function Public Function DbfFolder() On Error GoTo errorhandler Αναζήτηση του γράμματος του CD-ROM που περιέχει τον κατάλογο California For z = 68 To 90 DbfFolder = Chr(z) + ":\" + Dir(Chr(z) + "^California", vbdirectory) If DbfFolder = Chr(z) + "^California" Then Exit Function Next z errorhandler: Select Case Err.Number Case 0 'nothing happpens Err.Clear Case 52 'MsgBox "Παρακαλώ τοποθετήστε το CD-ROM MMGis στο CD-Drive", vbcritical Err.Clear If z > 90 Then Exit Function z = z + 1

53 Resume Case Else MsgBox Err.Description & " " & Err.Number, vbcritical Err. Clear End Select End Function Public Function photof(categorylndex) Randomize Σύναρτηση που επιλέγει τυχαία τις φωτογραφίες. Select Case Categorylndex Case 0 'sxolia Number = Int(( 5* Rnd) +1) photof = DbfFolder & "\photos\schools\" & Number & ".jpg" Case 1 'aerodromia Number = Int((l 1-1 + 1) * Rnd + 1) photof = DbfFolder & "\photos\airports\" & Number & ".jpg" Case 2 'nosokomia Number = Int((14-1 + 1) * Rnd + 1) photof = DbfFolder & "\photos\hospitals\" & Number & ".jpg" Case 3 'eklisies Number = Int((25-1 + 1) * Rnd + 1) photof = DbfFolder & "\photos\churches\" & Number & ".jpg" Case 4 'limnes Number = Int((8-1 + 1) * Rnd + 1) photof = DbfFolder & "\photos\lakes\" & Number & ".jpg" Case 5 'limania

54 Number = Int((7-1 + 1) * Rnd + 1) photof = DbfFolder & "\photos\harbors\" & Number & ".jpg" Case 6 'parka Number = Int((10-1 + 1) * Rnd + 1) photof = DbfFolder & "\photos\parks\" & Number & ".jpg" End Select End Function Private Sub videobutton_click() Mapl.Visible = False ActiveMo vie 1. Visible = True ActiveMoviel.Run Ο κώδικας της φόρμας τρία πατατίθεται παρακάτω : Public Sub LoadingData(w) Δήλωνα» τιμή στην ProgressBarl L.ProgressBarl.Value = w + 1 Private Sub Form_Load() Απενεργοποιώ τα navigation buttons Form2. Frame 1.Enabled = False

55 φφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφ Private Sub Form_Unload(Cancel As Integer) Form2.BaseControler.Refresh Call FindData(QueryString) Form2.Geo 1(7). Visible = True Form2.Framel.Enabled = True OnlyMe = False Form2.Mapl. Extent = Form2.Mapl.FullExtent Form2.Mapl.Refresh Private Sub Timer l_timer() Do Until WaitTime > 2 WaitTime = WaitTime + 1 Loop Timerl.Enabled = False Unload Me