DeHL Library

vložil Radek Červinka 3. května 2010 23:21

Nejsem velkým zastáncem velkých knihoven (snad kromě JCL), ale často se v takových knihovnách inspiruji, popř. je "kuchám", protože jsem přesvědčen, že nejlépe se člověk naučí programovat když se rýpe v cizím kódu. Ideálně v kvalitním kódu. A tím určitě DeHL je.

DeHL je knihovna užitečných tříd pro Delphi 2010+. Kromě některých zajímavých tříd jako BIGInteger implementace, generická serializace za pomocí RTTI jak do XML, tak do INI nebo binárních souborů, cca 20 generických kolekcí projekt především ukazuje jak takové věci psát (tím myslím serializaci atd.) za pomoci nového RTTI z Delphi 2010, popř. generických typů.

Mezi další zajímavosti patří např. typ Nullable (z příkladů DeHL - všimněte si, že Nullable je record):

    1type
    2  Nullable<T> = record 
    3…..
    4  public
    5    { Constuctors }
    6    constructor Create(const AValue: T);
    7
    8    { Nulling }
    9    property IsNull: Boolean read GetIsNull;
   10    property Value: T read GetValue write SetValue;
   11    property ValueOrDefault: T read GetValueOrDefault;
   12
   13    procedure MakeNull(); inline;
   14
   15    { Value }
   16    class operator Implicit(const AValue: Nullable<T>): T; inline;
   17    class operator Implicit(const AValue: T): Nullable<T>; inline;
   18  end;
   19
   20procedure SumAnArray(const AArray: array of Integer): Nullable<Integer>;
   21var
   22  Sum, X: Integer;
   23begin
   24  { Není žádný element, vrať NULL }
   25  if Length(AArray) = 0 then
   26    Result.MakeNull()
   27  else
   28  begin
   29    Sum := 0;
   30
   31    for X in Array do
   32      Sum := Sum + X;
   33
   34    { vrat hodnotu! }
   35    Result := Sum;
   36  end;
   37end;
   38
   39var
   40  Sum: Nullable<Integer>;
   41
   42begin
   43  Sum := SumAnArray([1, 2, 3]);
   44
   45  if Sum.IsNull then
   46    WriteLn('Pole má nula prvků!');
   47  else
   48    WriteLn('Součet je: ', Sum.Value);
   49end;

Takováto třída vám může pomoci např. konvertovat kód z .NET, kde string může být "" nebo null.

A takových zajímavých tříd je tam hodně.


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

Tagy: ,

Komponenty

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