А если указатели использовать?
Код:
procedure CounterStrike(date1: Pointer = nil);
begin
if date1 <> nil then
ShowMessage(DateToStr(TDateTime(date1^)))
else
ShowMessage('Null');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
d: TDateTime;
begin
d:= Now;
CounterStrike(@d);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
CounterStrike;
end;