[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Szerokość pól FILL-IN w wersji graficznej



Mam problem z szerokością pól FILL-IN w ramkach i kolumnach browser'ów w
wersji graficznej PROGRESS'a (wersja 8.1). Poniżej opiszę o co chodzi.

W wersji graficznej (i znakowej), jeśli brak frazy "size-phrase", PROGRESS
wylicza szerokość pól FILL-IN typu CHAR na podstwie formatu. Np: jeśli pole
ma format "x(20)" i nie ma w jawny sposób podanej szerokości
("size-phrase"), to przyjmije pewną "średnią szerokość znaku" i mnoży ją
przez 20. Skąd bierze tę "średnią szerokość" to nie wiem (jest ona chyba
własnością konkretnego fontu). Dla fontu "System" i fontów o stałej
szerokości znaku jest wszystko poprawnie, lecz dla innych fontów,
szczegónie o mniejszym rozmiarze (węższych) niż font "System" (na tym samym
komputerze, z tą samą rozdizelczością), ta "średnia szerokość" jest
wyraźnie za mała, bo w polu o formacie "x(20)" mieści się około 16 - 17
znaków. Przypuszczam, że wynika to z tego, że trójwymiarowe brzegi pól
FILL-IN w ramkach zajmują tyle samo piksli w każdym foncie i kradną trochę
miejsca na znaki, jednak czy aż tak dużo, by wyjaśnić to zjawisko to nie
wiem. W przypadku kolumn browserów to przypuszczenie zawodzi całkowice (tam
nie ma trójwymiarowych brzegów). Pozostałe znaki oczywiście nie giną, bo
pole jest przewijane w poziomie, ale jest to niewygodne, a w przypadku pól
tylko wyświetlanych ("sensitive"=False)  przewijania nie ma.

Stąd moje pytanie - czy ktoś wie jak zmusić PROGRESS'a by zwiększył
"średnią szerokość znaku" dla fontu przyjmowaną do wyliczania szerokości
pola na podstawie formatu bez wymuszania poprzez "size-phrase" przyjęcia
konkretnej szerokości pola FILL-IN, tak by znaki mieściły się polu (może
nawet zostać trochę wolnego miejsca na końcu). Może jest jakiś parametr
dający dodatkowy współczynnik do przeliczeń, może w samej definicji fonta
można coś zmienić, czy też jest inny sposób. Przewertowałem dokumentację,
ale nie udało mi się trafić na coś takiego. Myślę, że ten problem jest dość
powszechny.

     Z góry dziękuję za zainteresowanie sprawą.

                    
                     Henryk Jusza
                     -------------------------------------------------------
                     Ośrodek Informatyczny Politechniki Gdańskiej
                     Pracownia Rozwoju Oprogramowania
                     tel (058) 347-28-01          fax (058) 347-24-63