Форум: "Начинающим";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];
ВнизПравильна ли запись? Найти похожие ветки
← →
Евгений Р. (2008-02-06 23:00) [0]TFieldGetTextEvent(tslOnGetText.Objects[n])(sender,text,DisplayText);
Почемуто при ее наличии в конце процедуры имеем сообщение:
[Fatal Error] jDbUnit.pas(29): F2084 Internal Error: C4905
(Delphi 2005)
← →
Johnmen © (2008-02-06 23:19) [1]Это ошибка работы с указателями в модуле jDbUnit.pas, написанном студентом-недоучкой.
А это что?
> TFieldGetTextEvent(tslOnGetText.Objects[n])(sender,text,
> DisplayText);
откедова?
← →
Евгений Р. (2008-02-06 23:56) [2]
> А это что?
>
>
> откедова?
Вроде по русски написано, что это то (вызов процедуры), после чего компилятор выдает указанное сообщение. Похоже, не только студенты-недоучки бывают, но и чокнутые профессора.
← →
Anatoly Podgoretsky © (2008-02-07 08:51) [3]> Евгений Р. (06.02.2008 23:00:00) [0]
Вроде бы мы не на СИ
← →
Johnmen © (2008-02-07 09:18) [4]
> Евгений Р. (06.02.08 23:56) [2]
Так это ты написал или профессор? Чей это юнит jDbUnit.pas?
И опять же, что за бредовое приведение указателя к методу класса? Здесь любой компилятор охренеет...
← →
Евгений Р. (2008-02-07 14:29) [5]
> Johnmen © (07.02.08 09:18) [4]
> И опять же, что за бредовое приведение указателя к методу
> класса? Здесь любой компилятор охренеет...
А почему нельзя?
Я решил проблему через absolute?
А как бы Вы поступили?
← →
sniknik © (2008-02-07 15:21) [6]> А почему нельзя?
да почему нельзя? можно! если только со знанием дела и вдруг возникла такая необходимость (не представляю такую ситуацию...)
указатель один, а метод это структура из 2 указателей... откуда у тебя возьмется значение для второго? и где это вылезет, когда к нему будет обращение?...
это не программирование это бег на минном поле...
> Я решил проблему через absolute?
а кто тебя знает, решил или нет. и вообще - бред не решаем, его можно только заменить на действительно решение. (но для того чтобы дать решение нужно знать задачу... а в вопросе кроме бреда и ошибки от него и нет ничего)
> А как бы Вы поступили?
так думаю, он бы такого бреда не написал бы... и решать было бы нечего.
p.s. совет: выкини этот jDbUnit.pas пока не поздно, кто знает, что там еще при таком авторе ламере...
← →
Евгений Р. (2008-02-07 17:02) [7]
> sniknik © (07.02.08 15:21) [6]
> указатель один, а метод это структура из 2 указателей...
> откуда у тебя возьмется значение для второго?
Метод для процессора - подпрограмма. Вызывается командой Call.
т.е. call указатель.
именно єтот указатель (один указатель) я и сохраняю в tSTringList.
Затем я его достаю и візіваю.
Поэтому это должно быть стабильно и работает стабильно. Только компилятор теряется.
> а кто тебя знает, решил или нет
Для этого Борланд придумал отладчик. По нему и видно, что вызывается нужная процедура и в нее передаются нужные параметры. Что еще? Какое минное поле?
← →
Johnmen © (2008-02-07 17:27) [8]
> Евгений Р. (07.02.08 17:02) [7]
Интересно, а как ты запустил программу, если она даже не компилируется?
← →
Евгений Р. (2008-02-07 17:45) [9]
> Johnmen © (07.02.08 17:27) [8]
> Интересно, а как ты запустил программу, если она даже не
> компилируется?
> [5]
> Я решил проблему через absolute
← →
Johnmen © (2008-02-07 17:48) [10]Тогда конечный ответ на вопрос ветки
>Правильна ли запись?
Нет.
← →
sniknik © (2008-02-07 18:03) [11]> Метод для процессора - подпрограмма. Вызывается командой Call.
> т.е. call указатель.
не придумывайTMethod = record
Code, Data: Pointer;
end;
> Какое минное поле?
в данном случае sender значение при приведении будет неопределено, но я вообщето имел в виду стиль.
← →
Евгений Р. (2008-02-07 18:55) [12]
> метод это структура из 2 указателей
Если я правильно понял из [6,11]: вызывается Call code. При этом где-то в виду имеется ссылка на вызывающий объект Data?
← →
DiamondShark © (2008-02-07 20:55) [13]
> в данном случае sender значение при приведении будет неопределено
Всё значительно хуже: Self в вызваном методе будет неопределено.
> Евгений Р. (07.02.08 18:55) [12]
>
> > метод это структура из 2 указателей
>
> Если я правильно понял из [6,11]: вызывается Call code.
> При этом где-то в виду имеется ссылка на вызывающий объект
> Data?
Ссылка на метод -- это два указателя: один из них является указателем на тело метода, а другой -- указателем на экземпляр (то, что внутри метода представляется спецпеременной Self). Для корректного вызова метода нужны оба указателя.
> Я решил проблему через absolute
Показывай, как решил.
absolute чего с чем?
Сдаётся мне, что ничего ты не решил, а новый бред написал.
← →
sniknik © (2008-02-07 22:51) [14]> Всё значительно хуже: Self в вызваном методе будет неопределено.
о нем и думал, почему sender написал хз. ошибся.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.037 c