#1 Wed 12 February 2003 18:32
- Yannick Depret
- Invité
erreur fenetre
Bonjour,
Mapinfo6.5 n'autorise t il qu'un nombre limite de fenetres cartes ouvertes?
J'ai cree un document qui contient 13 fenetres cartes ouvertes issues de la
copie d'une premiere fenetre carte.
Lorsque je souhaite ouvrir ce document mapinfo indique l'erreur suivante :
identifiant de fenetre 11 invalide.
Quelqu'un connait il cette erreur?
merci
yannick
#2 Mon 19 December 2005 11:05
- Lyonic
- Juste Inscrit !
- Lieu: Lyon
- Date d'inscription: 10 Sep 2005
- Messages: 2
Re: erreur fenetre
Bonjour,
Je réactualise ce 'vieux' message car je viens moi aussi de constater le même problème sur mon poste... Est-ce que quelqu'un a pu résoudre cela depuis ?
D'avance merci.
Hors ligne
#3 Mon 19 December 2005 17:53
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: erreur fenetre
Bonjour,
Question: si vous nommez la première fenêtre 'Carte1' avant de la copier 12 fois, le problème se pose-t-il encore??
Je pense à un problème de longueur de nom, que la dénomination 'Carte1:10' évitera alors qu'il peut se poser quand on arrive à plus de 9 fenêtres (un caractère de plus/de trop?).
Hors ligne
#4 Thu 05 January 2006 12:11
- Lyonic
- Juste Inscrit !
- Lieu: Lyon
- Date d'inscription: 10 Sep 2005
- Messages: 2
Re: erreur fenetre
Salut,
je pense avoir appliqué des noms assez courts pourtant à ces fenêtres...
Je m'en suis sorti en supprimant les lignes du .WOR correspondant à cette fenêtre avec un éditeur de texte... et pour le moment, ça tient !
Hors ligne
#5 Thu 02 February 2006 14:32
Re: erreur fenetre
Bonjour,
Je rencontre un problème similaire mais uniquement au moment de la création d'une fenetre de légende par programmation.
Ma fenetre carte s'appelle "Barrage,Ecluse,...,Surface_Hypso Carte"
Les lignes de code MapBasic sont les suivantes :
Code:
... iMapWin = FrontWindow() ... sCmdTxt1 = "Create Cartographic Legend From Window " + iMapWin + " Position (" + ... + ") Width " + ... + " Height " + ... + " Window Title ""Legende"" Scrollbars On Portrait Default Frame Title ""#"" Font (""Arial"",3,8,0) Default Frame Style ""(%)"" Font(""Arial"",0,7,0)" For i = 1 To MapperInfo( FrontWindow() , MAPPER_INFO_LAYERS ) sCmdTxt2 = sCmdTxt2 + "Frame From Layer " + i + " Using Column object Label default" 'récupère tous les identifiants de couches utiles par une boucle Next sCmdTxt1 = sCmdTxt1 + sCmdTxt2 'concatenation de la chaine de commande complete Run Command sCmdTxt1 'execution de la chaine de commande
MapInfo me retourne l'erreur suivante :
"Identifiant de fenetre 23 invalide"
Je n'ai d'ouvert que deux fenetres cartes.
'23' est le nombre total de fenetres NumAllWindows() (fenêtre de légende comprise)
Le nom de la fenetre légende devrait être :
"Legende de Barrage,Ecluse,...,Surface_Hypso Carte"
Merci de vos suggestoins et remarques et solutions
Jérôme
Hors ligne
#6 Fri 03 February 2006 09:21
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: erreur fenetre
Bonjour,
Désolé...mon MI 7.8 ne reproduit pas cette erreur.
J'ai des wor avec plusieurs dizaines de fenêtres cartes de ce genre...et aucun problème!!
Hors ligne
#7 Wed 08 February 2006 15:14
Re: erreur fenetre
Bonjour,
J'ai trouvé ma panne !
Ce qu'il fallait comprendre, c'est que la fenêtre de légende est un conteneur de fenêtres de légende pour chacune des couches.
Le message "Identifiant de fenetre 23 invalide" signifie que la fenêtre de légende de la couche 23 n'a pas de dimension car les objets de cette couche ne peuvent pas être affichés.
Il suffisait donc (la solution est simple quand on a la réponse) de tester la nature des objets de chacune des couches et s'assurer qu'il ne s'agit pas de 'Symbol' dont le code est '31' (symbole invisible 'N') ni de 'Line' dont la forme est 1 (line invisible 'N') ni de 'Brush' dont la forme est 1 (idem). Le code du test ressemble à
'StleAttr(LayerInfo(WindowId(Carte),numLayer,LAYER_INFO_OVR_SYMBOL),SYMBOL_CODE)=31
Dans l'affirmative du test, passer à la couche suivante.
La fenêtre Légende générale avec la fenêtre légende de la première couche se créé par un
'Create Cartographic Legend From Window WindowId(carte) ... Frame From Layer 1 ...'
Les fenêtre légende des couches suivantes s'ajoutent à la première par un
'Add Carrtographic Frame Window WindowId(Legende) ... Frame From Layer n ...'
Voilà voilà
Bonne après midi à tous. Merci de vos suggestions.
Jérôme
Hors ligne