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 моделирования.