Besoin d'aide pour une AP en programation événementiel [résolut]

Besoin d'aide pour une AP en programation événementiel [résolut] - Delphi/Pascal - Programmation

Marsh Posté le 14-06-2006 à 17:01:03    

Bonjour msieursdame,
Je me suis décidé a poster mon premier poste sur ce forum car j'ais un pitit probleme avec une AP événementiel programmée sous Delphie
Mon application permet de résoudre des opération de matrices et des equations de la forme ax2 + bx +c = 0 et se compose de 3 fiches pour l'instant (et deux autre qui attendent que je debug..).
 
mon problème est tout simple (enfin je pense) :
l'appel d'une procedure se trouvant dans une autre unité que celle en cours pose probleme depuis que j'ais ajouter la troisième unité au programme.
 
Svp, dite moi si vous savez comment je peut regler mon probleme ou bien si vous connaissez un site d'entraide ou ils pourront me renseigner.
 
merci    
 
 
 
Voici mon menu ou apparait le problème :

Citation :

unit Menu;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm_menu_principale = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Bt_matrice: TButton;
    Bt_calculette: TButton;
    Bt_equation: TButton;
    Bt_copyright: TButton;
    Bt_quitter: TButton;
    procedure Bt_quitterClick(Sender: TObject);
    procedure Bt_matriceClick(Sender: TObject);
    procedure Bt_copyrightClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;
 
var
  Form_menu_principale: TForm_menu_principale;
 
implementation
 
{$R *.dfm}
 
uses Matrice , Messagebox;
 
procedure TForm_menu_principale.Bt_quitterClick(Sender: TObject);
//Fermeture du menu principal
begin
  Form_menu_principale.Close ;
end;
 
procedure TForm_menu_principale.Bt_matriceClick(Sender: TObject);
//Ouverture de la fenetre matrice
begin
  Matrice.initialiser ();                       //ligne ou une erreure est annoncé
  Form_menu_principale.visible:=false;
end;
 
procedure TForm_menu_principale.Bt_copyrightClick(Sender: TObject);
//Ouverture de la fenetre copyright
begin
  Form_messagebox.visible:=true;
  Messagebox.message_erreur ('Ce programe a été crée par     dans le cadre de son BTS IG. Cest un freeware.');       //ligne ou une erreure est annoncé
  Form_menu_principale.visible:=false;
end;
 
end.


Message édité par biop le 15-06-2006 à 21:38:21
Reply

Marsh Posté le 14-06-2006 à 17:01:03   

Reply

Marsh Posté le 15-06-2006 à 12:14:11    

Je subodore que cela vien du fait que tu n'a pas déclaré tes fonctions dans l'interface des diférentes unités.
 
Si ton unité resemble à ça :
 

unit matrice;
implementation
procedure initialiser
begin
 ...  
end;


Alors, la procédure initialiser n'est visible qu'au sein de l'unité matrice (et encore... en fait, elle n'est visible quand dans la partie du code suivant la fonction). Pour qu'elle soit visible de l'extérieur (ainsi que dans la totalité du code de l'unité), il faut ecrire :
 

unit matrice;
interface
procedure initialiser; //déclaration de la procédure
 
implementation
procedure initialiser; //code de la procédure
begin
 ...  
end;


Message édité par el zozo le 15-06-2006 à 12:15:14
Reply

Marsh Posté le 15-06-2006 à 21:37:06    

Tu vient de me sauver la vie :),
le problème était tout bête mais je n'avais pas trouver la solution dans l'aide de delphie.
 
Merci

Reply

Marsh Posté le 15-06-2006 à 22:42:35    

biop a écrit :

Tu vient de me sauver la vie :)


D'habitude, je sauve la galaxie, mais là, j'crois que je couve quelque chose ;-)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed