Савети за Делпхи апликације са више резолуција

При пројектовању форме ин Делпхи, често је корисно написати код тако да апликација (обрасци и сви објекти) изгледа битно исто без обзира на резолуцију екрана.

Прво чега се желите рано сетити у фази дизајна обрасца јесте да ли ћете дозволити да се образац прилагоди или не. Предност не скалирања је та што се током извођења ништа не мења. Недостатак не скалирања је тај ништа се не мења током извођења (ваш образац је можда превише мали или превелики да бисте га читали на неким системима ако га не скалирате).

Ако нећете да скалирате форму, подесите Скала то Фалсе. У супротном, поставите својство на Труе. Такође, подесите АутоСцролл на Лажно: супротно значило би да не мењате величину оквира форме током извођења, што не изгледа добро када садржај форме урадити промените величину.

Важна разматрања

Подесите фонт форме на скалабилни ТруеТипе фонт, попут Ариал. Само Ариал ће вам дати фонт унутар пиксела жељене висине. Ако фонт који се користи у апликацији није инсталиран на циљном рачунару, онда ће Виндовс одабрати алтернативни фонт унутар исте породице фонтова који ће користити уместо тога.

instagram viewer

Подесите обрасце Положај својина нечем другом осим по дизајниран, који оставља облик тамо где сте га оставили у време пројектовања. Обично се завршава лево од екрана 1280к1024 - и потпуно искључи са 640к480 екрана.

Не гомилајте контроле на обрасцу - оставите најмање 4 пиксела између контрола како се промена једног места у границама (због скалирања) не би показала као преклапајуће контроле.

За једноредне етикете које су алЛефт или добро поравнато, постављено Аутоматска величина то Труе. У супротном, подесите Аутоматска величина то Фалсе.

Уверите се да има довољно празног простора у компоненти налепнице да бисте омогућили промену ширине фонта - празан простор који износи 25% дужине струје низ дужина екрана је мало превише, али сигурно. Требат ће вам најмање 30% простора за проширење за наљепнице стрингова ако планирате превести апликацију на друге језике. Ако Аутоматска величина је лажно, обавезно поставите ширину налепнице на одговарајући начин. Ако Аутоматска величина је тачно, побрините се да има довољно простора да етикета расте сама.

На вишем линијским налепницама са речима на дну оставите најмање један празан простор. Ово ће вам требати да бисте ухватили преливање када се текст савија другачије када се ширина фонта мења скалирањем. Немојте претпостављати да зато што користите велике фонтове не морате дозволити преливање текста - туђи велики фонт може бити већи од вашег!

Пазите на отварање пројекта у ИДЕ-у у различитим резолуцијама. Форма је ПикелсПерИнцх својство ће бити измењено чим се образац отвори и биће сачуван у ДФМ-у ако сачувате пројекат. Апликацију је најбоље испробати самосталним покретањем и уредити образац са само једном резолуцијом. Уређивање у различитим резолуцијама и величинама фонта позива на проблеме са смањењем величине и величине. Обавезно поставите свој ПикелсПерИнцх за све ваше обрасце до 120. Подразумевано је на 96, што ствара проблеме с скалирањем у нижој резолуцији.

Када говоримо о наношењу компоненти, не промените поново образац више пута, у време пројектовања или време извођења. Свако поновно скалирање уноси заокружене грешке које се накупљају врло брзо јер су координате строго интегралне. Пошто се фракциони износи одсекују порекло и величине контроле са сваким узастопним скалирањем, изгледа да ће се контроле кретати северозападно и смањити се. Ако желите да омогућите својим корисницима било који број поновних скалирања обрасца, почните са свеже учитаним / креираним обрасцем пре сваког скалирања тако да се грешке у скалирању не накупљају.

Опћенито, није потребно дизајнирати обрасце на било којој одређеној резолуцији, али је кључно да их прегледате изглед у 640к480 са великим и малим фонтом и у високој резолуцији са малим и великим фонтом, пре него што их пустите ваша апликација. Ово би требало бити део ваше редовне листе тестирања компатибилности система.

Обратите пажњу на све компоненте које су у основи једно-линијске ТМемос—ствари као што су ТДБЛоокупЦомбо. Контрола за уређивање више редака Виндовс увек приказује само читаве редове текста - ако је контрола прекратка за њен фонт, а ТМемо неће показати ништа уопште (а ТЕдит ће приказати одсечен текст). За такве компоненте боље је направити неколико пиксела превеликим него што су један пиксели премали и уопште не приказују текст.

Имајте на уму да је сво скалирање пропорционално разлици у висини фонта између времена извршавања и времена дизајнирања, не резолуција пиксела или величина екрана. Запамтите такође да ће се порекло ваших контрола променити када се облик скалира - не можете баш тако да повећате компоненте без да их такође мало преместите.

Сидра, поравнање и ограничења: ВЦЛ треће стране

Једном када сазнате на које проблеме морате имати на уму приликом скалирања Делпхи облика на различитим резолуцијама екрана, за неке сте спремни кодирање.

При раду са Делпхи верзијом 4 или новијом, неколико својстава је дизајнирано да нам помогне у одржавању изгледа и изгледа контрола на обрасцу.

Употреба Поравнајте да бисте поравнали неку контролу над горњим, доњим левим или десним странама обрасца или панела и оставили их, чак и ако се промени величина обрасца, панела или компоненте која садржи контролу. Када се родитељу промијени величина, поравнана контрола се такођер промијени тако да наставља распон горње, доње, лијеве или десне ивице родитеља.

Употреба Ограничења да одредите минималну и максималну ширину и висину команде. Када Ограничења садрже максималне или минималне вредности, контрола се не може променити да би се прекршила та ограничења.

Употреба Сидра како би се осигурало да контрола задржи свој тренутни положај у односу на ивицу родитеља, чак и ако је родитељ промењен. Када се његов родитељ промијени, контрола задржава положај у односу на ивице на којима је усидрена. Ако је контрола усидрена на супротним ивицама свог надређеног, контрола се протеже када се родитељ промијени.

процедура СцалеФорм
(Ф: ТФорм; СцреенВидтх, СцреенХеигхт: ЛонгИнт);
започети
Ф.Сцалед: = Тачно;
Ф.АутоСцролл: = Нетачно;
Ф.Поситион: = поСцреенЦентер;
Ф.Фонт. Наме: = 'Ариал';
ако (екран. Ширина <> Ширина екрана) затим почните
Ф.Хеигхт: =
ЛонгИнт (Ф.Хеигхт) * ЛонгИнт (екран. Висина)
див СцреенХеигхт;
Ф. Ширина: =
ЛонгИнт (Ф. ширина) * ЛонгИнт (екран. Ширина)
див СцреенВидтх;
Ф.СцалеБи (екран. Ширина, ширина екрана);
крај;
крај;
instagram story viewer