![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
![]()
Имеется код:
Код:
Incompatible types: 'method pointer and regular procedure' Вроде как обе процедуры прописаны Код:
Последний раз редактировалось vipok72; 28.07.2015 в 08:59. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Пиши procedure TForm1.callback(const str: ustring); раз у тебя требует метод
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
![]() Цитата:
попробовал написать еще и Код:
|
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]()
существуют процедуры как процедуры (regular procedure)
и существуют процедуры-методы какого либо класса (method). Код:
Код:
Цитата:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 28.07.2015 в 09:45. |
|
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
![]() Цитата:
Нужно под классом TForm1 создать еще один класс с названием Код:
Ничего не менять кроме того что внутри процедуры TForm1.Chromium1LoadEnd обращаться к callback как Form1.callback |
|
![]() |
![]() |
![]() |
#6 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Код:
------------------------------------------------------------------ Теперь для передачи туда НАМ нужна та самая procedure CallBack(const str: string); НО!!! транслятор при разборе строки frame.GetSourceProc(callback); пытается понять что же это за чудо имя такое callback И "вспоминает" что раньше (ВЫШЕ ПО ТЕКСТУ) у него было Tform1 =class procedure Callback(const str: string); end; Вроде бы тоже самое, НО это METHOD а не REGULAR PROCEDURE. А других упоминаний такого имени callback ЕЩЕ(выше разбираемой строки) НЕ БЫЛО! решение Вар. 1. ПЕРЕНЕСТИ код Код:
и при получении следующей ошибки Цитата:
procedure Callback(const str: string); Вар 2. ПОСЛЕ описания TForm1 добавить ПРЕДВАРИТЕЛЬНОЕ (forward) объявление нашей процедуры Код:
переводу объявления из method в regular procedure Вар 3. Изменить объявление GetSourceProc, точнее тип ее параметра, чтобы туда передавать method.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 28.07.2015 в 10:54. |
||
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
![]()
Спасибо за помощь!
Вариант 1 помог, очень благодарен вам |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
![]() Код:
Опоздал, ну да ладно. Последний раз редактировалось ResourceSpace; 28.07.2015 в 11:52. Причина: опоздал |
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Изменить тип параметра GetSourceProc, так чтобы передавать method класса TForm1. Код:
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
#10 |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
![]()
Там где ты передаешь процедуру в качестве параметра напиши это:
Код:
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. ![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вызов процедуры из процедуры | bilibian | Общие вопросы Delphi | 13 | 18.07.2014 15:31 |
C#, вызов процедуры | nikitaivanov | Помощь студентам | 2 | 30.03.2013 19:58 |
Вызов процедуры. | Leo20 | Общие вопросы Delphi | 11 | 23.11.2009 16:30 |
Вызов процедуры | igbizon | Общие вопросы Delphi | 5 | 02.09.2008 10:44 |
Вызов процедуры | Илья Кибель | Помощь студентам | 7 | 17.09.2007 19:43 |