Συμβουλές για εφαρμογές Delphi πολλαπλών αναλύσεων

click fraud protection

Κατά το σχεδιασμό μορφές σε Δελφοί, είναι συχνά χρήσιμο να γράψετε τον κώδικα έτσι ώστε η εφαρμογή σας (φόρμες και όλα τα αντικείμενα) να φαίνεται ουσιαστικά η ίδια ανεξάρτητα από την ανάλυση οθόνης.

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

Εάν δεν πρόκειται να κλιμακώσετε τη φόρμα, ρυθμίστε Λεπιδωτός στο ψεύτικο. Διαφορετικά, ορίστε την ιδιότητα σε True. Επίσης, ρυθμίστε Αυτόματη κύλιση στο False: το αντίθετο θα σήμαινε ότι δεν θα αλλάξει το μέγεθος του πλαισίου της φόρμας κατά το χρόνο εκτέλεσης, το οποίο δεν φαίνεται καλό όταν το περιεχόμενο της φόρμας κάνω αλλαγή μεγέθους.

Σημαντικές εκτιμήσεις

Ορίστε τη γραμματοσειρά της φόρμας σε μια κλιμακούμενη γραμματοσειρά TrueType, όπως το Arial. Μόνο η Arial θα σας δώσει μια γραμματοσειρά μέσα σε ένα εικονοστοιχείο του επιθυμητού ύψους.Αν η γραμματοσειρά που χρησιμοποιείται σε μια εφαρμογή δεν είναι εγκατεστημένο στον υπολογιστή προορισμού, τότε τα Windows θα επιλέξουν μια εναλλακτική γραμματοσειρά μέσα στην ίδια οικογένεια γραμματοσειρών που θα χρησιμοποιήσει αντι αυτου.

instagram viewer

Ορίστε τη φόρμα Θέση ιδιοκτησία σε κάτι άλλο από poDesigned, η οποία αφήνει τη φόρμα όπου την αφήσατε κατά την προγραμματισμένη ώρα. Αυτό συνήθως τελειώνει πολύ προς τα αριστερά σε μια οθόνη 1280x1024 και εντελώς εκτός οθόνης 640x480.

Μην πλήττετε τα στοιχεία ελέγχου στη φόρμα - αφήστε τουλάχιστον 4 εικονοστοιχεία μεταξύ των στοιχείων ελέγχου, έτσι ώστε η αλλαγή ενός pixel στις θέσεις των συνόρων (λόγω κλιμάκωσης) να μην εμφανίζεται ως επικαλυπτόμενα στοιχεία ελέγχου.

Για τις ετικέτες μιας γραμμής που είναι alLeft ή καλώς ευθυγραμμισμένο, ρυθμισμένο AutoSize σε True. Διαφορετικά, ρυθμίστε AutoSize στο ψεύτικο.

Βεβαιωθείτε ότι υπάρχει αρκετός κενός χώρος σε μια ετικέτα για να επιτρέψετε τις αλλαγές πλάτους γραμματοσειράς - ένας κενός χώρος που είναι 25% της διάρκειας του τρέχοντος σειρά το μήκος της οθόνης είναι λίγο πολύ, αλλά ασφαλές. Θα χρειαστείτε τουλάχιστον 30% χώρο επέκτασης για ετικέτες συμβολοσειρών εάν σκοπεύετε να μεταφράσετε την εφαρμογή σας σε άλλες γλώσσες. Αν AutoSize είναι ψευδές, φροντίστε να ρυθμίσετε σωστά το πλάτος της ετικέτας. Αν AutoSize είναι αλήθεια, βεβαιωθείτε ότι υπάρχει αρκετό περιθώριο για την ανάπτυξη της ετικέτας από μόνη της.

Σε ετικέτες που έχουν επικαλυφθεί με λέξεις πολλαπλών γραμμών, αφήστε τουλάχιστον μια γραμμή κενού χώρου στο κάτω μέρος. Θα χρειαστείτε αυτό για να πιάσετε την υπερχείλιση όταν το κείμενο αναδιπλώνεται διαφορετικά όταν το πλάτος γραμματοσειράς αλλάζει με κλιμάκωση. Μην υποθέστε ότι επειδή χρησιμοποιείτε μεγάλες γραμματοσειρές, δεν χρειάζεται να επιτρέπετε υπερχείλιση κειμένου - οι μεγάλες γραμματοσειρές κάποιου άλλου μπορεί να είναι μεγαλύτερες από τις δικές σας!

Προσέξτε να ανοίξετε ένα έργο στο IDE σε διαφορετικές αναλύσεις. Το έντυπο PixelsPerInch η ιδιότητα θα τροποποιηθεί μόλις ανοίξει η φόρμα και θα αποθηκευτεί στο DFM αν αποθηκεύσετε το έργο. Είναι καλύτερο να δοκιμάσετε την εφαρμογή εκτελώντας την αυτόνομη και να επεξεργαστείτε τη φόρμα με μία μόνο ανάλυση. Η επεξεργασία σε ποικίλες αναλύσεις και μεγέθη γραμματοσειρών προκαλεί προβλήματα παραμόρφωσης και μεγέθους. Βεβαιωθείτε ότι έχετε ρυθμίσει το δικό σας PixelsPerInch για όλες τις φόρμες σας έως 120. Είναι προεπιλεγμένη σε 96, γεγονός που προκαλεί προβλήματα κλιμάκωσης σε χαμηλότερη ανάλυση.

Μιλώντας για την παρασυρόμενη συνιστώσα, μην επαναλάβετε τη μεταγλώττιση μιας φόρμας πολλές φορές, κατά την προγραμματισμένη ώρα ή χρόνου εκτέλεσης. Κάθε ανακύκλωση εισάγει σφάλματα στρογγυλοποίησης που συσσωρεύονται πολύ γρήγορα, αφού οι συντεταγμένες είναι αυστηρά ολοκληρωμένες. Καθώς οι κλασματικές ποσότητες είναι αποκομμένες από την προέλευση και τα μεγέθη του ελέγχου, με κάθε διαδοχική αναδιάταξη, τα στοιχεία ελέγχου εμφανίζονται να ερπυσμούνε προς τα βορειοδυτικά και να γίνονται μικρότερα. Εάν θέλετε να επιτρέψετε στους χρήστες σας να αναδιατάξουν τη φόρμα πολλές φορές, ξεκινήστε με μια φόρμα φρέσκιας φόρτωσης / δημιουργίας πριν από κάθε κλιμάκωση, ώστε να μην συσσωρεύονται σφάλματα κλιμάκωσης.

Σε γενικές γραμμές, δεν είναι απαραίτητο να σχεδιάζετε έντυπα σε οποιοδήποτε συγκεκριμένο ψήφισμα, αλλά είναι σημαντικό να επανεξετάσετε τις εμφάνιση σε 640x480 με μεγάλες και μικρές γραμματοσειρές και σε υψηλής ανάλυσης με μικρές και μεγάλες γραμματοσειρές πριν από την απελευθέρωση της εφαρμογής σας. Αυτό θα πρέπει να αποτελεί μέρος της τακτικής λίστας ελέγχου της συμβατότητας του συστήματος.

Δώστε ιδιαίτερη προσοχή σε οποιαδήποτε στοιχεία που είναι ουσιαστικά μονής γραμμής TMemos-πράγματα όπως TDBLookupCombo. Ο έλεγχος επεξεργασίας πολλών γραμμών των Windows εμφανίζει πάντα μόνο ολόκληρες γραμμές κειμένου - αν ο έλεγχος είναι πολύ μικρός για τη γραμματοσειρά του, α TMemo δεν θα δείξει τίποτα καθόλου (α TEdit θα εμφανίσει κείμενο με περικοπή). Για τέτοιες συνιστώσες, είναι καλύτερο να τα κάνετε μερικά pixel πολύ μεγάλα από το να είναι ένα pixel πολύ μικρό και να μην εμφανίζεται κανένα κείμενο.

Λάβετε υπόψη ότι όλες οι κλίμακες είναι ανάλογες με τη διαφορά στο ύψος της γραμματοσειράς μεταξύ χρόνου εκτέλεσης και σχεδιασμού, δεν την ανάλυση των pixel ή το μέγεθος της οθόνης. Θυμηθείτε επίσης ότι η προέλευση των στοιχείων ελέγχου θα αλλάξει όταν η μορφή είναι κλιμακωτή - δεν μπορείτε να κάνετε πολύ καλά τα στοιχεία μεγαλύτερα χωρίς να τα μετακινείτε λίγο.

Άγκυρες, ευθυγράμμιση και περιορισμοί: VCL τρίτου μέρους

Αφού γνωρίζετε ποια ζητήματα πρέπει να λάβετε υπόψη κατά την κλιμάκωση των μορφών των Δελφών σε διαφορετικές αναλύσεις οθόνης, είστε έτοιμοι για μερικούς κωδικοποίηση.

Όταν εργάζεστε με Delphi έκδοση 4 ή υψηλότερη, πολλές ιδιότητες έχουν σχεδιαστεί για να μας βοηθήσουν να διατηρήσουμε το βλέμμα και τη διάταξη των ελέγχων σε μια φόρμα.

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

Χρήση Περιορισμοί για να καθορίσετε το ελάχιστο και το μέγιστο πλάτος και ύψος του χειριστηρίου. Όταν οι Περιορισμοί περιέχουν μέγιστες ή ελάχιστες τιμές, ο έλεγχος δεν μπορεί να αλλάξει μεγέθους για να παραβιάσει αυτούς τους περιορισμούς.

Χρήση Άγκυρες για να διασφαλιστεί ότι ο έλεγχος διατηρεί την τρέχουσα θέση του σε σχέση με την άκρη του γονέα του, ακόμα και αν το γονικό μέγεθος έχει αλλάξει. Όταν ο γονέας μετατραπεί σε μέγεθος, ο έλεγχος διατηρεί τη θέση του σε σχέση με τις άκρες στις οποίες είναι αγκυρωμένη. Εάν ένας έλεγχος είναι αγκυρωμένος στα αντίθετα άκρα του γονέα του, ο έλεγχος εκτείνεται όταν το μητρικό του μέγεθος έχει αλλάξει.

διαδικασία ScaleForm
(F: TForm; ScreenWidth, ScreenHeight: LongInt).
ξεκινήσει
F.Scaled: = True;
F.AutoScroll: = Λάθος;
F. Θέση: = poScreenCenter;
F.Font. Όνομα: = 'Arial';
αν (οθόνη. Width <> ScreenWidth)
F.Height: =
LongInt (F.Height) * LongInt (Οθόνη. Υψος)
div ScreenHeight;
F.Width: =
LongInt (F.Width) * LongInt (Οθόνη. Πλάτος)
div ScreenWidth;
F.ScaleBy (Οθόνη. Width, ScreenWidth).
τέλος;
τέλος;
instagram story viewer