Πέμπτη 20 Ιανουαρίου 2022

Αναθεώρηση 53, Έκδοση 10

 Σε αυτήν την αναθεώρηση, τελείωσα τον αρχικό σχεδιασμό για τις πολλαπλές στήλες στο ListBox. Επιπλέον φτιάχτηκε για τα ListBox, EditBox, ComboBox η διόρθωση κειμένου RTL (right to left text). Μπορούσαν να εμφανιστούν κείμενα με εβραϊκά ή αραβικά γράμματα, αλλά ο δρομέας δεν πήγαινε σωστά, όπως στο EditBox. Στο EditBox φτιάχνω την τελική εικόνα κάθε γραμμής στο αντικείμενο EditBox που χειρίζεται το glis4.cls UserControl, πάνω στη φόρμα. Σε αυτά τα τρία στοιχεία η εικόνα φτιάχνεται στο glis4.cls και τελικά η λύση στο πρόβλημα ήταν να βάλω ένα επιπλέον γεγονός που θα "μαθαίνει" που θα βάλει τον δρομέα σε εκείνα τα αντικείμενα που ακούν το συγκεκριμένο γεγονός.

Βρέθηκε και ένα bug στο διερμηνευτή (είχε προστεθεί τελευταία), και δεν μπορούσε να εκτελεστεί το  M2000_Editor_Information στο info.gsb. 

Παρακάτω είναι το πρόγραμμα ελέγχου/επίδειξης της νέας λειτουργίας πολλαπλών σειρών, με τις νέες μεθόδους που γράφτηκαν στην αναθεώρηση 53.

Υπάρχουν "εγγραφές" με RTL κείμενο. Επίσης ως έχει δεν διορθώνουμε τα "κελιά" του ListBox. Αν αλλάξουμε τη Σημ 2 με την Σημ 1 (η Σημ είναι το REM της BASIC), δηλαδή αν ενεργοποιήσουμε την εντολή  ΔιόρθωσεΛίστα= Αληθής  (όπου το ΔιόρθωσεΛίστα έχει συνδεθεί με την ιδιότητα Edit της Λίστας1) θα μπορέσουμε να διορθώσουμε. Θα δώσω άλλη φορά το πώς γίνεται να ελέγχουμε που θα γίνεται και που όχι η διόρθωση (δουλεύει με τα γεγονότα). Επίσης η ιδιότητα mychange που έχει το 0 (false) μπορεί να πάρει το -1 ή 1 ή True, και τότε όταν επιλέγουμε τη Λίστα1, γίνεται αυτόματα επιλογή κελιού όπως περνάει ο δείκτης του ποντικιού.

Οι παρακάτω εντολές δίνουν στη στήλη 4 δυνατότητα αναδίπλωσης και στη στήλη 3 στοίχιση στο κέντρο (οριζόντια). Θα προσθέσω και άλλα "χαρακτηριστικά" σε επόμενες αναθεωρήσεις.

Μέθοδος Λίστα1,"AttribColumn", "WrapText",  True, 4

Μέθοδος Λίστα1,"AttribColumn", "CenterText",  True, 3


Στην εξαγωγή κειμένου από το Editbox και τον διορθωτή της m2000 (είναι ένα εσωτερικό αντικείμενο TextEditor, που διαφέρει κάπως από το Editbox), όταν βρίσκει το TAB στο κείμενο εξάγει HTML με το pre tag, και τα χρώματα. Τώρα έβαλα και το στυλ να επιτρέπει την αναδίπλωση λέξεων - παραγράφων. 


Σταθερή ΣτοίχισηΚέντρο=2

στήλη$={Header 1
Paris
Athens
Rome
Report 1, "ברוכים הבאים الجامعات والكليات"
Nicosia
Brussels
Copenhagen
Berlin
Dublin
Luxembourg
One More
}
στήλη2$={Header 2
100
200
Report 1, "ברוכים הבאים الجامعات والكليات"
}
Όρισε Φόρμα1 Φόρμα
Με Φόρμα1, "title" ως οΤίτλοςμου$
Επίπεδο Φόρμα1 {
Διάστιχο 60
Γραμματοσειρά "Arial Black"
Παράθυρο 16, 12000,6000
Φόντο 11, 1, 0
Δρομέας 0, Ύψος Δια 2
Αναφορά ΣτοίχισηΚέντρο,"Hello World"
}
Όρισε Λίστα1 Λίστα Φόρμα Φόρμα1
Μέθοδος Λίστα1, "move", 1000,1000,7900,4500
Μέθοδος Λίστα1, "Colors", 0,1,,0,7
Με Λίστα1, "Column" ως Λίστα1.Στήλη, "Edit" ως Διόρθωση.Στοιχείου, "Transparent", Αληθές
Με Λίστα1, "maychange", 0, "NarrowSelect", Αληθές, "Edit" ως ΔιόρθωσεΛίστα, "ColumnWidth" ως ΠλάτοςΣτήλης()
Με Λίστα1,"text", στήλη$, "BorderStyle", 1 , "Default", Αληθές, "TopRows", 2, "Columns" ως ΣτήλεςΛίστας
Με Λίστα1, "Find" ως Βρες(), "List" Ως Λιστα$(), "TextColumn" Ως Στήλη$(), "AdjustColumns", Αληθές
Με Λίστα1, "ListIndex" ως Επιλεγμένο.Λίστας, "ListCount" ως Στοιχεία.Λίστας , "ShowAlways",Αληθές
Μέθοδος Λίστα1, "SetGrid", Αληθές, 5
Επιλεγμένο.Λίστας=0
Μέθοδος Λίστα1, "AppendColumn", 1,1
ΠλάτοςΣτήλης(1)=3000
ΠλάτοςΣτήλης(2)=3000
Στήλη$(2)=Στήλη2$
Αναφορά Στήλη$(1)
Επιλεγμένο.Λίστας=4
Μέθοδος Λίστα1, "insert", "**New**"
Μέθοδος Λίστα1, "Delete", Στοιχεία.Λίστας-1
Μέθοδος Λίστα1, "Delete", Στοιχεία.Λίστας-1
Μέθοδος Λίστα1, "InsertColumn", 2,2
ΠλάτοςΣτήλης(2)=600
ΠλάτοςΣτήλης(3)=600
Στήλη$(2)={Εμβόλιμη1
}
Στήλη$(3)={Εμβόλιμη2
}
Επιλεγμένο.Λίστας=0
Μέθοδος Λίστα1, "addheight", 1
εκεί=Βρες("Rome")
Αν εκεί>-1 τότε
Επιλεγμένο.Λίστας=εκεί
Μέθοδος Λίστα1, "addheight", 1
Τελος Αν
Μέθοδος Λίστα1,"AttribColumn", "WrapText", True, 4
Μέθοδος Λίστα1,"AttribColumn", "CenterText", True, 3
Σημ 1. ΔιόρθωσεΛίστα= Αληθής
Σημ 2.
ΔιόρθωσεΛίστα= Ψευδής
// Θέλουμε η φόρμα να αλλάζει μέγεθος. Από κάτω δεξιά.
Με Φόρμα1,"Sizable", Αληθές, "SizerWidth", 6*πλάτος.σημείου
Συνάρτηση Φόρμα1.Unload {
      Πληκτρολόγιο "!"   \\ like press !
}
Συνάρτηση Φόρμα1.click {
Λίστα1.Στήλη=1
ΠλάτοςΣτήλης(Τυχαίος(2, 3))=Αν(Τυχαίος<.3->0, 600)
Μέθοδος Λίστα1, "sort",,,1, 2
}
Συνάρτηση Φόρμα1.Resize {
Επίπεδο Φόρμα1 {
Τύπος 16
Φόντο 11, 1, 0
Δρομέας 0, Ύψος Δια 2
Αναφορά ΣτοίχισηΚέντρο,"Hello World"
}
Επίπεδο { Ανανέωση }
Μέθοδος Φόρμα1, "refreshALL"
}
Μέθοδος Φόρμα1, "Show"
α$=Κομ$
Όρισε Φόρμα1 Τίποτα



Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.