Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Вызов процедуры-члена объекта из другого модуля


Автор: Rasool 9.4.2018, 21:50
Следующий код вызывает ошибку "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? 

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

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

Автор: Rasool 10.4.2018, 17:53
Проблема решена - сделал управление вызовом процедуры с помощью событий.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)