![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глюки с вызовом процедуры по ссылке [D7, XP]
yantar92 © (2009-11-02 13:29:00)Проблема в том, что при передаче ссылки на процедуру как параметр функции начинаются глюки с методами глобального класса.
Код:
...
type
Tpaint=procedure (const x:extended; const y:extended; var series:Tlineseries);
...
procedure paint(const x:extended; const y:extended; var series:Tlineseries);
begin
series.AddXY(x,y);
series.ParentChart.Parent.Repaint;
end;
...
function dc_A_st(... var paint:Tpaint;var series:Tlineseries ...):extended;
...
begin
...
paint(x,y,series);
...
end;
При исполнении процедуры paint выбивает "Ivalid pointer operation", а при дебаге пишет, что метод Repaint класса series.ParentChart.Parent - не определён, тогда как сам класс является определенным.
Сергей М. (2009-11-02 19:16:00) [1]
> sniknik © (02.11.09 19:14) [77]
Дави.
Гестапо бессильно)
sniknik (2009-11-02 19:14:00) [2]наигрались? давайте "удавим" партизана? ведь очевидно, ничего с ним не получится.
Сергей М. (2009-11-02 19:14:00) [3]
> версия насчет настроек компилятора
Причем здесь компилятор-то ?
Вот ты собрал свой шедевр на компе А.
Запустил результаты сборки.
Работает.
Скопировал результаты сборкина комп B, запустил.
Неработает.
И причем здесь, спрашивается, компилятор ? Которого на компе В и в помине не было ?
yantar92 (2009-11-02 19:09:00) [4]ну да, поэтому и версия насчет настроек компилятора
Сергей М. (2009-11-02 19:07:00) [5]То есть, подводя итоги, вопрос твой звучит так: почему одна и та жепрога на этомкомпе работает, а на томкомпе не работает.
Так ?
yantar92 (2009-11-02 18:26:00) [6]после того, как запускал прогу на том компе
Сергей М. (2009-11-02 18:14:00) [7]
> после того
После чего ?
yantar92 (2009-11-02 17:42:00) [8]
> clickmaker © (02.11.09 17:38) [70]
>
> > у меня появилось подозрение на настройки компилятора
>
> конечно.
> "если в кране нет воды, то виной тому - винды"
просто на другом компе работало, хотя я не уверен, что не поменял что-то важное после того.
clickmaker (2009-11-02 17:38:00) [9]> у меня появилось подозрение на настройки компилятора
конечно.
"если в кране нет воды, то виной тому - винды"
yantar92 (2009-11-02 17:35:00) [10]у меня появилось подозрение на настройки компилятора, но я не представляю что может быть. Может кто-то знает?
yantar92 (2009-11-02 17:28:00) [11]а другими словами - в космос))
yantar92 (2009-11-02 17:27:00) [12]"project bi.exe raised exception class Elnvalid Pointer with message "Invalid pointer operation". process stopped"
Сергей М. (2009-11-02 17:26:00) [13]
> оно тоже вылетало
Куда ?)
yantar92 (2009-11-02 17:23:00) [14]еще пробовал application.proccesmessages после добавления каждой точки, но оно тоже вылетало
yantar92 (2009-11-02 17:21:00) [15]ну єто требовалось для того, чтобы окно не "зависало" во время выполнения подсчетов точек
Сергей М. (2009-11-02 17:19:00) [16]
> series_.parentchart.parent.repaint - "inaccessible value"
Правильно говорит.
repaint - это метод, а не свойство.
Да и, кстати, за каким лешим после добавления каждой точки перерисовывать весь чарт ?
yantar92 (2009-11-02 17:17:00) [17]все есть, а series_.parentchart.parent.repaint - "inaccessible value"
Сергей М. (2009-11-02 17:15:00) [18]Что говорит отладчик по поводу актуальности значений
series_
series_.ParentChart
series_.ParentChart.Parent
?
yantar92 (2009-11-02 17:12:00) [19]series_.ParentChart.Parent.Repaint; при втором вхождении в процедуру
yantar92 (2009-11-02 17:10:00) [20]нет, говорит то же что и раньше: "project bi.exe raised exception class Elnvalid Pointer with message "Invalid pointer operation". process stopped"