Contourner le pb de lien cyclique entre 2 unités, comment faire?

hectorticoli Messages postés 23 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 29 mars 2005 - 18 mai 2004 à 13:45
cs_neko Messages postés 135 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 12 octobre 2006 - 19 mai 2004 à 12:18
Bonjour,

Comme vous le savez surement, avec delphi/kylix on ne peut pas Unit1 ne peut pas utiliser Unit2 si Unit 2 utilise Unit1 (lien cyclique...)

Seulement, je suis sur qu'il y a un moyen de passer outre...

Je voudrai faire un menu, puis un sous menu (2 Unitées et 2 TForm différentes) et je voudrais avoir un bouton pour passer de la première à la 2° (bouton se trouvant dans la première fiche (TForm), et un bouton pour passer de la 2° à la première (bouton se trouvant dans la 2° fiche). J'avais pensé faire intervenir une 3° Unité qui utiliserait ces 2 autres Unitées, pour régler le pb de cet appel cyclique. Seulement voila, pas moyen de faire comprendre à delphi/kylix que je veux qu'il m'implémente l'evenement OnMouseUp de mon bouton (en fait un TImage converti en bouton) dans ma 3° Unité...

Je fais comment pour lui faire entendre raison, ou alors, je fais comment pour régler mon pb autrement?

Merci beaucoup d'avance
A voir également:

1 réponse

cs_neko Messages postés 135 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 12 octobre 2006 1
19 mai 2004 à 12:18
met Unit2 dans la close Uses de l'unité 1 ( juste apres Interface )

ensuite refait une close Uses dans l'unit2 juste apres implementation

et là tu va pouvoir utiliser tes unites :)
ce qui te donne par exemple:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Unit2;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  form2.show;
  form1.Hide;
end;

end.


et

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form2: TForm2;

implementation
uses unit1;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
  form1.Show;
  form2.Hide;
end;

end.


J'espere que ca repondra a ta question

bouh
0
Rejoignez-nous