Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1202132846
VAD*Anti Gopn!k
2008-02-04 16:47
2008.03.02
Rich edit и картинки.


15-1201478180
Lip
2008-01-28 02:56
2008.03.02
как сделать чтобы программы на builder e работали на других


2-1202206388
@WooF
2008-02-05 13:13
2008.03.02
Sy576


2-1201891660
..::KraN::..
2008-02-01 21:47
2008.03.02
Нет доступа по FTP к папке Documents and Settings...


15-1198581317
Nucer
2007-12-25 14:15
2008.03.02
SendMessage из PHP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский