Odwołanie do procedury klasy z innego modułu

0

Sytuacja wygląda tak:
próbuję odwołać się w unit2 do procedury pochodzącej z klasy w unit1.
Problem polega na tym, że Delphi "nie widzi" tej klasy, dlatego nie idzie wywołać procedury.
Zamieszczam kod:

Unit1:

unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls, ShellAPI, MyImage1;

type
...
  TJPEGRes = class(TJPEGImage)
  public
    procedure LoadFromResource(const ResID: PChar); virtual;
  end;
...

Unit2:

unit Exam1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls, ShellAPI, MyImage1;

type
  TExam1Form = class(TForm)
    IMGExam1Theme: TImage;
    procedure LoadTheme;
  end;
var
  Exam1Form: TExam1Form;

implementation

uses Main;

{$R *.dfm}
{$R Resources.RES}

procedure TJPEGRes.LoadFromResource(const ResID: PChar);
var
  Res : TResourceStream;
begin
  Res := TResourceStream.Create(hInstance, ResID, 'JPEGFILE');
  try
    LoadFromStream(Res);
  finally
    Res.Free;
  end;
end;


end.
0

Jeżeli dobrze się orientuje, to metody danej klasy bazowej muszą być w tym samym module. Ewentuialnie wstawione w innym module, ale dołaczone przez dyrektywe kompilatora $I w odpowiednim miejscu modułu, do którego dołaczamy jakiś inny moduł tą dyrektywą.

0

Jeżeli dobrze się orientuje, to metody danej klasy bazowej muszą być w tym samym module. Ewentuialnie wstawione w innym module, ale dołaczone przez dyrektywe kompilatora $I w odpowiednim miejscu modułu, do którego dołaczamy jakiś inny moduł tą dyrektywą.

Nie żebym był złośliwy ale może idź już spać? :)

Sytuacja wygląda tak:
próbuję odwołać się w unit2 do procedury pochodzącej z klasy w unit1.
Problem polega na tym, że Delphi "nie widzi" tej klasy, dlatego nie idzie wywołać procedury.
Zamieszczam kod:

A masz dodany unit do którego się odnosisz w uses? Bo ja nie widzę. Może poczytaj o tym jak działają unity.

0

Dobra zobaczyłem już mój błąd, idę spać... :)

A co do problemu: Nie można tak, to wynika z budowy unitów. Czyli masz skopany podział na moduły.

1 użytkowników online, w tym zalogowanych: 0, gości: 1