Instanciation d objets OLE ca ne marche que dans l unite principale ? - Delphi/Pascal - Programmation
Marsh Posté le 07-09-2003 à 11:08:36
il plante sur le create ?
Marsh Posté le 07-09-2003 à 11:17:59
Apparemment oui !
puisque c est la premier ligne ...
C est quoi docteur ?
@++
Marsh Posté le 07-09-2003 à 11:23:11
aucune idée
c'est bien sur le create et pas sur l'appel de fonction de ton objet ?
Marsh Posté le 07-09-2003 à 11:31:10
ah bon?
ben ce que je fais c est que j ecris la fonction avec tous les parametres puis je copie / colle dans mon unit principale et j ajuste les parametres.
je fais passer qq Array of String mais il n y pas de taille definie ? j ai bien essayer de le coder dans la definition de la fonction mais il ne veut pas
@++
Marsh Posté le 07-09-2003 à 11:32:07
je pige pas ce que tu me dis là, c'est quoi le rapport avec ma question ?
Marsh Posté le 07-09-2003 à 11:43:27
ben je suis quasiment sur que c est pas sur l appel de la fonction car le nombre de parametres est correct. deplus j ai ecrit une autre procedure dans mon objet et ca marche bien.
Deplus quand je fais du pas a pas l erreur se declanche sur cette ligne.
J espere avoir ete plus clair. Sinon comment verifier que c est pas l appel qui foire ?
@+
Marsh Posté le 07-09-2003 à 11:48:01
Si c'était un problème de param ça compilerait pas
Je parlais de, pas exemple, "mon objet" qui serait nil ou avec une valeur bidon (genre on a fait un free)
bah si en pas à pas tu arrives à rentrer dans la fonction ça devrait être bon... à moins que ce XMLFile1 soit un attribut de l'objet dans lequel tu es, et que justement cet objet pointe vers n'importe quoi...
si tu fais juste le CreateOle sans l'assigner, ça plante pareil ?
Marsh Posté le 07-09-2003 à 11:55:45
ben j ai vire le XMLFile1 et le "as ..." et ca marche. Enfin pour cette ligne! car forcement j ai besoin de XMLFile1 dans la suite de mon programme forcement comme c est pas assigné ca plante.
une fois que j ai fait CreateObject je peux le recuperer qq part pour pouvoir m en servir ??
@++
Marsh Posté le 07-09-2003 à 12:35:12
donc ça veut dire que XMLFile1 n'est pas valide... c'est quoi ? un attribut d'un objet ? Ça veut dire que l'objet n'a pas été créé
Marsh Posté le 07-09-2003 à 13:41:58
Non c est une variable declarer dans ma section public et qui est de type IXMLDOMDocument (uniquement possible si la librairie MSXML_TLB est presente dans les uses). Par rapport a l unite principale je n ai rien change si ce n est que c est dans une autre unit.
@++
Marsh Posté le 07-09-2003 à 14:03:27
krzAramis a écrit : Non c est une variable declarer dans ma section public |
donc un attribut d'un objet
Marsh Posté le 07-09-2003 à 15:39:48
soit c est un attribut d objet. Donc qu est ce je fais ?
je fais un "MonObjet.Create" que je demarre mon prog ?
@++
Marsh Posté le 07-09-2003 à 16:00:10
Il faut bien un Create quelque part hein Ou alors tu dois faire des "class procedure" et "class function", mais dans ton cas ça ne changera rien vu que tu as besoin des attributs de l'objet.
Marsh Posté le 07-09-2003 à 16:03:37
Ben heu c est a dire que pour lemoment mon objet n avait pas d attributs et une seul procedure et jai pas de create ! et ca marche tres bien... si seulement j avais su... deplus maintenant il me demande de faire un constructeur... je sais pas comment on fait...
@++
Marsh Posté le 07-09-2003 à 16:15:29
heu t'as pas spécialement besoin de constructeur... enfin, ça dépend, tu la déclares comment ta classe ?
Marsh Posté le 07-09-2003 à 16:22:25
Un extrait de code ca te va ?
Code :
|
voila.
Avant l apparition de ma fonction la procedure etait appelée de la facon la plus classique MyObj.Update('toto');
et il n y avait pas d attribut
@++
Marsh Posté le 07-09-2003 à 19:41:38
faut bien un MyObj := TMyObj.Create; quelque part, non ?
Marsh Posté le 08-09-2003 à 14:31:18
ReplyMarsh Posté le 08-09-2003 à 15:50:43
Tu fais quoi exactement ?
Marsh Posté le 07-09-2003 à 10:54:27
Bonjour à tous,
Comme me l ont recommande moulte fois antp et zion je suis en train de reorganiser mon programme pour que il y est le moins de traitements possible dans l unité de ma form. Je réecris donc ces traitement (ici génération de fichiers) dans une autre unité que j appele de la manière suivante:
Lorsque j utilisais la serie d'instructions qui me donnait le fichier ces instructions possèdaient la ligne suivante:
et ca marche impeccable. Or je refais cette serie d instructions dans une autre unité donc et la ca plante méchant à la ligne ci dessus. Avant que vous me le fassiez remarqué, oui j ai ajouté ComObj à mes uses.
Le projet compile mais lors de l erreur delphi pointe sur cette ligne (c est la premiere de la fonction). et le message d erreur est le suisvant:
"Access Violation at address 004066FB etc.."
bon c est quoi mon erreur ? car si je pouvais faire marcher ce truc je vais pouvoir economiser pas mal de lignes alors HELP!
Merci
@++
Message édité par KrzAramis le 07-09-2003 à 10:55:18