Précédent   Forum des professionnels en informatique > Autres langages > Pascal > Lazarus
Lazarus Forum d'entraide sur Lazarus, l'EDI RAD multiplateforme basé sur Free Pascal
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 26/02/2010, 01h04   #1
Invité de passage
 
Inscription : février 2009
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 5
Points : 3
Points : 3
Par défaut [0.9.28.2/Mac OS] Compilation unité visitor pattern

Bonjour,
Ceci est mon premier post sur ce site qui est décidément incontournable. Je suis autodidacte et m'interesse actuellement aux concepts/notions de persistance et de design patterns. Pour cela, je m'aide du tuto de ercaz54 : http://blog.developpez.com/erca57/p6...tern/#more6767 .
J'essaie de compiler le code suivant sans succés :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
unit uOPFRoot;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils;
 
Type
  TBizObj = class(TObject)
  public
    procedure AcceptBizObjVisitor(Visitor: TBizObjVisitor );  virtual;
  end;
 
  TBizObjVisitor = class(TObject)
  public
    procedure VisitBizObj(Instance: TBizObj); virtual;
  end;
 
implementation
 
{
******************************** TBizObjVisitor ********************************
}
procedure TBizObjVisitor.VisitBizObj(Instance: TBizObj);
begin
end;
 
{
*********************************** TBizObj ************************************
}
procedure TBizObj.AcceptBizObjVisitor(Visitor: TBizObjVisitor);
begin
  Visitor.VisitBizObj(Self);
end;
 
end.
Le message retourné par le compilateur est : uopfroot.pas(15,59) Error: Identifier not found "TBizObjVisitor"

J'utilise Lazarus 0.9.28.2 beta et fpc 2.2.4 sur machine Mac OS 10.6.2

Merci d'avance.

Dernière modification par larsal007 ; 26/02/2010 à 17h19.
larsal007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2010, 19h30   #2
Invité de passage
 
Inscription : février 2009
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 5
Points : 3
Points : 3
Par défaut Compilation sous Debian Lenny

Re bonjour,
Vu que personne n'a émis d'avis, je me suis amusé à compiler le même code sur une Debian Lenny 2.6.26-2-686 / Lazarus 0.9.28.2-0 beta / fpc 2.2.4-3.
Ben, toujours le même message d'erreur.

J'essayerais ce soir sur une Delphi+Win et vous dirais ce qu'il en est.

Si quelqu'un pense que je devrais me diriger vers un autre forum (sur developpez.net) ou indiquer un lien ou une piste, j'en serais très heureux.

Salutations.
larsal007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2010, 21h39   #3
Responsable Pascal
 
Avatar de Alcatîz
 
Homme Jean-Luc Gofflot
Ressources humaines
Inscription : mars 2003
Messages : 4 808
Détails du profil
Informations personnelles :
Nom : Homme Jean-Luc Gofflot
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Ressources humaines
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 4 808
Points : 12 955
Points : 12 955
Envoyer un message via ICQ à Alcatîz Envoyer un message via MSN à Alcatîz Envoyer un message via Yahoo à Alcatîz Envoyer un message via Skype™ à Alcatîz
Bonjour et bienvenue,

Le type TBizObjVisitor étant déclaré après TBizObj, il est inconnu pour le compilateur lorsqu'il est utilisé comme type du paramètre Visitor.
__________________
Règles du forum
Tutoriels, exercices, FAQ, sources, compilateurs, outils, livres Pascal
Mes tutoriels et sources Pascal
FAQ Assembleur

Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
Alcatîz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2010, 19h04   #4
Invité de passage
 
Inscription : décembre 2008
Messages : 1
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 1
Points : 1
Points : 1
Par défaut Compilation unité visitor pattern

Salut,

ça n'a rien à voir avec la plateforme. Il faut juste que tu fasse une "forward declaration".
En gras et italique, le code à ajouté.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Type
  
  // déclaration forward pour dire au compilateur ce qu'est TBizObjVisitor
  TBizObjVisitor = class; 

  TBizObj = class(TObject)
  public
    procedure AcceptBizObjVisitor(Visitor: TBizObjVisitor );  virtual;
  end;
 
  TBizObjVisitor = class(TObject)
  public
    procedure VisitBizObj(Instance: TBizObj); virtual;
  end;
 
implementation
 
{
******************************** TBizObjVisitor ********************************
}
procedure TBizObjVisitor.VisitBizObj(Instance: TBizObj);
begin
end;
 
{
*********************************** TBizObj ************************************
}
procedure TBizObj.AcceptBizObjVisitor(Visitor: TBizObjVisitor);
begin
  Visitor.VisitBizObj(Self);
end;
 
end.
Salut.
thierrydij est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2010, 21h47   #5
Invité de passage
 
Inscription : février 2009
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 5
Points : 3
Points : 3
Par défaut Merci

Bonsoir,
Merci à Alcatîz et à thierrydij pour leur posts. Effectivement, ceci n'avait rien à voir ni avec la plateforme, ni avec l'EDI utilisé. Ca ne passait pas non plus avec le couple Windows+Delphi.

Grace à la "forward declaration", tout est rentré dans l'ordre et je vais pouvoir continuer sur le tuto de ercaz54.

Merci à tous pour la patience et longue vie à developpez.net.

A+
larsal007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 08h16.


 
 
 
 
Partenaires

Hébergement Web