Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.08.2015, 15:57
Аватар для SpectraL
SpectraL SpectraL вне форума
Начинающий
 
Регистрация: 19.05.2011
Адрес: Санкт-Петербург
Сообщения: 112
Версия Delphi: 10.1 Berlin
Репутация: 10
Вопрос Подпрограммный тип

Что можно сделать чтобы i присваивался IncHour и IncMonth (в отличии от IncHour, у IncMonth формальный параметр ANumberOfMonths имеет тип Integer)?
Код:
var
  Form1: TForm1;
  i: function (const AValue: TDateTime; const ANumberOfHours: Int64 = 1): TDateTime;

implementation
  {$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  i := IncHour;
  //i := IncMonth;
end;

Последний раз редактировалось SpectraL, 29.08.2015 в 18:46.
Ответить с цитированием
  #2  
Старый 29.08.2015, 22:13
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Что можно сделать чтобы i присваивался IncHour и IncMonth
Очевидно, сделать им одинаковые параметры. Либо везде int64, либо везде integer. Или же добавить функцию-переходник на одну из этих двух, которая вызовет оригинальную, преобразовав int64 к integer или наоборот. Не, можно и привести тип при большом желании, но тогда всё может слететь с исключением (однако в данном конкретном случае, конечно, может и пронести по ряду причин). Да и вообще это была бы крайне плохая практика и нестабильное решение.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 29.08.2015 в 22:31.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
SpectraL (30.08.2015)
  #3  
Старый 30.08.2015, 08:11
Аватар для SpectraL
SpectraL SpectraL вне форума
Начинающий
 
Регистрация: 19.05.2011
Адрес: Санкт-Петербург
Сообщения: 112
Версия Delphi: 10.1 Berlin
Репутация: 10
По умолчанию

Цитата:
Или же добавить функцию-переходник
Функция-переходник это вот это?
Код:
function IncMonth2(const DateTime: TDateTime; const NumberOfMonths: Int64 = 1): TDateTime;
begin
  Result := IncMonth(DateTime, NumberOfMonths)
end;
Цитата:
Сообщение от Bargest
Очевидно, сделать им одинаковые параметры.
А как это можно сделать?
Ответить с цитированием
  #4  
Старый 30.08.2015, 13:57
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Функция-переходник это вот это
Ну да.
Цитата:
А как это можно сделать?
Написать свою реализацию IncMonth с соответствующим параметром. Проще сделать "переходник".
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
SpectraL (30.08.2015)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:47.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025