Padomi vairāku izšķirtspēju Delphi lietojumprogrammām

Projektējot formas iekšā Delfi, bieži ir noderīgi uzrakstīt kodu tā, lai jūsu lietojumprogramma (veidlapas un visi objekti) izskatās vienādi neatkarīgi no ekrāna izšķirtspējas.

Pirmais, ko vēlaties atcerēties jau veidlapas izstrādes sākumā, ir tas, vai atļausit veidlapas mērogošanu vai nē. Nepielāgošanas priekšrocība ir tā, ka izpildlaika laikā nekas nemainās. Neizmērīšanās trūkums ir tas izpildlaikā nekas nemainās (jūsu veidlapa var būt pārāk maza vai pārāk liela, lai lasītu dažās sistēmās, ja tā nav mērogojama).

Ja jūs negrasāties izmērīt veidlapu, iestatiet Mēroga uz nepatiesu. Pretējā gadījumā iestatiet īpašumu uz True. Arī noteikti Automātiskā ritināšana nepatiess: pretējs nozīmētu formas rāmja lieluma nemainīšanu izpildlaikā, kas neizskatās labi, ja formas saturs darīt mainīt izmēru.

Svarīgi apsvērumi

Iestatiet veidlapas fontu uz pielāgojamu TrueType fontu, piemēram, Arial. Tikai Arial jums piešķirs fontu vēlamā augstuma pikseļos. Ja lietojumprogrammā izmantotais fonts nav instalēta mērķa datorā, pēc tam Windows atlasīs alternatīvu fontu tajā pašā fontu saimē, kuru izmantot tā vietā.

instagram viewer

Iestatiet veidlapu Pozīcija īpašums kaut kam citam, nevis poDesigned, kas atstāj formu tajā vietā, kur to atstājāt projektēšanas laikā. Parasti tas beidzas pa kreisi uz ekrāna 1280x1024 un pilnīgi no ekrāna 640x480.

Nepārblīvējiet veidlapā esošās vadīklas - atstājiet vismaz 4 pikseļus starp vadības ierīcēm, lai robežas atrašanās vietas izmaiņas viena pikseļa dēļ (mērogošanas dēļ) netiktu parādītas kā vadības elementu pārklāšanās.

Vienrindas etiķetēm, kuras ir alLeft vai labi izlīdzināts, iestatīts Automātiskais lielums līdz patiesībai. Pretējā gadījumā iestatiet Automātiskais lielums uz nepatiesu.

Pārliecinieties, ka etiķetes komponentā ir pietiekami daudz tukšas vietas, lai varētu mainīt fonta platumu - tukša vieta, kas ir 25% no pašreizējās garuma virkne displeja garums ir nedaudz par daudz, bet drošs. Ja plānojat tulkot lietotni citās valodās, virkņu etiķetēm jums būs nepieciešama vismaz 30% paplašinājuma vietas. Ja Automātiskais lielums ir nepatiesa, pārliecinieties, vai esat pareizi iestatījis etiķetes platumu. Ja Automātiskais lielums ir taisnība, pārliecinieties, ka etiķetei ir pietiekami daudz vietas, lai tā pati augtu.

Vairāku rindu etiķetēs ar vārdu iesaiņojumu apakšā atstājiet vismaz vienu tukšu vietu. Tas būs vajadzīgs, lai pārpildītu, kad teksts ietīts citādi, ja fonta platums mainās ar mērogošanu. Neuzņemieties, ka tāpēc, ka jūs izmantojat lielus fontus, jums nav jāļauj pārspīlēt tekstu - kāda cita lielie fonti var būt lielāki nekā jūsu.

Esiet piesardzīgs, atverot projektu IDE, izmantojot dažādas izšķirtspējas. Forma ir PixelsPerInch īpašums tiks mainīts, tiklīdz veidlapa tiks atvērta, un tiks saglabāti DFM, ja saglabāsit projektu. Vislabāk ir pārbaudīt lietotni, palaižot to patstāvīgi, un rediģēt veidlapu tikai ar vienu izšķirtspēju. Rediģēšana ar atšķirīgu izšķirtspēju un fonta izmēru rada problēmas ar komponentu novirzīšanos un lieluma noteikšanu. Pārliecinieties, ka esat iestatījis PixelsPerInch visām jūsu veidlapām līdz 120. Tā noklusējuma vērtība ir 96, kas rada mērogošanas problēmas ar zemāku izšķirtspēju.

Runājot par detaļu novirzīšanos, nemainiet veidlapas mērogu vairākas reizes, projektēšanas laikā vai izpildlaiks. Katrā mērogā tiek ieviestas noapaļošanas kļūdas, kas uzkrājas ļoti ātri, jo koordinātas ir stingri integrālas. Tā kā frakcionētās summas tiek saīsinātas no vadības ierīces pirmsākumiem un izmēriem ar katru nākamo mērogošanu, vadības ierīces, šķiet, rāpo uz ziemeļrietumiem un kļūst mazākas. Ja vēlaties ļaut lietotājiem mainīt veidlapu neierobežotu skaitu reižu, pirms katras mērogošanas sāciet ar svaigi ielādētu / izveidotu veidlapu, lai mērogošanas kļūdas neuzkrājas.

Parasti nav nepieciešams veidlapas noformēt pie kādas noteiktas izšķirtspējas, taču ir svarīgi pārskatīt tās pirms izlaišanas izskats 640x480 ar lieliem un maziem fontiem un ar lielu izšķirtspēju ar maziem un lieliem fontiem jūsu lietotne. Tam vajadzētu būt daļai no jūsu regulārā sistēmas saderības pārbaudes saraksta.

Pievērsiet īpašu uzmanību komponentiem, kas būtībā ir vienas līnijas TMemos—tādas lietas kā TDBLookupCombo. Windows daudzrindu rediģēšanas vadība vienmēr rāda tikai veselas teksta rindiņas - ja vadīkla ir pārāk īsa tās fontam, a TMemo vispār neko nerādīs (a TEdit parādīs apgrieztu tekstu). Šādiem komponentiem labāk ir padarīt tos par dažiem pikseļiem par lieliem, nekā būt par tiem, kas ir par mazu un vispār nerādīt tekstu.

Ņemiet vērā, ka viss mērogojums ir proporcionāls burtu augstuma starpībai starp izpildlaiku un projektēšanas laiku, pikseļa izšķirtspēja vai ekrāna izmērs. Atcerieties arī, ka, mainot veidlapu, jūsu vadības ierīču izcelsme tiks mainīta - jūs nevarat pārāk labi padarīt komponentus lielākus, arī nedaudz tos pārvietojot.

Enkuri, izlīdzināšana un ierobežojumi: Trešās puses VCL

Kad esat zinājis, kādi jautājumi jāpatur prātā, mērogojot Delphi veidlapas dažādās ekrāna izšķirtspējās, esat gatavs dažiem kodēšana.

Strādājot ar Delphi 4. vai jaunāku versiju, ir izstrādāti vairāki rekvizīti, lai palīdzētu mums saglabāt veidlapas vadības ierīču izskatu un izkārtojumu.

Izmantojiet Izlīdzināt lai izlīdzinātu vadības ierīci formas vai paneļa augšējā, kreisajā vai labajā pusē un lai tā tur paliktu, pat ja mainās formas, paneļa vai komponenta, kas satur vadīklu, lielums. Kad vecāka lielums ir mainīts, arī izlīdzinātās vadīklas izmērs tiek samazināts tā, lai tā turpina aptvert vecāku augšējo, apakšējo, kreiso vai labo malu.

Izmantojiet Ierobežojumi lai norādītu vadības ierīces minimālo un maksimālo platumu un augstumu. Ja Ierobežojumi satur maksimālās vai minimālās vērtības, vadības ierīces lielumu nevar mainīt, lai pārkāptu šos ierobežojumus.

Izmantojiet Enkuri lai nodrošinātu, ka vadības ierīce saglabā savu pašreizējo stāvokli attiecībā pret vecāka malu, pat ja vecāka lielums ir mainīts. Kad vecāka lielums ir mainīts, vadības ierīce tur savu pozīciju attiecībā pret malām, pie kurām tā ir noenkurota. Ja vadības ierīce ir noenkurota pret vecāku pretējām malām, vadības ierīce stiepjas, kad tās vecāka izmēri tiek mainīti.

procedūra ScaleForm
(F: TForm; Ekrāna platums, Ekrāna augstums: LongInt);
sākt
F.Scaled: = True;
F.AutoScroll: = nepatiess;
F.pozīcija: = poScreenCenter;
F.Font. Nosaukums: = 'Arial';
ja (Ekrāns. Pēc tam sāksies platums <> ekrāna platums)
F.Augstums: =
LongInt (F.Height) * LongInt (ekrāns. Augstums)
div Ekrāna augstums;
F.Platums: =
LongInt (F. platums) * LongInt (ekrāns. Platums)
div Ekrāna platums;
F.ScaleBy (ekrāns. Platums, ekrāna platums);
beigas;
beigas;
instagram story viewer