|
Dernière réponse | |
---|---|
Sujet : [Delphi] Ca marche là-bas et pas ici... /début de solution/ | |
antp | y a pas moyen de restreindre la sélection possible ?
edit: non apparemment pas :( [edtdd]--Message édité par antp--[/edtdd] |
Aperçu |
---|
Vue Rapide de la discussion |
---|
antp | y a pas moyen de restreindre la sélection possible ?
edit: non apparemment pas :( [edtdd]--Message édité par antp--[/edtdd] |
Ciler |
|
antp | ces trucs genre DriveComboBox c'est de Win3.1 c'est pas recommandé de l'utiliser.
pour remplacer DriveComboBox/DirectoryListBox en Delphi 6 y a le ShellTreeView ou ShellComboBox. et pour remplacer FileListBox y a le ShellListView c'est plus joli et je pense que ça pose moins de problèmes. |
Ciler | :D J'ai trouvé la cause du problème... sans me l'expliquer pour autant...
Je résume tout : Dans un projet, les instructions d'entrée/sortie d'un fichier texte provoquent toutes une erreur (103 ou fichier non ouvert) sauf AssignFile si elles sont placées dans une procédure qui dépend directement d'unTForm. Par contre pas d'erreur si elles sont dans le code Click d'un bouton par exemple. :??: Après plusieurs heures de début, j'ai finis par déterminer d'où vient le problème. Dans ma Form, j'ai un TFileListBox et un TDriveComboBox. Dans le code onChange du TDriveComboBox, j'ai la ligne
|
Ciler | Merci, mais comme je l'ai déja dit :
|
Moustaaki | pose un point d'arrêt sur la ligne où ça merde (clique gauche sur coté gauche de la fiche de code), F9, hop ! ça passe directement en debug au niveau du pt d'arrêt, puis laisse le curseur de ta souris sur la variable dont tu veux connaitre la valeur, si il te dit valeur inaccessible, tu fais F7 pour qu'il passe à la ligne suivante et pour qu'il évalue l'expression, si t'as pas de ligne suivante, fais-en une bidon ( i := 0, par exple)
et puis récupère qd même les erreurs à l'ouverture, ça poura t'aider à comprendre ce qu'il se passe. |
Moustaaki | pose un point d'arrêt sur la ligne où ça merde (clique gauche sur coté gauche de la fiche de code), F9, hop ! ça passe directement en debug au niveau du pt d'arrêt, puis laisse le curseur de ta souris sur la variable dont tu veux connaitre la valeur, si il te dit valeur inaccessible, tu fais F7 pour qu'il passe à la ligne suivante et pour qu'il évalue l'expression, si t'as pas de ligne suivante, fais-en une bidon ( i := 0, par exple)
et puis récupère qd même les erreurs à l'ouverture, ça poura t'aider à comprendre ce qu'il se passe. |
Moustaaki | pose un point d'arrêt sur la ligne où ça merde (clique gauche sur coté gauche de la fiche de code), F9, hop ! ça passe directement en debug au niveau du pt d'arrêt, puis laisse le curseur de ta souris sur la variable dont tu veux connaitre la valeur, si il te dit valeur inaccessible, tu fais F7 pour qu'il passe à la ligne suivante et pour qu'il évalue l'expression, si t'as pas de ligne suivante, fais-en une bidon ( i := 0, par exple)
et puis récupère qd même les erreurs à l'ouverture, ça poura t'aider à comprendre ce qu'il se passe. |
Ciler | Ca voulait dire merci... POur la méthode de récupérage...
Sauf qu'aucune ne marche, impossible de savoir la valeur :??: |
[SDF]Poire |
|
Ciler | :jap: |
[SDF]Poire |
|
Ciler | Comment je fais ça ? LSTFile, c'est un nombre ? (Pour moi, c'est un TextFile, donc une référence à un fichier, mais peut-être que cette ref est un entier ?) |
[SDF]Poire | Donne la valeure de LSTFile |
Ciler | Idem barre, erreur avec reset comme avec ReWrite... |
taureau | avant de pouvoir écrire dans ton fichier tu dois l'ouvrir avec reset (après assignfile) |
Ciler | Certain ! :cry: |
[SDF]Poire | T sur que ton fichier n'est pas déjà ouvert ? |
[SDF]Poire |
|
Ciler | Ben, si je fais ReWrite, ça merde aussi
J'ai pas fait de gestion d'erreur parce-que il devrait pas encore y avoir d'erreur à ce niveau... |
[SDF]Poire |
|
Ciler | procedure TFormMain.MakeCommandLine();
var LSTFile: TextFile; Begin LSTCount := LSTCount + 1; //LSTCount est une variable locale de TFormMain AssignFile(LSTFile, 'C:\test.txt'); CloseFile(LSTFile); <- Et là, erreur 103 end; Euh, si tu veut le code du projet in-extenso... J'ai peur qu'il fasse un peu 3 unités et pas mal de lignes... [edtdd]--Message édité par ciler--[/edtdd] |
stef_dobermann | tu peux mettre le code exaste, demoin depuis l'ouverture jusqu'a la fermeture :)
j'ai peux être une idée mais je veux voir le code avant ;) |
[SDF]Poire | Et t'as pas des pb à l'ouverture ? (Tu fais la gestion des erreurs ?) [edtdd]--Message édité par [SDF]Poire--[/edtdd] |
Ciler |
|
[SDF]Poire | T'as un bug dans ton code....
T'appelle deja close dans un evenement ou un truc comme ça...... non ? |
Ciler | :D J'ai les numéros, vous allez voir c'est fun
Je fais AssignFile puis CloseFile -> Erreur 103 "fichier non ouvert" ReWrite -> Erreur sans numéro Mais... Si j'utilise ces fonctions dans la procédure Click d'un bouton, ça marche sans erreur (jusque la, elles étaient dans une procédure à part et :o qd j'appelais la procédure) |
Buitoni |
|
Ciler | C'est une erreur d'entrée sortie, mais j'ai plus le n° en tête... |
[SDF]Poire | C quoi commes les erreurs ? |
Ciler | :( NOn, c'est le seul moment dans l'appli ou j'ouvre/edite/ferme un fichier |
antp | fichier non fermé à un moment ? |
Ciler | C'est à dire,
Dans un projet déja pas mal avancé, les instructions pour parser un fichier texte (ReWrite, CloseFile) génèrent une erreur d'entrée/sortie, alors que dans un projet vierge, elles marchent sans problème... :??: Qu'est-ce qui dans un projet peut faire merder ce genre de commandes ? [edtdd]--Message édité par ciler--[/edtdd] |