Я всегда думал, что для того, чтобы подключить ресурсы (текст, картинки и т.д.) к проекту, надо их скомпилить (brcc32.exe) и подключить ({$R}). А вот сегодня один хороший человек (, спасибо), подсказал, что это совсем не обязательно. Надо просто подключить к проекту (Add to Project) .rc файл, а скомпилиться и прилинкуется он сам. Проверил в D7, D2006. Вот так вот...
Мне всегда казалось, что TType(Var) и Var as TType работает одинаково или, в крайнем случае, очень похоже. Так было до не давнего времени.
Вместе со знакомым выясняли одну багу (так и не выяснили причину, кстати):
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TA = class
function GetResult: Integer; //virtual;
end;
TB = class(TA)
function GetResult: Integer; //override;
end;
{ TA }
function TA.GetResult: Integer;
begin
Result := 10;
end;
{ TB }
function TB.GetResult: Integer;
begin
Result := 20;
end;
var
B: TB;
begin
B := TB.Create;
WriteLn(IntToStr(TA(B).GetResult));
WriteLn(IntToStr((B as TA).GetResult));
ReadLn;
end.
Как по-вашему, что будет выведено, в результате данного кода? Если вы считаете, что будет выведено два раза '10', то вы не угадали. Будет выведено '10' и '20'.