Bonsoir,
Je me suis lancé dans la programmation d'un petit jeu en delphi/directx.
Et j'ai un petit problème. Tout marchait jusqu'alors. En continuant de développer ma merdouille, je tombe sur :
Citation :
[Pascal Error] project.pas(43): E2033 Types of actual and formal var parameters must be identical
|
Le code qui pose problème :
Lors de l'initialisation du projet qui qui contient le jeu.
Citation :
...
fenetre := TWinform.Create;
[...]
devi := deva.creation(fenetre);
devi.hauteur := fenetre.Height;
devi.largeur := fenetre.Width;
devi.initcamera();
...
|
devi est une instance de deva. deva est une classe comportant un device et quelques variables.
Déclaration de deva.creation :
Citation :
Constructor deva.creation(var formctrl : control);
|
control est le type System.Windows.Forms.Control.
fenetre est une TWinForm.
J'ai trouvé dans dans fenetre.pas :
Citation :
type
TWinForm = class(System.Windows.Forms.Form)
[Bla bla bla]
end;
|
la fonction creation() réclame un System.Windows.Forms.Control et la fenetre qu'on lui donne est un TWinform, c'est à dire une classe hérité du System.Windows.Forms.Form.
Quelle est la différence entre les deux ?
Après test, le remplacement de Form par Control ne fonctionne pas.
Le problème semble venir de là, d'après les interprétations de borland sur cette erreur.
Ce qui est amusant c'est que ca fonctionnait parfaitement avant. Sans avoir changé, Borland ne veut depuis plus rien savoir, même après plusieurs redémarrages.
Avez-vous une idée ?
Merci d'avance
Message édité par Centauriel le 14-08-2008 à 02:06:42