KAN`ский блог Мысли вслух…
  • Ноя
    15

    Delphi 2009 (Generics.Collections и прочее)

    Filed under: Без рубрики;

    Чудо свершилось — новый Delphi появился на свет. Что нового?В новой версии появилось несколько вкустностей:

    Первое из них Generics (Шаблоны)

    (ГенноМодифицированные Объекты — гы). По сути это набор классов позволяющих работать с типизированными данными не изменяя самого определения класса. Tiburon Generics.Collections включает следующие модули: TList, TQueue, TStack, TDictionary, TObjectList, TObjectQueue, TObjectStack, and TObjectDictionary. Delphi Generics работает со всеми типами: простые типы (Integer, string, и т.д.), Record`ы, Object`ы и Interface`ы.

    program Tiburon;
    {$APPTYPE CONSOLE}
    uses
    SysUtils,
    Classes,
    Generics.Collections;
    var
    LoF : Tlist<Integer>;
    i : Integer;
    begin
    try
    Randomize;
    LoF := Tlist<Integer>.Create;
    try
    for I := 0 to 100 do
    LoF.Add(Random(100));
    LoF.Sort;
    Writeln(LoF.GetHashCode ); //3 новых метода для TObject : ToString, GetHashCode и Equals
    for I := 0 to LoF.Count - 1 do
    Write(LoF[i],' ');
    finally
    LoF.Free;
    end;
    Readln;
    except
    on E:Exception do
    Writeln(E.Classname, ': ', E.Message);
    end;
    end.

    Второе Exit теперь может передавать параметр, как в PHP (в примере результат будет идентичен)

    function DoSomething(aInteger: integer): string;
    begin
    if aInteger < 0 then
    begin
    Exit('Negative');
    end;
    Result := 'Positive';
    end;
    function DoSomething(aInteger: integer): string;
    begin
    if aInteger < 0 then
    begin
    Result := 'Negative';
    Exit;
    end;
    Result := 'Positive';
    end;

    Третье Анонимные методы

    По сути своей, это процедуры и функции, за которыми не закрепляется имя.
    Определение:

    type
    // method reference
    TProc = reference to procedure(x: Integer);
    procedure Call(const proc: TProc);
    begin
    proc(42);
    end;

    Применение:

    var
    proc: TProc;
    begin
    // anonymous method
    proc := procedure(a: Integer)
    begin
    Writeln(a);
    end;
    Call(proc);
    readln
    end.

    И по мелочи:

    • 3 новых метода для TObject : ToString, GetHashCode и Equals.
    • Внутренней кодировкой строк стал Unicode.
    • Естественно были добавлены новые компоненты (например Ribbon Controls — интерфейс в стиле office 2007).
    • Существенно обновились многие диалоги и визарды.
    • Добавлены новые инструменты UML моделирования.
    No Comments

Leave a reply

Для отправки комментария вам необходимо авторизоваться.