2010-11-16 6 views
3

J'ai essayé de rechercher mon erreur, lire quelques sujets, mais je ne pouvais pas trouver un indice pourquoi cela se produirait. Si quelqu'un pouvait m'aider à avoir au moins quelques indices sur la façon dont je pourrais vérifier ce qui se passe, alors je serais en mesure de le réparer, ce serait grandement apprécié.Liste l'index hors limites, l'ajout de cadre delphi

J'ai codé une application qui a plusieurs bpl liés ensemble pour former l'exécutable.
J'ai un formulaire et un cadre sur le même projet. Lorsque j'essaie d'ajouter le cadre au formulaire, il me donne une erreur "Lister l'index des limites". Je peux ajouter d'autres cadres qui sont dans ce projet à ce formulaire, mais je ne peux pas ajouter ce cadre à ce formulaire ou à d'autres formes du projet, mais le cadre est ajouté au projet.

Merci à l'avance pour toute aide

Thomas

+0

Quel est le texte * exact * du message d'erreur? Et quels contrôles sont sur le TFrame que vous ne pouvez pas ajouter? –

+0

Liste l'index hors limites (-1). Avant cela, je reçois un message d'erreur: "Impossible de trouver ces fichiers, peut-être qu'ils sont dans différents projets." D'après ce que j'ai pu inférer, ce message d'erreur est donné par CnPack. Le formulaire et le cadre sont dans le même projet, donc je ne comprends pas pourquoi cet autre message apparaît. – Thomas

+0

http://img217.imageshack.us/img217/3826/projecth.png Contrôles de dataacess (dbexpress), édition, combinaison, panel, pagecontrol, tous les composants delphi natifs. J'essaie d'ajouter le formulaire au design. – Thomas

Répondre

1

J'ai été en mesure de résoudre le problème en supprimant et en ajoutant à nouveau le cadre au projet.

Merci pour l'aide, Ken et Marjan. Merci de m'avoir appris à déboguer des erreurs de temps de conception, Mason, je ne savais même pas que c'était possible. C'est toujours agréable d'apprendre de nouvelles choses.

Et merci pour votre réponse rapide.

Thomas

3

"index de la liste hors limites (-1)" est une erreur intéressante. Si je devais deviner, je dirais que quelque part, il est l'exécution du code qui ressemble à ceci:

Index := List.IndexOf(Whatever); 
List.Delete(index); 

Si vos contrôles sont contenus dans BPLs, il y a une façon que vous pouvez le suivre dans le débogueur. Ouvrez la BPL où se trouve le cadre que vous essayez de placer. Construisez-le en mode débogage. Ensuite, allez dans le menu Run et sélectionnez Parameters.... Sous Host Application, appuyez sur Parcourir et recherchez bds.exe (l'IDE Delphi lui-même), puis appuyez sur F9. Cela va lancer une deuxième copie de l'IDE et charger les informations de débogage pour votre BPL.

Ensuite, essayez de reproduire l'erreur, et lorsque l'erreur de liste se produit, il sera traité par votre première copie de Delphi comme toute autre exception, avec la possibilité de casser et entrer dans le débogueur. De là, vous devriez être en mesure de localiser le problème assez facilement.

+0

L'erreur est donnée au moment du design. Je viens d'obtenir le composant (frame) et le dépose sur le formulaire. Désolé, j'ai oublié de dire que c'était au moment du design. – Thomas

+2

@Thomas: Je sais que c'est au moment du design. Ce que je viens de décrire est comment vous déboguez les erreurs de temps de conception. –

Questions connexes