Pri načrtovanju obrazcev v Delphi, je pogosto koristno napisati kodo, da bo vaša aplikacija (obrazci in vsi predmeti) v bistvu enaki, ne glede na to, kakšna je ločljivost zaslona.
Prva stvar, ki se je želite spomniti že zgodaj v fazi oblikovanja obrazca, je, ali boste dovolili, da se obrazec poveča ali ne. Prednost ne skaliranja je, da se med izvajanjem nič ne spremeni. Pomanjkljivost neštevanja je ta nič se ne spreminja med izvajanjem (vaša oblika je morda premajhna ali prevelika, da bi jo lahko prebrali v nekaterih sistemih, če je ni mogoče spremeniti).
Če ne boste oblikovali obsega, nastavite Pomanjšana na lažno. V nasprotnem primeru nastavite lastnost na True. Tudi nastavite AutoScroll to False: nasprotno bi pomenilo, da med izvajanjem ne spremenite velikosti okvira obrazca, kar ne izgleda dobro, če je vsebina obrazca stori spremenite velikost.
Pomembna vprašanja
Nastavite pisavo obrazca na prilagodljivo pisavo TrueType, na primer Arial. Samo Arial vam bo dodal pisavo v sliki želene višine. Če pisava, uporabljena v aplikaciji, ni nameščen na ciljnem računalniku, potem bo Windows v isti družini pisav izbral alternativno pisavo namesto tega.
Nastavite obrazce Položaj lastnino za kaj drugega kot po zasnovan, ki zapusti obliko, kjer ste jo pustili v času načrtovanja. Ponavadi se na zaslonu 1280x1024 konča levo - in povsem v celoti na zaslonu 640x480.
Na obrazcu ne puščajte kontrol z množico - med kontrolo pustite vsaj 4 slikovne pike, da se sprememba enega piksla na mejah meja (zaradi skaliranja) ne bo prikazala kot prekrivajoči se nadzorni elementi.
Za enojne vrstice, ki so levo ali vredu poravnana, nastavljena Samodejna velikost do True. V nasprotnem primeru nastavite Samodejna velikost na lažno.
Prepričajte se, da je v komponenti nalepke dovolj praznega prostora, da lahko spremenite širino pisave - prazen prostor, ki je 25% dolžine toka vrvica dolžina zaslona je malo preveč, vendar varna. Če nameravate prevesti aplikacijo v druge jezike, boste potrebovali vsaj 30% razširitvenega prostora za nizovnih nalepk. Če Samodejna velikost je napačno, preverite, ali ste dejansko nastavili širino nalepke. Če Samodejna velikost True, poskrbite, da bo na voljo dovolj prostora, da nalepka raste sama.
V večvrstnih nalepkah z besedami pustite na dnu vsaj eno vrstico praznega prostora. To boste potrebovali, da ujamete preliv, ko se besedilo ovije drugače, ko se širina pisave spremeni z skaliranjem. Predpostavljajte, da vam, ker uporabljate velike pisave, ni treba dovoliti prelivanja besedila - nekdo drug velik krstni kamen je lahko večji od vašega!
Bodite previdni pri odpiranju projekta v IDE z različnimi ločljivostmi. Obrazec je PixelsPerInch lastnost bo spremenjena takoj, ko se odpre obrazec in shranjena v DFM, če shranite projekt. Aplikacijo je najbolje preizkusiti tako, da jo zaženete samostojno in uredite obrazec samo z eno ločljivostjo. Urejanje z različnimi ločljivostmi in velikostmi pisave povzroča težave pri premikanju komponent in spreminjanju velikosti. Prepričajte se, da ste nastavili svoje PixelsPerInch za vse vaše obrazce do 120. Privzeto je nastavljeno na 96, kar povzroča težave z skaliranjem pri nižji ločljivosti.
Če že govorite o premikanju komponent, obrazca ne spremenite večkrat, v času načrtovanja ali čas izvajanja. Vsako spreminjanje obsega uvede zaokrožene napake, ki se naberejo zelo hitro, saj so koordinate popolnoma sestavne. Ker se delni zneski odvzamejo glede na poreklo in velikosti regulatorja z vsakim zaporednim spreminjanjem, se zdi, da bodo kontrole lezele proti severozahodu in postale manjše. Če želite svojim uporabnikom omogočiti poljubno spreminjanje obsega obrazca, začnite s sveže naloženim / ustvarjenim obrazcem pred vsakim skaliranjem, tako da se napake pri skaliranju ne bodo kopičile.
Na splošno ni treba oblikovati obrazcev pri določeni ločljivosti, vendar je ključnega pomena, da jih pregledate videz pri 640 x 480 z velikimi in majhnimi pisavami ter z visoko ločljivostjo z majhnimi in velikimi pisavami, preden jih sprostite vaša aplikacija. To naj bo del vašega rednega kontrolnega seznama za preverjanje združljivosti sistema.
Bodite pozorni na vse sestavne dele, ki so v bistvu enovrstični TMemos -stvari, kot so TDBLookupCombo. Nadzor za urejanje več vrstic v sistemu Windows vedno prikazuje samo celotne vrstice besedila - če je nadzor prekratek za njegovo pisavo, a TMemo ne bo pokazal nič (a TEdit bo prikazano izrezano besedilo). Pri takšnih komponentah je bolje narediti nekaj slikovnih pik kot pa en piksel premajhen in sploh ne prikazati nobenega besedila.
Upoštevajte, da je vsako skaliranje sorazmerno z razliko v višini pisave med časom izvajanja in časom oblikovanja, ne ločljivost slikovnih pik ali velikost zaslona. Ne pozabite tudi, da se bodo izvori kontrolnikov spremenili, ko je oblika spremenjena - ne morete zelo izboljšati komponent, ne da bi jih tudi nekoliko premaknili.
Sidra, poravnava in omejitve: VCL tretje osebe
Ko veste, na katere težave morate biti pozorni pri spreminjanju številk obrazcev Delphi na različne ločljivosti zaslona, ste pripravljeni na nekatere kodiranje.
Pri delu z različico Delphi 4 ali novejšo različico je zasnovanih več lastnosti, ki nam pomagajo ohranjati videz in postavitev kontrolnikov na obrazcu.
Uporaba Poravnajte za poravnavo kontrolnika na zgornjem, spodnjem levem ali desnem delu obrazca ali plošče in naj ostane tam, tudi če se spremeni velikost obrazca, plošče ali komponente, ki vsebuje nadzor. Če spremenite velikost nadrejenega, se poravna tudi velikost poravnave, tako da še naprej obsega zgornji, spodnji, levi ali desni rob nadrejenega.
Uporaba Omejitve da določite najmanjšo in največjo širino in višino komande. Če Omejitve vsebujejo največje ali najnižje vrednosti, krmiljenja ni mogoče spremeniti, da bi kršilo te omejitve.
Uporaba Sidra za zagotovitev, da nadzor ohrani svoj trenutni položaj glede na rob nadrejenega, tudi če je nadrejeni spremenjen. Ko se spremeni velikost nadrejenega, se krmilni element zadrži glede na robove, na katere je zasidran. Če je kontrolnik zasidran na nasprotnih robovih nadrejenega, se kontrolnik razteza, ko spremenite velikost nadrejenega.
postopek ScaleForm
(F: TForm; ScreenWidth, ScreenHeight: LongInt);
začeti
F.Scaled: = Res;
F.AutoScroll: = Lažno;
F.Position: = poScreenCenter;
F.Font. Ime: = 'Arial';
če (Zaslon. Širina <> Širina zaslona) nato začnite
F. Višina: =
LongInt (F.Height) * LongInt (zaslon. Višina)
div ScreenHeight;
F. Širina: =
LongInt (F.Width) * LongInt (zaslon. Premer)
div ScreenWidth;
F.ScaleBy (Zaslon. Širina, širina zaslona);
konec;
konec;