Съвети за приложения с много разделителна способност Delphi

click fraud protection

При проектиране форми в Delphi, често е полезно да напишете кода, така че вашето приложение (формуляри и всички обекти) да изглежда по същество еднакво, независимо от това каква е резолюцията на екрана.

Първото нещо, което искате да запомните в началото на етапа на проектиране на формуляра, е дали ще разрешите мащабирането на формата или не. Предимството да не мащабирате е, че нищо не се променя по време на изпълнение. Недостатъкът на неразширяването е това нищо не се променя по време на изпълнение (формата ви може да е твърде малка или твърде голяма, за да се чете в някои системи, ако не е мащабирана).

Ако няма да мащабите формата, задайте изкачен до фалшив. В противен случай задайте свойството на True. Също така, задайте Autoscroll to False: обратното би означавало да не промените размера на рамката на формата по време на изпълнение, което не изглежда добре, когато съдържанието на формата правя промяна на размера.

Важни съображения

Задайте шрифта на формата на мащабируем шрифт TrueType, като Arial. Само Arial ще ви даде шрифт в рамките на пиксел от желаната височина. Ако шрифтът, използван в приложение, не е инсталиран на целевия компютър, тогава Windows ще избере алтернативен шрифт в същото семейство шрифтове, който да използва вместо.

instagram viewer

Задайте формулярите позиция собственост на нещо различно от poDesigned, което оставя формата там, където сте го оставили по време на проектирането. Обикновено това завършва вляво на 1280x1024 екран и напълно изключва екрана 640x480.

Не контролирайте множеството контроли във формата - оставете поне 4 пиксела между контролите, така че еднопикселната промяна в границите на границите (поради мащабиране) да не се покаже като припокриващи се контроли.

За едноредови етикети, които са alLeft или добре подравнен, зададен AutoSize на Истина. В противен случай задайте AutoSize до фалшив.

Уверете се, че има достатъчно празно място в компонент на етикет, за да се позволи промяна на ширината на шрифта - празно пространство, което е 25% от дължината на текущия низ дължината на дисплея е малко прекалено, но безопасна. Ще ви трябва поне 30% пространство за разширение за стринг етикети, ако планирате да преведете приложението си на други езици. ако AutoSize е False, уверете се, че действително сте задали ширината на етикета по подходящ начин. ако AutoSize е True, уверете се, че има достатъчно място, за да може етикетът да расте сам.

В многоредовите, обвити с думи етикети, оставете най-малко един ред празно място в долната част. Това ще ви е необходимо, за да уловите преливането, когато текстът се увива различно, когато ширината на шрифта се промени с мащабиране. Не приемайте, че тъй като използвате големи шрифтове, не е необходимо да допускате преливане на текст - нечии други големи шрифтове може да са по-големи от вашите!

Внимавайте да отворите проект в IDE с различни резолюции. Формата е PixelsPerInch свойството ще бъде променено веднага след отварянето на формуляра и ще бъде записано в DFM, ако запазите проекта. Най-добре е да тествате приложението, като го стартирате самостоятелно и редактирате формата само с една резолюция. Редактирането с различна разделителна способност и размер на шрифта приканва проблемите с изместване и оразмеряване на компонентите. Уверете се, че сте задали своя PixelsPerInch за всички ваши формуляри до 120. По подразбиране е 96, което води до проблеми с мащабирането при по-ниска разделителна способност.

Говорейки за отклонение на компонентите, не преоразмерявайте формуляр многократно, по време на проектиране или по време на работа. Всяко преориентиране въвежда грешки в закръгляне, които се натрупват много бързо, тъй като координатите са строго неразделни. Тъй като частичните количества са отрязани от произхода и размерите на контрола с всяко следващо пренасочване, контролите ще изглеждат пълзящи на северозапад и ще стават по-малки. Ако искате да разрешите на потребителите си да преоразмеряват формата безброй пъти, започнете с прясно заредена / създадена форма преди всяко мащабиране, за да не се натрупват грешки в мащабирането.

Като цяло не е необходимо да се проектират формуляри при някаква конкретна резолюция, но е от съществено значение да ги прегледате поява на 640x480 с големи и малки шрифтове и с висока разделителна способност с малки и големи шрифтове, преди да пуснете вашето приложение. Това трябва да е част от вашия редовен контролен списък за тестване на съвместимостта на системата.

Обърнете внимание на всички компоненти, които по същество са еднолинейни TMemos-неща като TDBLookupCombo. Контролът за многоредово редактиране на Windows винаги показва само цели редове текст - ако контролът е твърде кратък за шрифта му, a TMemo няма да покаже нищо (a TEdit ще покаже изрязан текст). За такива компоненти е по-добре да ги направите няколко пиксела твърде големи, отколкото да са един пиксел твърде малък и да не показвате никакъв текст.

Имайте предвид, че цялото мащабиране е пропорционално на разликата във височината на шрифта между времето на изпълнение и времето за проектиране, не резолюцията на пиксела или размера на екрана. Не забравяйте също, че произходът на вашите контроли ще се промени, когато формата е мащабирана - не можете много добре да увеличите компонентите, без също да ги преместите малко.

Котви, подравняване и ограничения: VCL на трета страна

След като знаете какви проблеми трябва да имате предвид при мащабиране на формулярите Delphi при различни разделителни способности на екрана, вие сте готови за някои кодиране.

При работа с Delphi версия 4 или по-нова версия са създадени няколко свойства, които да ни помогнат да поддържаме външния вид и оформлението на контролите върху формуляр.

употреба Изравнете за да подравните контрола отгоре, отдолу вляво или отдясно на формуляр или панел и да остане там, дори ако размерът на формата, панела или компонента, който съдържа контрола, се промени. Когато родителят е преоразмерен, подравненият контролен елемент също преоразмерява, така че да продължава да обхваща горния, долния, левия или десния ръб на родителя.

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

употреба Котвите за да се гарантира, че контрола поддържа текущото си положение спрямо ръба на родителя си, дори ако родителят е преоразмерен. Когато родителят му е преоразмерен, контролът държи позицията си спрямо ръбовете, към които е закотвен. Ако контролът е закотвен към противоположните ръбове на родителя, той се разтяга, когато родителят му е преоразмерен.

процедура ScaleForm
(F: TForm; ScreenWidth, ScreenHeight: LongInt);
започвам
F.Scaled: = Вярно;
F.AutoScroll: = Грешно;
F.Position: = poScreenCenter;
F.Font. Име: = 'Arial';
ако (Екран. Width <> ScreenWidth) след това започнете
F.Height: =
LongInt (F.Height) * LongInt (екран. Височина)
div ScreenHeight;
F. Ширина: =
LongInt (F. Ширина) * LongInt (Екран. Ширина)
div ScreenWidth;
F.ScaleBy (Екран. Ширина, Ширина на екрана);
край;
край;
instagram story viewer