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.

const
  csLoremIpsum =
  'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor '+
  'incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud '+
  'exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure '+
  'dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. '+
  'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt '+
  'mollit anim id est laborum.';


procedure TForm1.FormCreate(Sender: TObject);
var
  mem: TMemo;
  fq: TFontQuality;
begin
  for fq := fqDefault to fqClearTypeNatural do
  begin
    mem := TMemo.Create(Self);
    mem.Parent := Self;
    mem.Top := Ord(fq)* 70;
    mem.Height := 70;
    mem.Width := 550;
    mem.Text := csLoremIpsum;
    mem.Font.Quality := fq;
    mem.Font.Size := 12;
    mem.Font.Name := 'Arial';
  end;
end;

Clear type Delphi

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

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).

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.

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.

Poslední komentáře

Comment RSS