Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов процедуры-члена объекта из другого модуля 
:(
    Опции темы
Rasool
Дата 9.4.2018, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 4.6.2011

Репутация: нет
Всего: нет



Следующий код вызывает ошибку "Access (ошибка доступа к памяти)":

Цитата

unit BladeMeasureResults;
 
uses pomkl;
 
type
TfrmBladeMeasureResults = class(TfrmMeasureResults)
    //...
    public
        procedure ShowParam;
    end;
 
var
    frmBladeMeasureResults: TfrmBladeMeasureResults;
 
implementation
 
procedure TfrmBladeMeasureResults.FormCreate(Sender: TObject);
begin
    if not Assigned(aShowParam) then // здесь дебаггер выдает значение aShowParam = "Unaccessible value"
        aShowParam := ShowParam;
end;
 
procedure TfrmBladeMeasureResults.ShowParam;
begin
    //...
end;



Цитата

unit pomkl;
type
    TShowParam = procedure of object; // Костыль для вызова процедуры frmBladeMeasureResults.ShowParam;
 
var
    aShowParam: TShowParam;
 
implementation
 
procedure TPomklView.KeyDown(var Key: Word; Shift: TShiftState);
    procedure UpdateStatistic;
    begin
        if Assigned(aShowParam) then
            aShowParam; // Здесь возникает ошибка доступа к памяти
    end;


Как можно вызвать процедуру frmBladeMeasureResults.ShowParam из модуля pomkl?
Может быть, как-то ссылаться на объект frmBladeMeasureResults из pomkl.pas? 
PM MAIL   Вверх
_zorn_
Дата 10.4.2018, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



Делфи еще жыф ?  smile Мой первый и потому любимый язык (вообще то паскаль)
Поверь, в реальной жизни тебя эти вопросы не станут беспокоить.
Я сам когда в делфи программил про ООП даже не задумывался ) А вас хотят научить ООП. Вот и пробуй его понять.
От языка не зависит особо.

А на вопрос все же отвечу - в unit пропиши frmBladeMeasureResults

Это сообщение отредактировал(а) _zorn_ - 10.4.2018, 16:39
PM MAIL   Вверх
Rasool
Дата 10.4.2018, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 4.6.2011

Репутация: нет
Всего: нет



Проблема решена - сделал управление вызовом процедуры с помощью событий.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1050 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.