Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Найти реализацию функции / 25 сообщений из 35, страница 1 из 2
28.11.2020, 19:02
    #40023029
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
Исследую библиотеку x-SuperObject.
Но вопрос по среде и языку, а не по x-SuperObject.


Там есть .AsJSON
Код: pascal
1.
s := x.AsJSON(ident);


Щелкаю по AsJSON удерживая Ctrl и перехожу к интерфейсу (IBaseJSON<T, Typ> = interface(IBase)), где объявлена функция:
Код: pascal
1.
function AsJSON(const Ident: Boolean = False; const UniversalTime: Boolean = False): String;


А дальше как? Что и где нажать в IDE, чтобы меня перекинуло к реализации? Как найти тело самой функции?
...
Рейтинг: 0 / 0
28.11.2020, 19:56
    #40023041
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
Ctrl+Shift+Down.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
28.11.2020, 20:06
    #40023042
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
так в том-то и дело, что не переходит
это ж интерфейс, там нет реализации
...
Рейтинг: 0 / 0
28.11.2020, 20:10
    #40023044
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
X11
так в том-то и дело, что не переходит
это ж интерфейс, там нет реализации
ты сам ответил на свой вопрос, у интерфейса нет реализации, поэтому к ней ты и не можешь перейти)
тебе нужен класс, реализующий интерфейс, вот у него и смотри реализацию

другими словами, нужно щелкать на "x", который является реализацией и уже у него смотреть AsJSON
...
Рейтинг: 0 / 0
28.11.2020, 20:18
    #40023048
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
Ну да, это понятно, я подумал, вдруг можно как-то другим способом...
...
Рейтинг: 0 / 0
28.11.2020, 20:21
    #40023049
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
Shift + Ctrl + F
...
Рейтинг: 0 / 0
29.11.2020, 12:39
    #40023133
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
Если стоят GExperts, то Ctrl-Alt-G и искать методы с теми же назаниями.
Проблема в том, что они могут быть в других юнитах.
...
Рейтинг: 0 / 0
29.11.2020, 12:49
    #40023135
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
нет такого
а как оно называется в настройках?
...
Рейтинг: 0 / 0
29.11.2020, 12:53
    #40023137
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
X11
нет такого
а как оно называется в настройках?


Procedure List
...
Рейтинг: 0 / 0
29.11.2020, 12:53
    #40023138
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
X11
Ну да, это понятно, я подумал, вдруг можно как-то другим способом...

Что, о Великая Устрица, "другим"?
Это ИНТЕРФЕЙС.
Реализаций может быть сколько угодно, и даже ни одной.
...
Рейтинг: 0 / 0
29.11.2020, 12:54
    #40023139
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
alekcvp
Procedure List

не, это Ctrl+G и это поиск в текущем модуле
...
Рейтинг: 0 / 0
29.11.2020, 12:56
    #40023141
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
ъъъъъ
Это ИНТЕРФЕЙС.
Реализаций может быть сколько угодно, и даже ни одной.


я понимаю, но было бы здорово, если бы была возможность найти эти все реализации
...
Рейтинг: 0 / 0
29.11.2020, 13:05
    #40023142
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
X11
ъъъъъ
Это ИНТЕРФЕЙС.
Реализаций может быть сколько угодно, и даже ни одной.


я понимаю, но было бы здорово, если бы была возможность найти эти все реализации

В данном случае они том же модуле.
Список классов и их предков отображается в ide.
...
Рейтинг: 0 / 0
30.11.2020, 14:02
    #40023340
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
ъъъъъ
Что, о Великая Устрица, "другим"?
Это ИНТЕРФЕЙС.
Реализаций может быть сколько угодно, и даже ни одной.
Удивительно, как JetBrains это умудрилось реализовать?
X11
Ну да, это понятно, я подумал, вдруг можно как-то другим способом...
Я в отладчике нажимаю F7 на методе.

Та же фигня с виртуальными методами
...
Рейтинг: 0 / 0
30.11.2020, 18:45
    #40023453
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
_Vasilisk_
ъъъъъ
Что, о Великая Устрица, "другим"?
Это ИНТЕРФЕЙС.
Реализаций может быть сколько угодно, и даже ни одной.
Удивительно, как JetBrains это умудрилось реализовать?
Интересно, а если у интерфейса есть 10 различных реализаций, то какая реализация будет показана?) Рандомная?)

_Vasilisk_
X11
Ну да, это понятно, я подумал, вдруг можно как-то другим способом...
Я в отладчике нажимаю F7 на методе.

Та же фигня с виртуальными методами
это как бы логично. Отладчик идет как раз по тому коду, который выполняется, и по F7 как раз и переходит на нужную реализацию/виртуальный метод/overload функцию/etc

Непонятно, почему это вызывает удивление?)
...
Рейтинг: 0 / 0
30.11.2020, 19:24
    #40023461
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
asutp2
Интересно, а если у интерфейса есть 10 различных реализаций, то какая реализация будет показана?) Рандомная?)


Рядом, в текущей процедуре, где выполняется (стартует) поиск, есть же строка создания конкретной реализации?
...
Рейтинг: 0 / 0
30.11.2020, 21:11
    #40023472
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
asutp2
Интересно, а если у интерфейса есть 10 различных реализаций, то какая реализация будет показана?) Рандомная?)
Ті не поверишь. IDE покажет список из 10 классов и предложит выбрать, куда хочется перейти
asutp2
Непонятно, почему это вызывает удивление?)
Это не вызывает удивление. Это один из способов найти в Делфи нужную реализацию
...
Рейтинг: 0 / 0
30.11.2020, 21:15
    #40023475
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
_Vasilisk_>IDE покажет список из

Дельфи так не делает.
Но ведь мы любим его вовсе не из-за этого?
...
Рейтинг: 0 / 0
30.11.2020, 21:33
    #40023477
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
X11
Рядом, в текущей процедуре, где выполняется (стартует) поиск, есть же строка создания конкретной реализации?

Я ведь это уже предлагал
...
Рейтинг: 0 / 0
30.11.2020, 21:34
    #40023478
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
ъъъъъ
Дельфи так не делает.
Делфи много чего не делает, что должна делать нормальная IDE.

Когда после IDEA пересаживаюсь обратно в Delphi, то возникает ощущение, что открыл блокнот
...
Рейтинг: 0 / 0
30.11.2020, 22:10
    #40023484
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
_Vasilisk_
ъъъъъ
Дельфи так не делает.
Делфи много чего не делает, что должна делать нормальная IDE.

Никто не мешает обвесить гирляндами новогоднюю ёлку, чтобы блестела со всех сторон.
Если мне ваша гирлянда не по вкусу, зачем она мне ?
...
Рейтинг: 0 / 0
30.11.2020, 22:13
    #40023485
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
это точно, обвесов всяких и разных полно, на любой вкус.
...
Рейтинг: 0 / 0
01.12.2020, 10:42
    #40023549
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
DimaBr
X11
Рядом, в текущей процедуре, где выполняется (стартует) поиск, есть же строка создания конкретной реализации?

Я ведь это уже предлагал


Не совсем то. Вернее, совсем не то.
Я имел ввиду не поиск в текущем модуле по ключевой фразе.
Попробую на примере:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure Proc1(const sJSon: string);
var
  so: ISupertObject;// допустим, что это один интерфейс, но есть несколько его реализаций
  s: string;
begin
  so := TISupertObject.Create;// создаем объект уже конкретной реализации
  so.parse(sJSon);
  s := so.AsString;// здесь, удерживая клавишу Ctrl, нажимаю на AsString и меня должно перебросить на реализацию метода TISupertObject.AsString, а не на объявление ISupertObject.AsString
end;



Надесю, моя мечта когда-нибудь осуществится
...
Рейтинг: 0 / 0
01.12.2020, 10:43
    #40023550
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
DimaBr
Никто не мешает обвесить гирляндами новогоднюю ёлку, чтобы блестела со всех сторон.


только вот гирлянд нету
...
Рейтинг: 0 / 0
01.12.2020, 11:01
    #40023555
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти реализацию функции
X11

Не совсем то. Вернее, совсем не то.
Я имел ввиду не поиск в текущем модуле по ключевой фразе.

Поиск ведётся не только в ТЕКУЩЕМ модуле, а в зависимости от настроек (проект, модуль, диск)


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
procedure Proc1(const sJSon: string);
var
  so: ISupertObject;// допустим, что это один интерфейс, но есть несколько его реализаций
  s: string;
begin
  if <УСЛОВИЕ>
    then so := TISupertObject.Create;// создаем объект уже конкретной реализации
    else so := TISupertObjectNew.Create;// создаем объект уже конкретной реализации
  so.parse(sJSon);
  s := so.AsString;// здесь, удерживая клавишу Ctrl, нажимаю на AsString и меня КУДА ДОЛЖНО ПЕРЕБРОСИТЬ ?
end;
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Найти реализацию функции / 25 сообщений из 35, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]