Font.Quality

vložil Radek Červinka 21. dubna 2011 21:24

Další věc, které jsem si nevšiml. Property Font.Quality.

Momentálně nemám nainstalovány Delphi 2009 ani Delphi 2010 (upgradoval jsem na 64bit Windows 7), takže nemůžu říct, zda náhodou není vlastnost dostupná i v předchozích verzích (ale pravděpodobně ne), ale v Delphi XE značí způsob vyhlazování písma. Celkem mne to překvapilo: nejen z důvodu, že jsem nevěděl, že jsou různé implementace ClearType ve Windows - v uvedeném článku jsou uvedeny různé varianty - opět klasická MS schizofrenie.

  TFontQuality = (fqDefault, fqDraft, fqProof, fqNonAntialiased, fqAntialiased,
    fqClearType, fqClearTypeNatural);

Uvedený program vyprodukuje podobný obrázek jako je screenshot níže. Přeložený program se zdrojáky.

    1const
    2  csLoremIpsum =
    3  'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor '+
    4  'incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud '+
    5  'exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure '+
    6  'dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. '+
    7  'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt '+
    8  'mollit anim id est laborum.';
    9
   10
   11procedure TForm1.FormCreate(Sender: TObject);
   12var
   13  mem: TMemo;
   14  fq: TFontQuality;
   15begin
   16  for fq := fqDefault to fqClearTypeNatural do
   17  begin
   18    mem := TMemo.Create(Self);
   19    mem.Parent := Self;
   20    mem.Top := Ord(fq)* 70;
   21    mem.Height := 70;
   22    mem.Width := 550;
   23    mem.Text := csLoremIpsum;
   24    mem.Font.Quality := fq;
   25    mem.Font.Size := 12;
   26    mem.Font.Name := 'Arial';
   27  end;
   28end;

Clear type Delphi


Nabízíme Delphi školení a konzultace na různá témata, primárně ve Vaší firmě.

Tagy: , ,

Novinky v Delphi

Komentáře

21.4.2011 22:54:29 #

<z>

v D2010 to opravdu neni ;)

<z>

26.4.2011 9:32:54 #

JaroB

stejný efekt má použití TLogFont viz

var
  LogFont: TLogFont;
begin
  FillChar(LogFont, SizeOf(LogFont), 0);
  with LogFont do
    lfQuality := ANTIALIASED_QUALITY;

  Canvas.Font.Handle := CreateFontIndirect(LogFont);

ale uznávám, není to tak jednoduché...a pro vyšší hodnoty jak ANTIALIASED_QUALITY nejsou ani definované konstanty... :(

JaroB

Komentování ukončeno

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS