Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi

Войти
Регистрация
Восстановить пароль
 
hippocamus
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 38
#1

Переопределить одну из функций helper - Delphi

29.05.2017, 02:28. Просмотров 314. Ответов 3
Метки нет (Все метки)

Как сделать чего-то такого:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
interface
 
type
  TStringHelper = record helper(TStringHelper) for string
    function ToInteger: Integer; overload;
  end;
 
implementation
 
function TStringHelper.ToInteger: Integer;
begin
  try
    inherited;
  except
    Result := -1;
  end;
end;
Но вот так не получается. Никаких наследований, вроде, не поддерживается?
Компилилуется следующий код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
interface
 
type
  TIntString = record helper for string
    function ToInteger: Integer;
  end;
 
implementation
 
function TIntString.ToInteger: Integer;
begin
  try
    Result := StrToInt(Self);
  except
    Result := -1;
  end;
end;
Но при этом я не могу заставить все библиотеки использовать свою подменяющую функцию. Что делают обычно в этом случае?
(-1 при невозможности конверсии мне нужно получать и от всех сторонних библиотек, использующих хелпер!)

+ да, не могу понять, почему в названии темы нельзя использовать слова "хелпер", "хэлпер", "helper", "рекорд-хелпер".
Вообще еле создал тему.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2017, 02:28
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Переопределить одну из функций helper (Delphi):

Как переопределить процедуру перерисовки? - Delphi
В нете полно статей как сделать цветной DBGrid. Нужно обработать OnDrawColumnCell А я наследую от TDBGrid свой TnewDBGrid как у него...

превратить много функций в одну... - Delphi
Вот вопрос, к примеру я хочу создать свою функцию, в которую прописать функции к примеру, Спрятать один обьект, показать другой, и тд. Т.е....

Упрощение функций или объединение их в одну - Delphi
Есть 2 функции: function ElseConnect(url: String): Boolean; var hSession, hURL: HInternet; bResult : Boolean; Buffer :...

Из OnKeyDown переопределить Key для OnKeyPress - Delphi
Задача: при нажатии определенных клавиш на клавиатуре задать для ввода в Edit.Text определенный символ. При событии OnKeyDown в процедуре...

из 4 функций сделать одну - C++
Помогите пожалуйста из 4 функций сортировки сделать одну, но чтобы работала на все :D Заранее благодарен. вот код: #include...

Программа не выполняет одну из функций - C++
у меня получается сделать умножение а с суммой не могу справится, помогите пожалуйста задача: в одномерном массиве, состоящем из n...

3
krapotkin
3258 / 2898 / 789
Регистрация: 14.04.2014
Сообщений: 14,068
Записей в блоге: 12
29.05.2017, 06:02 #2
я так понимаю, версия делфи не семерочка?
Хелперы не наследуются и не виртуализируются, поэтому заставить всю систему отказаться от своих готовых в пользу вашего вы не сможете.
1
TFullControl
312 / 310 / 137
Регистрация: 20.10.2016
Сообщений: 1,004
29.05.2017, 10:09 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Достаточно дать такой функции свое имя и все работает:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
type
  TIntString = record helper for string
    function TryToInt: Integer;
  end;
 
function TIntString.TryToInt: Integer;
begin
 try
    Result := StrToInt(Self);
  except
    Result := -1;
  end;
end;
Пример:
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.Button1Click(Sender: TObject);
  var s: string;
    i: integer;
begin
  s:=Edit1.Text;
  i:=s.TryToInt;
  ShowMessage(i.ToString);
end;
1
Миниатюры
Переопределить одну из функций helper   Переопределить одну из функций helper  
DenNik
29.05.2017, 13:29     Переопределить одну из функций helper
  #4

Не по теме:

Цитата Сообщение от hippocamus Посмотреть сообщение
не могу понять, почему в названии темы нельзя использовать слова "хелпер", "хэлпер", "helper", "рекорд-хелпер".
потому что согласно правилам форума, темам нужно давать осмысленные имена, отображающие суть проблемы, поэтому движок форума согласно этому правилу не дает создать тему с подобными словами в заголовке

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2017, 13:29
Привет! Вот еще темы с ответами:

AS 3.0 Объединение трёх функций в одну - ActionScript
Всем привет, в JavaScript я не так давно, прошу прощение если задаю 'глуповатый' вопрос. Перейду сразу к сабжу. Есть три функций, т.е....

ATtiny2313. Несколько функций на одну кнопку - AVR
Всем привет. Люди, нужна помощь. У меня есть програмка, которая после каждого нажатия кнопки, увеличивает значение на 1. Начальное...

Как сделать из двух функций одну) - C++
void Resize_Array_unsigned_int( unsigned int &_New_Size_, unsigned int *_Conteiner_ ) { unsigned int *tmp = new unsigned int; ...

Как объединить несколько функций в одну? - jQuery
Здравствуйте! В коде есть 4 заголовка меню, при клике на каждый разворачивается меню. То есть для каждого заголовка приписана отдельная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru