$400 за Professional версию... неплохо!
>$400 за Professional версию... неплохо!
Вроде это за апгрейд =(
Официально Delphi 2009 released. Доступен pre-order.
Правда когда пытаешься купить -
We're Sorry.
One of the products you selected has been excluded from purchase in your country.
Амагад.
........
testobj=object
procedure khm;virtual;abstract;
end;
........
pointer(result):=typeof(testobj);
получаю [DCC Error] gdbase.pas(244): E2082 TYPEOF can only be applied to object types with a VMT
это глюк альфы, или теперь так и надо?
А почему object, а не class?
И еще не совсем понятен смысл всей этой конструкци
смысл - получить адрес vmt типа,
object - потомучто в данном случае он экономичнее
использовалось в скриптовом языке, в BDS2006 исправно работало
хотел поюзать генерики - не вышло((
Нарыл триальную версию Oo
TIFA
А можно ссылку? Если это "триальная", то можно ссылку в приват:)
На торрент появилась архитект версия =)
Поставил, постетил фичи - действительно работает и юникод, и генерики, и замыкания:) И цветовая гамма иконок порадовала. Не такая попугайская.
*vmr
У тебя из жж код работает? Просто для генериков создание:
ilist:= TList<integer>.Create и метод там ilist.Remove, а не RemoveAt
В такой программе подчеркиваются какие-то мнимые ошибки. с 2005 по 2009 дельфа один большой баг:)
d7 forever!
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
Generics.Collections,
Generics.Defaults;
type
TFilter<T> = reference to function(const Item: T): boolean;
TMyList<T> = class(TList<T>)
public
procedure Sort(const AComparer: TComparison<T>);
procedure Filter(const AFilter: TFilter<T>);
end;
procedure TMyList<T>.Filter(const AFilter: TFilter<T>);
var
i: integer;
begin
for i := Count - 1 downto 0 do
if AFilter(Items[i]) then
Delete(i);
end;
procedure TMyList<T>.Sort(const AComparer: TComparison<T>);
begin
inherited Sort(TComparer<T>.Construct(AComparer));
end;
var
i: integer;
li: TMyList<integer>;
begin
li:= TMyList<integer>.Create;
li.Count:= 5;
for i := 0 to li.Count - 1 do
li[i]:= i;
li.Sort(
function(const Left, Right: Integer): Integer
begin
if left>=Right then
exit(-1)
else
exit(1)
end
);
li.Filter(
function(const Item: Integer): boolean
begin
if Item>=2 then
exit(true)
else
exit(false)
end
);
for i := 0 to li.Count - 1 do
writeln(li[i]);
readln;
end.
О чо написали
"Тут вот народ на пролазе пишет:
NEWS: 3155 is not RTM version, just internal beta version."
Кста, прокрячить удалось его на удивление легко.