Przekazywanie tablicy dwuwymiarowej jako parametr w klasie

0

Witam,

posiadam klasę TGraf oraz deklaracje tablicy dwuwymiarowej którą chce otrzymać jako parametr funckji Rysuj_Gsc:

type
  TabDwuWym = array of array of Integer;
  TGraf = class
  public
    procedure Rysuj_Gsc(NazwaFormularza : TForm; wierzch : integer; wychodzace_polaczenia : TabDwuWym);
  end;

W innym Unicie posiadam deklaracje tablicy dwuwymiarowej:

 
type
  TabDwuWym = array of array of Integer;

Jak moge przekazać tą tablice jako parametr do metody Rysuj_Gsc w klasie TGraf?

Gdy próbuje:

 
procedure TForm1.Button2Click(Sender: TObject);
var
Obiekt : TGraf;
begin
  Obiekt := TGraf.Create;
  Obiekt.Rysuj_Gsc(Form1,wierzch,wychodzace_polaczenia);
  Obiekt.Free;
end;

otrzymuje błąd

 
[dcc32 Error] Modul_Graf.pas(78): E2010 Incompatible types: 'Graf.TabDwuWym' and 'Unit1.TabDwuWym'

Jak można to obejść?

1

musisz mieć jedną deklarację typu TabDwuWym, dla Delphi to że Twoje dwie deklaracje są formalnie identycznie nic nie znaczy, bo i tak widzi to jako różne typy

0

Tak wiem.
Tylko jeśli mam deklaracje tablicy np w Unit1, a klase w Unit2 to jak mam przekazać tablice tego typu jako parametr.
Za pomocą typów generycznych?

2

zdeklaruj typ tyko w unicie z definicją klasy , w czym problem ?

4

@lukasz_p92 - jeżeli potrzebujesz użyć tego typu w dwóch modułach to zadeklaruj go w jednym (np. w tym z deklaracją klasy), a w drugim module w sekcji Uses dodaj pierwszy moduł; Jeśli będziesz miał problem z błędem "circular unit reference" to trzeba będzie przyłączyć ten pierwszy moduł w sekcji Implementation.

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