Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.02;
Скачать: CL | DM;

Вниз

Правильна ли запись?   Найти похожие ветки 

 
Евгений Р.   (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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
15-1201541612
Коля
2008-01-28 20:33
2008.03.02
Инсталятор


15-1201435178
Kolan
2008-01-27 14:59
2008.03.02
Вот это да. Не спам, а шедевр.


8-1174744468
VitAngel
2007-03-24 16:54
2008.03.02
Снимок с Вебкамеры


2-1202146357
Санек
2008-02-04 20:32
2008.03.02
popupmenu выбор итема


2-1201952182
karablik
2008-02-02 14:36
2008.03.02
WMA getMarker