Circular Reference

0

Witam. Mam taki mały problem... otóz mam pare unitów; min. Game.pas, Protocol.pas i MainForm.pas. I teraz mam taki problem - komponent ServerSocket znajduje się na MainForm.pas (to jedyny unit z formą); chciałbym aby w Game.pas użyć procedury "SendPacket" z Protocol.pas a ta procedura by wysyłała pakiet za pomocą TServerSocket umieszczonego na MainForm.pas; problem w tym, że MainForm.pas używa (uses :P) Game.pas; Game.pas używa Protocol.Pas a Protocol.Pas używa MainForm.pas i wyskakuje błąd "Circural Reference" przy próbie kompilacji programu.

Z góry dziękuje za wszelką pomoc.

LarvaExotech

0

kombinuj z położeniem sekcji uses, położona w interface a implementation to nie to samo...

0

Błąd ten masz dokładnie opisany w pomocy delphi.

0

zobacz co tworzy blad moze jakies powiazanie do funkcji albo jakis typ lub constant lub var wtedy po takim bledzie jezeli po przeniesieniu do impelemtation uses tenunit; nie zadziala bo nie bedzie mial mozliwosci odowolowania sie do wyzsyzch partii kodu bedziesz mogl stworzyc inny unit i tam wsatwic funkcje ktore wywalaja blad i usunac jeden cos.pas z innego unitu zeby sie nie pojawialo

0

Pewnie wygląda to tak:

Unit1

interface

uses
  ........, Unit2;

implementation

end.
Unit2

interface

uses
  ......., Unit1;

implementation

end.

Trzeba to zmienić na:

Unit1

interface

uses 
  ...., Unit2;

implementation

end.
Unit2

interface

uses
  .....;

implementation

uses Unit1;

end.

lub:

Unit1

interface

uses
  .....;

implementation

uses Unit2;

end.
Unit2

interface

uses
  ......;

implementation

uses Unit1;

end.
0

Działa, dzięki wszystkim za zainteresowanie się moim problemem. Zastanawia mnie tylko po kiego ... tak jest? :S I czy oprócz ominięcia błędu "Circular Reference" ma to jakiekolwiek znaczenie?

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