Δευτέρα 31 Μαρτίου 2025

Αναθεώρηση 36 - Έκδοση 13

Ένα πρόγραμμα που τρέχει στη νέα έκδοση:
 

ΤΜΗΜΑ ΓΡΑΦΙΚΑ_ΧΕΛΩΝΑΣ {
ΑΔΕΙΑΣΕ
ΑΝ ΟΧΙ ΕΓΚΥΡΟ(ΒΗΜΑΤΙΚΟ) ΤΟΤΕ ΒΗΜΑΤΙΚΟ=ΨΕΥΔΗΣ
ΑΝ ΟΧΙ ΕΓΚΥΡΟ(ΚΑΘΑΡΙΣΕ) ΤΟΤΕ ΚΑΘΑΡΙΣΕ=ΑΛΗΘΗΣ
ΑΝ ΟΧΙ ΕΓΚΥΡΟ(ΔΤ) ΤΟΤΕ ΔΤ=100
ΑΝ ΟΧΙ ΕΓΚΥΡΟ(ΒΟΡΡΑΣ) ΤΟΤΕ ΒΟΡΡΑΣ=90
ΑΝ ΟΧΙ ΕΓΚΥΡΟ(ΖΟΥΜ) ΤΟΤΕ ΖΟΥΜ=1
ΑΝ ΟΧΙ ΕΓΚΥΡΟ(ΘΕΣΗΧ) ΤΟΤΕ ΘΕΣΗΧ=0
ΑΝ ΟΧΙ ΕΓΚΥΡΟ(ΘΕΣΗΥ) ΤΟΤΕ ΘΕΣΗΥ=0


ΛΟΓΙΚΟΣ η_πένα_γράφει=ΑΛΗΘΕΣ
ΑΠΛΟΣ γωνία_πένας=(ΒΟΡΡΑΣ-90)*ΠΙ/180
ΑΚΕΡΑΙΟΣ πάχος_γραμμής=1
ΑΠΑΡ ΧΡΩΜΑΤΑ.ΠΕΝΑΣ {
ΜΑΥΡΟ=#000000
ΚΟΚΚΙΝΟ=#FF0000
ΠΡΑΣΙΝΟ=#00FF00
ΜΠΛΕ=#0000FF
}
ΣΥΝΑΡΤΗΣΗ ΕΙΚ(ΧΡ){
ΣΧΕΔΙΟ 3000, 3000 {
ΘΕΣΗ 0,0
ΠΑΧΟΣ 4{
ΧΑΡΑΞΕ ΕΩΣ 3000, 1500, ΧΡ
ΧΑΡΑΞΕ ΕΩΣ 0, 3000, ΧΡ
ΧΑΡΑΞΕ ΕΩΣ 1000, 1500, ΧΡ
ΧΑΡΑΞΕ ΕΩΣ 0,0, ΧΡ
}
} ΩΣ ΒΕΛΟΣ
=ΒΕΛΟΣ
}
ΟΜΑΛΑ ΝΑΙ
ΒΕΛΟΣ=ΕΙΚ(0)
ΑΝ ΚΑΘΑΡΙΣΕ ΤΟΤΕ ΟΘΟΝΗ,0
ΚΡΑΤΗΣΕ
ΑΝ ΤΜΗΜΑ(ΓΡΑΦΙΚΟ) ΤΟΤΕ ΚΑΛΕΣΕ ΤΟΠΙΚΑ ΓΡΑΦΙΚΟ
ΑΦΗΣΕ
ΑΝΑΝΕΩΣΗ 25
ΠΕΝΑ 0
ΤΕΛΟΣ
// Ακολουθούν οι έτοιμες ρουτίνες)
ΡΟΥΤΙΝΑ ΔΕΙΞΕ.ΓΡΑΜΜΑ(Γ$, ΠΟΥ, ΧΡ=0&, ΜΕΓ=100, ΠΕΡ=0)
ΒΑΛΕ_ΦΟΝΤΟ()
ΠΟΥ-=ΒΟΡΡΑΣ+ΠΕΡ
'ΒΗΜΑ 0, -ΚΛΙΜΑΞ.Υ/ΥΨΟΣ
ΒΗΜΑ ΓΩΝΙΑ -ΠΟΥ/180*ΠΙ, 300*ΜΕΓ/100*ΖΟΥΜ
ΠΕΝΑ ΧΡ {ΕΠΙΓΡΑΦΗ Γ$,ΓΡΑΜΜΑΤΟΣΕΙΡΑ$,ΤΥΠΟΣ*ΜΕΓ/100*ΖΟΥΜ, (ΒΟΡΡΑΣ-90+ΠΕΡ)*ΠΙ/180, 2}
ΒΗΜΑ ΓΩΝΙΑ -ΠΟΥ/180*ΠΙ, -300*ΜΕΓ/100*ΖΟΥΜ
'ΒΗΜΑ 0, ΚΛΙΜΑΞ.Υ/ΥΨΟΣ
ΒΑΛΕ_ΒΕΛΟΣ()
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΠΕΝΑ.ΜΑΥΡΗ()
ΠΕΝΑ #000000
ΒΕΛΟΣ=ΕΙΚ(ΠΕΝΑ)
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΠΕΝΑ.ΚΟΚΚΙΝΗ()
ΠΕΝΑ #FF0000
ΒΕΛΟΣ=ΕΙΚ(ΠΕΝΑ)
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΠΕΝΑ.ΠΡΑΣΙΝΗ()
ΠΕΝΑ #00FF00
ΒΕΛΟΣ=ΕΙΚ(ΠΕΝΑ)
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΠΕΝΑ.ΜΠΛΕ()
ΠΕΝΑ #0000FF
ΒΕΛΟΣ=ΕΙΚ(ΠΕΝΑ)
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΚΕΝΤΡΟ.ΟΘΟΝΗΣ()
ΒΑΛΕ_ΦΟΝΤΟ()
ΘΕΣΗ (ΚΛΙΜΑΞ.Χ ΔΙΑ 2)+ΘΕΣΗΧ, (ΚΛΙΜΑΞ.Υ ΔΙΑ 2)+ΘΕΣΗΥ
ΒΑΛΕ_ΒΕΛΟΣ()
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΘΕΣΗ.ΟΘΟΝΗΣ(Χ, Υ)
ΒΑΛΕ_ΦΟΝΤΟ()
ΘΕΣΗ Χ+ΘΕΣΗΧ, Υ+ΘΕΣΗΥ
ΒΑΛΕ_ΒΕΛΟΣ()
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΠΑΧΟΣ.ΓΡΑΜΜΗΣ(τόσο ΩΣ ΑΚΕΡΑΙΟΣ)
ΑΝ τόσο<1 ΤΟΤΕ τόσο=1
ΑΝ τόσο>15 ΤΌΤΕ τόσο=15
πάχος_γραμμής=τόσο
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΠΕΝΑ.ΠΑΝΩ()
η_πένα_γράφει=ΨΕΥΔΕΣ
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΠΕΝΑ.ΚΑΤΩ()
η_πένα_γράφει=ΑΛΗΘΕΣ
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΧΑΡΑΞΕ.ΚΥΚΛΟ(ακτίνα)
ΒΑΛΕ_ΦΟΝΤΟ()
ΑΝ η_πένα_γράφει ΤΟΤΕ
ΠΑΧΟΣ πάχος_γραμμής {
ΚΥΚΛΟΣ ακτίνα
}
ΤΕΛΟΣ ΑΝ
ΒΑΛΕ_ΒΕΛΟΣ()
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΧΑΡΑΞΕ.ΤΟΜΕΑ(ακτίνα, αρχ=0, τελ=360, ΠΕΡ=0)
ΒΑΛΕ_ΦΟΝΤΟ()`
ΑΝ η_πένα_γράφει ΤΟΤΕ
ΠΑΧΟΣ πάχος_γραμμής {
ΚΥΚΛΟΣ ακτίνα,1,ΠΕΝΑ,(ΒΟΡΡΑΣ-αρχ+ΠΕΡ)/180*ΠΙ, (ΒΟΡΡΑΣ-τελ+ΠΕΡ)/180*ΠΙ;
}
ΤΕΛΟΣ ΑΝ
ΒΑΛΕ_ΒΕΛΟΣ()
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΤΡΑΒΑ.ΜΠΡΟΣΤΑ(απόσταση)
απόσταση*=ΖΟΥΜ
ΒΑΛΕ_ΦΟΝΤΟ()
ΑΝ η_πένα_γράφει ΤΟΤΕ
ΠΑΧΟΣ πάχος_γραμμής {
ΑΝ ΒΗΜΑΤΙΚΟ ΤΟΤΕ
ΤΟΠΙΚΕΣ ΒΗΜ=ΑΠΟΛ(απόσταση) ΔΙΑ 300
ΑΝ ΒΗΜ>0 ΤΟΤΕ
ΤΟΠΙΚΗ ΒΗΜ1=300*ΣΗΜ(απόσταση)
ΒΗΜΑ ΓΩΝΙΑ γωνία_πένας, απόσταση
ΤΟΠΙΚΕΣ Ι ΩΣ ΑΚΕΡΑΙΟΣ, ΧΘ=ΘΕΣΗ.Χ, ΥΘ=ΘΕΣΗ.Υ
ΒΗΜΑ ΓΩΝΙΑ γωνία_πένας, -απόσταση
ΓΙΑ Ι=1 ΕΩΣ ΒΗΜ
ΧΑΡΑΞΕ ΓΩΝΙΑ γωνία_πένας, ΒΗΜ1
ΒΑΛΕ_ΒΕΛΟΣ()
ΒΑΛΕ_ΦΟΝΤΟ()
ΕΠΟΜΕΝΟ Ι
ΧΑΡΑΞΕ ΕΩΣ ΧΘ, ΥΘ
ΑΛΛΙΩΣ
ΧΑΡΑΞΕ ΓΩΝΙΑ γωνία_πένας, απόσταση
ΤΕΛΟΣ ΑΝ
ΑΛΛΙΩΣ
ΧΑΡΑΞΕ ΓΩΝΙΑ γωνία_πένας, απόσταση
ΤΕΛΟΣ ΑΝ
}
ΑΛΛΙΩΣ
ΑΝ ΒΗΜΑΤΙΚΟ ΤΟΤΕ
ΤΟΠΙΚΕΣ ΒΗΜ=ΑΠΟΛ(απόσταση) ΔΙΑ 300
ΑΝ ΒΗΜ>0 ΤΟΤΕ
ΤΟΠΙΚΗ ΒΗΜ1=300*ΣΗΜ(απόσταση)
ΒΗΜΑ ΓΩΝΙΑ γωνία_πένας, απόσταση
ΤΟΠΙΚΕΣ Ι ΩΣ ΑΚΕΡΑΙΟΣ, ΧΘ=ΘΕΣΗ.Χ, ΥΘ=ΘΕΣΗ.Υ
ΒΗΜΑ ΓΩΝΙΑ γωνία_πένας, -απόσταση
ΓΙΑ Ι=1 ΕΩΣ ΒΗΜ
ΒΗΜΑ ΓΩΝΙΑ γωνία_πένας, ΒΗΜ1
ΒΑΛΕ_ΒΕΛΟΣ()
ΒΑΛΕ_ΦΟΝΤΟ()
ΕΠΟΜΕΝΟ Ι
ΘΕΣΗ ΧΘ, ΥΘ
ΑΛΛΙΩΣ
ΒΗΜΑ ΓΩΝΙΑ γωνία_πένας, απόσταση
ΤΕΛΟΣ ΑΝ
ΑΛΛΙΩΣ
ΒΗΜΑ ΓΩΝΙΑ γωνία_πένας, απόσταση
ΤΕΛΟΣ ΑΝ
ΤΕΛΟΣ ΑΝ
ΒΑΛΕ_ΒΕΛΟΣ()
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ

ΡΟΥΤΙΝΑ ΧΑΡΑΞΕ.ΠΙΣΩ(απόσταση)
ΤΡΑΒΑ.ΜΠΡΟΣΤΑ(-απόσταση)
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ

ΡΟΥΤΙΝΑ ΣΤΡΙΨΕ.ΔΕΞΙΑ(γωνία_σε_μοίρες)
ΒΑΛΕ_ΦΟΝΤΟ()
γωνία_πένας-=γωνία_σε_μοίρες/180*ΠΙ
ΒΑΛΕ_ΒΕΛΟΣ()
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ

ΡΟΥΤΙΝΑ ΣΤΡΙΨΕ.ΠΡΟΣ(γωνία_σε_μοίρες)
ΒΑΛΕ_ΦΟΝΤΟ()
γωνία_πένας=(γωνία_σε_μοίρες+ΒΟΡΡΑΣ-90)/180*ΠΙ
ΒΑΛΕ_ΒΕΛΟΣ()
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ

ΡΟΥΤΙΝΑ ΒΑΛΕ_ΦΟΝΤΟ()
ΑΦΗΣΕ
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ

ΡΟΥΤΙΝΑ ΒΑΛΕ_ΒΕΛΟΣ()
ΚΡΑΤΗΣΕ
ΕΙΚΟΝΑ ΒΕΛΟΣ, 600,,γωνία_πένας*180/ΠΙ
ΑΝΑΝΕΩΣΗ 1000
ΑΝΑΜΟΝΗ ΔΤ
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
}
ΤΜΗΜΑ ΠΡΟΓΡΑΜΜΑ1 {
ΚΕΝΤΡΟ.ΟΘΟΝΗΣ()
ΠΑΧΟΣ.ΓΡΑΜΜΗΣ(4)
ΠΕΝΑ.ΚΟΚΚΙΝΗ()
ΖΖ=13
ΣΤΡΙΨΕ.ΔΕΞΙΑ(ΖΖ)
ΔΕΙΞΕ.ΓΡΑΜΜΑ("Α", 225,,,-ΖΖ)
ΤΡΑΒΑ.ΜΠΡΟΣΤΑ(4000)
ΔΕΙΞΕ.ΓΡΑΜΜΑ("90°     ", -20, ΜΠΛΕ,200, -ΖΖ)
ΠΕΝΑ.ΜΑΥΡΗ()
ΧΑΡΑΞΕ.ΤΟΜΕΑ(300, -5, 275, -ΖΖ)
ΠΕΝΑ.ΚΟΚΚΙΝΗ()
ΔΕΙΞΕ.ΓΡΑΜΜΑ("Β", 135,,,-ΖΖ)
ΣΤΡΙΨΕ.ΔΕΞΙΑ(270)
ΤΡΑΒΑ.ΜΠΡΟΣΤΑ(3000)
ΔΕΙΞΕ.ΓΡΑΜΜΑ("Γ",45,,,-ΖΖ)
ΣΤΡΙΨΕ.ΔΕΞΙΑ(270-ΤΟΞ.ΕΦ(3000/4000))
ΤΡΑΒΑ.ΜΠΡΟΣΤΑ(5000)
ΣΤΡΙΨΕ.ΠΡΟΣ(180)
ΠΕΝΑ.ΠΑΝΩ()
ΤΡΑΒΑ.ΜΠΡΟΣΤΑ(6000)
ΠΕΝΑ.ΚΑΤΩ()
ΠΕΝΑ.ΠΡΑΣΙΝΗ()
ΣΠΙΤΙ(5000)
ΡΟΥΤΙΝΑ ΣΠΙΤΙ(n)
ΤΟΠΙΚΗ ι
ΓΙΑ ι=1 ΕΩΣ 3
ΣΤΡΙΨΕ.ΔΕΞΙΑ(120)
ΤΡΑΒΑ.ΜΠΡΟΣΤΑ(n)
ΕΠΟΜΕΝΟ
ΣΤΡΙΨΕ.ΔΕΞΙΑ(90)
ΠΑΡΑΛΛΗΛΟΓΡΑΜΜΟ(n, n)
ΣΤΡΙΨΕ.ΔΕΞΙΑ(90)
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
ΡΟΥΤΙΝΑ ΠΑΡΑΛΛΗΛΟΓΡΑΜΜΟ(w, h)
ΤΟΠΙΚΗ ι
ΓΙΑ ι=1 ΕΩΣ 2
ΣΤΡΙΨΕ.ΔΕΞΙΑ(90)
ΤΡΑΒΑ.ΜΠΡΟΣΤΑ(h)
ΣΤΡΙΨΕ.ΔΕΞΙΑ(90)
ΤΡΑΒΑ.ΜΠΡΟΣΤΑ(w)
ΕΠΟΜΕΝΟ
ΤΕΛΟΣ ΡΟΥΤΙΝΑΣ
}
ΠΕΡΙΘΩΡΙΟ {ΟΘΟΝΗ 15, 0}
ΟΘΟΝΗ 15,0
ΠΕΝΑ 0
Α$=ΚΟΜ$
ΓΡΑΦΙΚΑ_ΧΕΛΩΝΑΣ %ΒΗΜΑΤΙΚΟ=ΑΛΗΘΕΣ, %ΔΤ=30, %ΘΕΣΗΧ=-ΚΛΙΜΑΞ.Χ / 2.8, %ΒΟΡΡΑΣ=190, %ΖΟΥΜ=0.9; ΓΡΑΦΙΚΟ ΩΣ ΠΡΟΓΡΑΜΜΑ1
ΓΡΑΦΙΚΑ_ΧΕΛΩΝΑΣ %ΒΗΜΑΤΙΚΟ=ΑΛΗΘΕΣ, %ΔΤ=30, %ΚΑΘΑΡΙΣΕ=ΨΕΥΔΕΣ, %ΘΕΣΗΧ=ΚΛΙΜΑΞ.Χ / 2.8, %ΒΟΡΡΑΣ=10, %ΖΟΥΜ=0.9; ΓΡΑΦΙΚΟ ΩΣ ΠΡΟΓΡΑΜΜΑ1
ΓΡΑΦΙΚΑ_ΧΕΛΩΝΑΣ %ΒΗΜΑΤΙΚΟ=ΑΛΗΘΕΣ, %ΔΤ=30, %ΚΑΘΑΡΙΣΕ=ΨΕΥΔΕΣ, %ΘΕΣΗΥ=-ΚΛΙΜΑΞ.Υ / 3.8, %ΒΟΡΡΑΣ=100, %ΖΟΥΜ=0.7; ΓΡΑΦΙΚΟ ΩΣ ΠΡΟΓΡΑΜΜΑ1
ΓΡΑΦΙΚΑ_ΧΕΛΩΝΑΣ %ΒΗΜΑΤΙΚΟ=ΑΛΗΘΕΣ, %ΔΤ=30, %ΚΑΘΑΡΙΣΕ=ΨΕΥΔΕΣ, %ΘΕΣΗΥ=ΚΛΙΜΑΞ.Υ / 3.8, %ΒΟΡΡΑΣ=280, %ΖΟΥΜ=0.7; ΓΡΑΦΙΚΟ ΩΣ ΠΡΟΓΡΑΜΜΑ1
ΔΡΟΜΕΑΣ 0,0
ΤΥΠΩΣΕ "ΓΡΑΦΙΚΑ ΧΕΛΩΝΑΣ"
Α$=ΚΟΜ$


Τρίτη 25 Μαρτίου 2025

ΓΙΟΡΤΗ 25ης ΜΑΡΤΙΟΥ - ΕΛΛΗΝΙΚΗ ΣΗΜΑΙΑ

ΧΡΟΝΙΑ ΠΟΛΛΑ - 25η ΜΑΡΤΙΟΥ 2025 


Είχα δώσει ένα πρόγραμμα για την Ελληνική Σημαία. Το νέο πρόγραμμα δίνει τη σημαία και από τις δυο πλευρές. Επίσης χρησιμοποιεί το ΣΧΕΔΙΟ με τρόπο που το κέντρο περιστροφής να είναι στο κέντρο του σχεδίου.



ΤΜΗΜΑ Ελληνική_Σημαία (x1=1000, y1=1000, σ=12000, πλευρά=1) {
ΣΤΑΘΕΡΗ ΑΣΠΡΟ=#FFFFFF
ΣΤΑΘΕΡΗ ΓΑΛΑΖΙΟ=#001489


σ1027=σ*10/27
σ2=σ-σ1027
// ΑΝΑΛΟΓΙΑ ΥΨΟΣ/ΠΛΑΤΟΣ =  2/3
σ1=σ*2/3
σ19=σ1/9
ΘΕΣΗ x1, y1
ΠΕΝΑ ΓΑΛΑΖΙΟ {
ΠΟΛΥΓΩΝΟ ΓΑΛΑΖΙΟ, σ,0, 0, σ1, -σ, 0, 0, -σ1
}
ΠΕΝΑ ΑΣΠΡΟ {
ΑΝ πλευρα=1 ΤΟΤΕ ΒΗΜΑ σ1027, σ19 ΑΛΛΙΩΣ ΒΗΜΑ 0, σ19
ΠΟΛΥΓΩΝΟ ΑΣΠΡΟ, σ2,0, 0, σ19, -σ2, 0, 0, -σ19
ΒΗΜΑ 0, σ19*2
ΠΟΛΥΓΩΝΟ ΑΣΠΡΟ, σ2,0, 0, σ19, -σ2, 0, 0, -σ19

ΑΝ Πλευρά=1 ΤΟΤΕ ΒΗΜΑ -σ1027, σ19*2 ΑΛΛΙΩΣ ΒΗΜΑ 0 , σ19*2
ΠΟΛΥΓΩΝΟ ΑΣΠΡΟ, σ,0, 0, σ19, -σ, 0, 0, -σ19
ΒΗΜΑ 0, σ19*2
ΠΟΛΥΓΩΝΟ ΑΣΠΡΟ, σ,0, 0, σ19, -σ, 0, 0, -σ19

ΑΝ Πλευρά=1 ΤΟΤΕ ΒΗΜΑ 0, σ19*-5 ΑΛΛΙΩΣ ΒΗΜΑ σ2 , σ19*-5
ΠΟΛΥΓΩΝΟ ΑΣΠΡΟ, σ1027,0, 0, σ19, -σ1027, 0, 0, -σ19
ΒΗΜΑ σ19*2, σ19*-2
ΠΟΛΥΓΩΝΟ ΑΣΠΡΟ, σ19,0, 0, σ19*5, -σ19, 0, 0, -σ19*5
}
}
ΟΘΟΝΗ,0
Ελληνική_Σημαία
Ελληνική_Σημαία 19000, 1000, 6000
ΑΠΛΟΣ Κ=6000
ΣΧΕΔΙΟ Κ, Κ*2/3 {
Ελληνική_Σημαία 0,0, Κ
} ΩΣ Ελληνική_Σημαία
ΣΧΕΔΙΟ Κ, Κ*2/3 {
Ελληνική_Σημαία 0,0,Κ,0
} ΩΣ Ελληνική_Σημαία1
ΘΕΣΗ 16000, 4000
ΑΠΛΟΣ μοιρες1=-90, μοίρες2=30
ΕΙΚΟΝΑ Ελληνική_Σημαία, 6000,,μοιρες1
ΘΕΣΗ 22000, 7300
ΕΙΚΟΝΑ Ελληνική_Σημαία1, 6000,,5
ΓΙΑ ι=0 ΕΩΣ 22000 ΑΝΑ 3200*2
ΘΕΣΗ 2200+ι,12000
ΕΙΚΟΝΑ Ελληνική_Σημαία1, 3000,,μοιρες2
ΒΗΜΑ 3200
ΕΙΚΟΝΑ Ελληνική_Σημαία, 3000,,-μοιρες2
ΕΠΟΜΕΝΟ
' αναμονή πλήκτρου
α$=ΚΟΜ$



Δευτέρα 10 Μαρτίου 2025

Αναθεώρηση 23 'Εκδοση 13

 Στην νέα αναθεώρηση μπορούμε να έχουμε Εικόνα σε Εικόνα σε φόρμα. Δηλαδή αυτό με τα φαρδιά γράμματα (Bold) δεν μπορούσαμε να το δώσουμε.

ΟΡΙΣΕ Πλαίσιο1_Στοιχεία ΕΙΚΟΝΑ ΦΟΡΜΑ Φόρμα1 ΕΙΚΟΝΑ Πλαίσιο1

Το Πλαίσιο1_Στοιχεία ανήκει στην φόρμα1 και βρίσκεται στο Πλαίσιο1. Ο διαχειριστής παραθύρων της Μ2000 καταγράφει τα στοχεία σε μια λίστα, εντός μιας φόρμας. Με την εντολή επιπλέον ΕΙΚΟΝΑ συσχετίζουμε το στοιχείο μας με την Εικόνα Πλαίσιο1.

Στο παράδειγμα παρακάτω (έχει μπει και στο σύντομο οδηγό που ετοιμάζω)  έχουμε  δυο καρτέλες που φτιάχνονται με Εικόνες, και έχουμε δώσει ένα σχέδιο με διαφάνεια και για το λόγο αυτό φαίνονται τα ονόματα το ένα δίπλα στο άλλο. Στο Πλαίσιο1 έχουμε ένα ακόμα πλαίσιο με τα στοιχεία ελέγχου για να μπορούμε να τα απενεργοποιούμε. Επειδή τα πλαίσια δεν τα απενεργοποιούμε αλλά τους αλλάζουμε το λεγόμενο zorder δηλαδή ποιο θα είναι πάνω από τα άλλα, αν είχαμε αφήσει τα πλήκτρα ως έχουν τότε το TAB θα τα έβρισκε ενεργά παρόλο που θα ήταν πίσω από το πλαίσιο2. Με το να τα βάλουμε σε ένα άλλο πλαίσιο/εικόνα μπορούμε να τα κάνουμε αθέατα και έτσι το TAB να μην τα βρίσκει!

Στο πρόγραμμα αν κάνουμε κλικ στη φόρμα, τότε πότε κρύβει το πλαίσιο1 και πότε το εμφανίζει! Παρατηρήστε ότι όλες οι εντολές και οι μεταβλητές μόνο για ανάγνωση της Μ2000 είναι με κεφαλαία (θα μπορούσε να ήταν και με μικρά και με τόνους) για να γίνει κατανοητό στον αναγνώστη ποιες είναι οι μεταβλητές που εμείς ορίζουμε.




ΣΤΑΘΕΡΗ ΟΔΗΓΙΕΣ$="Διπλό κλικ στο Πλήκτρο και μετά κλικ στο πλαίσιο μέχρι να φύγει"
ΟΡΙΣΕ Φόρμα1 ΦΟΡΜΑ
ΟΡΙΣΕ Πλαίσιο1 ΕΙΚΟΝΑ ΦΟΡΜΑ Φόρμα1
ΟΡΙΣΕ Πλαίσιο1_Στοιχεία ΕΙΚΟΝΑ ΦΟΡΜΑ Φόρμα1 ΕΙΚΟΝΑ Πλαίσιο1
ΟΡΙΣΕ Πλαίσιο2 ΕΙΚΟΝΑ ΦΟΡΜΑ Φόρμα1
ΟΡΙΣΕ Πλήκτρο1(3) Πλήκτρο ΦΟΡΜΑ Φόρμα1 ΕΙΚΟΝΑ Πλαίσιο1_Στοιχεία
ΜΕΘΟΔΟΣ Φόρμα1, "move",1000,1000,10000, 5600
ΜΕΘΟΔΟΣ Πλαίσιο1, "move", 600,600, 10000-2*600, 4000
ΜΕΘΟΔΟΣ Πλαίσιο2, "move", 600,600, 10000-2*600, 4000
ΜΕΘΟΔΟΣ Πλαίσιο1_Στοιχεία, "move",60, 600,10000-2*660, 3200
ΑΚΕΡΑΙΟΣ τελευταίος_δείκτης=-1
ΓΙΑ ι=0 ΕΩΣ 2
ΜΕΘΟΔΟΣ Πλήκτρο1(ι), "move", 1000, 200+1000*ι, 3000, 600
ΕΠΟΜΕΝΟ
ΓΙΑ ι=3 ΕΩΣ 5
ΟΡΙΣΕ Πλήκτρο1() Πάνω
ΜΕΘΟΔΟΣ Πλήκτρο1(ι), "move", 4600, 200+1000*(ι-3), 3000, 600
ΕΠΟΜΕΝΟ
ΕΠΙΠΕΔΟ Πλαίσιο1_Στοιχεία {
ΟΘΟΝΗ 1
}
ΜΕ Πλαίσιο1, "visible" ΩΣ θεατό, "tabstop", ΨΕΥΔΕΣ
ΜΕ Πλαίσιο2, "visible" ΩΣ θεατό2, "tabstop",ΨΕΥΔΕΣ
ΜΕ Πλαίσιο1_Στοιχεία, "visible" ΩΣ θεατό3, "tabstop",ΨΕΥΔΕΣ
ΜΕ Φόρμα1, "LastControl" ΩΣ ΤελευταίοΣτοιχείο$, "backcolor" ΩΣ χρώμα_φόντου ' μόνο ανάγνωση
ΣΥΝΑΡΤΗΣΗ Ετικέτα(Πού, Χ, κ$, Χρώμα_Πένας, ΧρώμαΕτικέτας, ΑυτόΤοΧρώμα){
ΟΘΟΝΗ ΑυτόΤοΧρώμα
ΠΕΝΑ Χρώμα_Πένας
ΔΙΠΛΑ
ΦΑΡΔΙΑ 1
Π=ΜΕΓΕΘΟΣ.Χ(κ$, ΓΡΑΜΜΑΤΟΣΕΙΡΑ$, ΤΥΠΟΣ)
Υ=ΜΕΓΕΘΟΣ.Υ("fj", ΓΡΑΜΜΑΤΟΣΕΙΡΑ$, ΤΥΠΟΣ)
Υ1=Υ+ΥΨΟΣ.ΣΗΜΕΙΟΥ*2
ΠΑΧΟΣ 4 {
ΘΕΣΗ ΠΛΑΤΟΣ.ΣΗΜΕΙΟΥ*2, Υ1
ΧΑΡΑΞΕ Χ
ΧΑΡΑΞΕ ,-Υ
ΧΑΡΑΞΕ Π
ΧΑΡΑΞΕ Υ, Υ
ΧΑΡΑΞΕ ΕΩΣ Χ.ΣΗΜΕΙΑ-ΠΛΑΤΟΣ.ΣΗΜΕΙΟΥ*2
ΧΑΡΑΞΕ ΕΩΣ ,Ψ.ΣΗΜΕΙΑ-ΥΨΟΣ.ΣΗΜΕΙΟΥ*2
ΧΑΡΑΞΕ ΕΩΣ ΠΛΑΤΟΣ.ΣΗΜΕΙΟΥ*2
ΧΑΡΑΞΕ ΕΩΣ ΠΛΑΤΟΣ.ΣΗΜΕΙΟΥ*2, Υ1
}
ΘΕΣΗ 100, 100
ΓΕΜΙΣΕ Χ+150, 150, ΧρώμαΕτικέτας
ΜΕΘΟΔΟΣ Πού, "MaskColor", ΑυτόΤοΧρώμα
ΘΕΣΗ Χ+ΠΛΑΤΟΣ.ΣΗΜΕΙΟΥ*6, ΥΨΟΣ.ΣΗΜΕΙΟΥ*2
ΠΛΑΓΙΑ 1
ΕΠΙΓΡΑΦΗ κ$, ΓΡΑΜΜΑΤΟΣΕΙΡΑ$, ΤΥΠΟΣ, 0, 0, 1
=Π
}
ΤοΧρώμαΦόντουΜου=χρώμα_φόντου
ΕΠΙΠΕΔΟ Πλαίσιο1{
Π1=Ετικέτα(Πλαίσιο1, 0, " Πλαίσιο1 ", 11, 1, ΤοΧρώμαΦόντουΜου)
}
ΤΜΗΜΑ ΔείξεΑυτό (κ$) {
ΚΑΝΟΝΙΚΑ
ΠΛΑΓΙΑ 0
ΔΡΟΜΕΑΣ 0, ΥΨΟΣ/2
ΑΝΑΦΟΡΑ 2, κ$ ' 2 ΓΙΑ στοίχιση κέντρο
}
ΤΜΗΜΑ Πλαισιο2_εμφάνισε (ΝΕΟ εδώ) {
Π1 = Ετικέτα(Πλαίσιο2, εδώ, " Πλαίσιο2 ", 11, 2, ΤοΧρώμαΦόντουΜου)
ΔείξεΑυτό "Αυτό είναι το Πλαίσιο 2"
}
ΕΠΙΠΕΔΟ Πλαίσιο2{
ΚΑΛΕΣΕ ΤΟΠΙΚΑ Πλαισιο2_εμφάνισε, Π1+ΠΛΑΤΟΣ.ΣΗΜΕΙΟΥ*10
}
ΕΠΙΠΕΔΟ Φόρμα1 {
ΟΘΟΝΗ ΤοΧρώμαΦόντουΜου
ΦΟΡΜΑ ΠΛΑΤΟΣ, ΥΨΟΣ
ΦΟΝΤΟ 5, 1
ΔΡΟΜΕΑΣ 0, ΥΨΟΣ-1
ΤΥΠΩΣΕ ΜΕΡΟΣ $(6, ΠΛΑΤΟΣ), ΟΔΗΓΙΕΣ$
ΚΡΑΤΗΣΕ
}
ΣΥΝΑΡΤΗΣΗ Επαναφορά_Εστίασης() {
ΤΟΠΙΚΗ κ$=ΤελευταίοΣτοιχείο$
ΑΝ κ$<>"" ΤΟΤΕ
ΜΕΘΟΔΟΣ Φόρμα1, "Control", κ$ ΩΣ ΝΕΟ ΣτοιχείοΧρήστη
ΔΕΣ {ΜΕΘΟΔΟΣ ΣτοιχείοΧρήστη, "SetFocus"}
ΤΕΛΟΣ ΑΝ
}
ΣΥΝΑΡΤΗΣΗ Πλαίσιο1_Στοιχεία.click {
ΚΑΛΕΣΕ ΤΟΠΙΚΑ Πλαίσιο1.click()
}
ΣΥΝΑΡΤΗΣΗ Πλαίσιο1.click {
ΤΥΠΩΣΕ "κλικ Πλαίσιο1"
ΑΝΑΝΕΩΣΗ
ΜΕΘΟΔΟΣ Πλαίσιο1,"Zorder"
θεατό3=ΑΛΗΘΕΣ
ΚΑΛΕΣΕ ΤΟΠΙΚΑ Επαναφορά_Εστίασης()

ΑΝ τελευταίος_δείκτης<>-1 ΤΟΤΕ
ΟΡΙΣΕ Πλήκτρο1() ΔΙΑΓΡΑΦΗ τελευταίος_δείκτης
τελευταίος_δείκτης=-1
ΤΕΛΟΣ ΑΝ
ΑΝΑΝΕΩΣΗ
}
ΣΥΝΑΡΤΗΣΗ Πλαίσιο1.GotFocus {
ΚΑΛΕΣΕ ΤΟΠΙΚΑ Πλαίσιο1.click()
}
ΣΥΝΑΡΤΗΣΗ Πλαίσιο2.click {
ΤΥΠΩΣΕ "κλικ Πλαίσιο2"
ΜΕΘΟΔΟΣ Πλαίσιο2,"Zorder"
θεατό3=ΨΕΥΔΕΣ
ΕΠΙΠΕΔΟ Φόρμα1 {ΑΝΑΝΕΩΣΗ}
}
ΣΥΝΑΡΤΗΣΗ Πλαίσιο2.GotFocus {
ΚΑΛΕΣΕ ΤΟΠΙΚΑ Πλαίσιο2.click()
}
ΣΥΝΑΡΤΗΣΗ Φόρμα1.click {
ΤΥΠΩΣΕ "κλικ Φόρμα1"
ΑΝ θεατό ΤΟΤΕ
θεατό=ΨΕΥΔΕΣ
ΕΠΙΠΕΔΟ Πλαίσιο2 {
ΚΑΛΕΣΕ ΤΟΠΙΚΑ Πλαισιο2_εμφάνισε, 0
}
ΑΛΛΙΩΣ
ΑΝΑΝΕΩΣΗ 1000
ΕΠΙΠΕΔΟ Πλαίσιο1{
θεατό3=ΑΛΗΘΕΣ
Π1=Ετικέτα(Πλαίσιο1, 0, " Πλαίσιο1 ", 15, 1, ΤοΧρώμαΦόντουΜου)
}
ΕΠΙΠΕΔΟ Πλαίσιο2{
ΚΑΛΕΣΕ ΤΟΠΙΚΑ Πλαισιο2_εμφάνισε, Π1+ΠΛΑΤΟΣ.ΣΗΜΕΙΟΥ*10
}
ΕΠΙΠΕΔΟ Φόρμα1 {
ΑΦΗΣΕ
}
θεατό=Αληθές
ΚΑΛΕΣΕ ΤΟΠΙΚΑ Επαναφορά_Εστίασης()
ΤΕΛΟΣ ΑΝ
ΑΝΑΝΕΩΣΗ 10
}
ΣΥΝΑΡΤΗΣΗ Πλήκτρο1.click(ΝΕΟ τωρινός_δείκτης) {
        ΜΕ Πλήκτρο1(τωρινός_δείκτης), "caption" ΩΣ ΝΕΟ πινακίδα$
        τελευταίος_δείκτης=τωρινός_δείκτης
        ΤΥΠΩΣΕ "("+τωρινός_δείκτης +") "+ πινακίδα$
        ΑΝΑΝΕΩΣΗ
}
ΜΕΘΟΔΟΣ Πλαίσιο1, "AccKey", "1", opcode:= 503
ΜΕΘΟΔΟΣ Πλαίσιο2, "AccKey", "2", opcode:= 503
ΜΕΘΟΔΟΣ Φόρμα1, "show", 1
ΟΡΙΣΕ Φόρμα1 Τίποτα