Καλησπέρα σε όλους!
Γιώργο το ζητούμενο μπορεί να υλοποιηθεί ως εξής:
Σε μια κενή φόρμα προσθέτουμε 80 πλαίσια κειμένου σε
σωρευμένη διάταξη.
Τα επιλέγουμε όλα κάνοντας κλικ στο σύμβολο που βρίσκεται πάνω αριστερά στο πλέγμα συγκράτησης των πεδίων και στις ιδιότητες επιλέγουμε:
Οριζόντια και
κατακόρυφη αγκύρωση =
"Και τα δύο" ώστε το μέγεθος τους να αυξομειώνεται ομοιόμορφα κάθε φορά που αλλάζει το μέγεθος της φόρμας.
Φροντίσουμε τα πλαίσια αυτά να έχουν κοινό πρόθεμα πχ. "txt" ακολουθούμενο από ένα αύξοντα αριθμό (txt1, txt2, txt3....txt80). Η διαδικασία αυτή γίνεται και προγραμματιστικά αλλά δεν είναι το ζητούμενο του θέματος. Μπορείς να τα αντιγράψεις από το παράδειγμα που επισυνάπτω.
Στην πτυσσόμενη λίστα "
Αναπλήρωση στοιχείων ελέγχου" επιλέγουμε "
Κανένα".
Κατόπιν αλλάζουμε το μέγεθος της γραμματοσειράς με τη τιμή
5 αν το υποστηρίζει η επιλεγμένη γραμματοσειρά.
Οι τιμές των αυτών των πεδίων εισάγονται προγραμματιστικά από τον πίνακα κατά τη φόρτωση της φόρμας.
Μέχρι εδώ καλά. Τι γίνεται όμως με την αλλαγή μεγέθους της γραμματοσειράς η οποία πρέπει να "κοντύνει" για να χωρέσει στο στοιχείο ελέγχου;
Δεν υπάρχει επίσημη μέθοδος που να μας επιτρέπει μετρήσουμε το μήκος μιας γραμματοσειράς ώστε να αυξομειώσουμε ανάλογα το μέγεθος της γραμματοσειράς.
Μπορούμε να χρησιμοποιήσουμε το κρυφό αλλά σε μεγάλο βαθμό λειτουργικό αντικείμενο
WizHook. Για να εμφανίσουμε τα κρυφά αντικείμενα ή μεθόδους στον
VBE πατάμε
F2 και επιλέγουμε και στο παράθυρο που θα εμφανιστεί επιλέγουμε "
Show Hidden Members".
To
WizHook περιέχει μεταξύ άλλων τη συνάρτηση
TwipsFromFont() η οποία επιστρέφει το μήκος και το ύψος μιας συγκεκριμένης συμβολοσειράς αφού δώσουμε κάποιες παραμέτρους όπως την ίδια τη συμβολοσειρά, το όνομα, το στυλ, το μέγεθος, και υπογράμμιση.
Για να κάνεις τις δοκιμές σου σε οθόνες των 10 - 12 ιντσών μπορείς να αλλάξεις το
στυλ περιγράμματος της φόρμας σε
"Κανένα" και μεγιστοποιήσεις τη φόρμα κατά το άνοιγμά της.
Υπάρχουν και άλλες λεπτομέρειες που μπορεί να δει κανείς στο επισυναπτόμενο παράδειγμα.
Καλή συνέχεια!
Τάσος