FormatSettings a absolute

vložil Radek Červinka 1. prosince 2010 22:42

Asi jsem to minule špatně vysvětlil.

Implementace FormatSettings je provedena tak, že se jedná o záznam, který je pomocí direktivy absolute směrován na starší položky. Tj. např. FormatSettings.DecimalSeparator leží ve skutečnosti na stejné adrese jako DecimalSeparator, tj. při zápisu nebo čtení z obou proměnných se pracuje s jedním a tím konkrétním místem, jen s tím, že při použití DecimalSeparator je při kompilaci vypsán warning.

    1FormatSettings: TFormatSettings absolute CurrencyString;

Výše uvedený řádek značí, že linker má pro adresu FormatSettings použít adresu proměnné CurrencyString (první položka z FormatSettings je právě CurrencyString), tj. budou ukazovat na stejnou adresu a díky tomu, že složení záznamu přesně odpovídá pořadí CurrencyString a spol. je zaručeno to co jsem tvrdil na začátku, tj. bez zvláštních synchronizačních mechanismů obsahují obě proměnné stejnou hodnotu (protože ukazují na stejné místo v paměti). Viz SysUtils.pas.

Direktiva absolute je součástí jazyka od Turbo Pascalu. Kromě uvedené syntaxe se dá (dala) specifikovat přímo adresa. Tím jsem např. v dobách DOSu mohl šikovně přistupovat do videoram v grafickém módu jako do dvojrozměrného pole a tak jednoduše nastavovat konkrétní pixel.

V dnešní době se to používá jen ve speciálních případech - spíše pro různé oberličky jako nahoře uvedený případ nebo přístup datum bez přetypování v případě kdy by kompilátor mohl použít nějakou automatickou konverzi.


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

Tagy: ,

Novinky v Delphi

Komentáře

1.12.2010 23:50:35 #

pingback

Pingback from topsy.com

Twitter Trackbacks for
        
        Delphi.cz | FormatSettings a absolute
        [delphi.cz]
        on Topsy.com

topsy.com

2.12.2010 18:19:56 #

Radim

Planije sa nejaky clanok na temu UI Office 2010 (Ribbon) - Marco Canto tu (http://blog.marcocantu.com/blog/updated_office_ui_licensing.html) pise par slov o licencovani, skor by ma zaujimalo nieco konkretne v Delphi / C++Builder 2010+

Radim

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