|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 10 ![]() |
Bonjour,
Je voudrais ouvrir et afficher une image dans un pack. Pour cela, j'ai le code suivant : Code :
Error: This expression has type string option/11 but an expression was expected of type string option/1031 Je n'avais jamais vu ce type d'erreur avant... |
||
|
|
00
|
|
|
#2 | |||
|
Membre émérite
![]() ![]() Phrene Caco Inscription : janvier 2009 Messages : 525 ![]() |
Bonjour,
Citation:
Concernant ton code LablGTK, je te donne une version fonctionnelle ci-dessous. Note que l'on préfère généralement créer le widget GMisc.image une seule fois, et ensuite mettre son contenu à jour. Ta fonction affiche peut être grandement simplifiée en utilisant la fonction auxiliaire Gaux.may disponible dans la bibliothèque. Enfin, petit détail, on essaie souvent d'éviter de lever des exceptions en cas d'annulation, il suffit de ne rien faire (mais je ne connais pas ton programme entier et tu as peut-être de bonnes raisons de lever une exception quand affiche reçoit None) : Code :
Cordialement, Cacophrène
__________________
Blog OCaml de pied en cap Tuto Implémentation d'un lexique avec OCaml Projets OCamlBoggle MazeML OCamlTeX |
|||
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 10 ![]() |
Merci Cacophrène pour ta réponse !
Je ne comprends pas très bien les raisons pour lesquelles j'ai eu cette erreur. (Même après avoir avoir relancé des sessions, ça n'a pas fonctionné...) (Ton code à une sytaxe error à la dernière ligne quand je compile. Ca doit juste être un problème de ";") Je vois comme tu veux faire. C'est vrai que du coup, je ne définis qu'une fois l'image, c'est vraiment bien. Je suis peut-être un peu pénible, mais est-ce que mon code ne pourrait pas marcher ? (Même si je vais utiliser le tiens qui est quand même beaucoup mieux. Mais j'aime comprendre pourquoi ça ne marche pas ^^" .) Merci beaucoup en tout cas. |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() ![]() Phrene Caco Inscription : janvier 2009 Messages : 525 ![]() |
Bonsoir,
Effectivement, je n'ai pas fait attention en copiant, mon code ne fonctionne pas car il manque un in à la ligne let display = Gaux.may ~f:image#set_file. Concernant ton code, aurais-tu la version complète, avec la fenêtre et tout le reste, pour voir exactement ce qui ne va pas ? Avec ces deux fonctions le comportement n'est pas reproductible. Cordialement, Cacophrène
__________________
Blog OCaml de pied en cap Tuto Implémentation d'un lexique avec OCaml Projets OCamlBoggle MazeML OCamlTeX |
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 10 ![]() |
Bonsoir,
Voici mon code (avant que tu ne répondes au topic) : http://pastebin.com/2PMRWUcT Je mets le sujet en résolu puisque tu as résolu mon problème. J'aurais juste une dernière question : Y'a t-il (j'ai cherché dans la doc mais je n'ai pas trouvé) un moyen de connaître le chemin de l'image que contient GMisc.image ? Par exemple un genre de image#getfilename ? Si non, y'aurai t-il une manière judicieuse de stocker le chemin de mon image pour m'en resservir (sachant que le type string option ne me convient pas, je voudrais juste un string...) ? |
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() ![]() Phrene Caco Inscription : janvier 2009 Messages : 525 ![]() |
Bonsoir,
Pourquoi redéfinis-tu le type 'a option dans ton code ? Tes problèmes viennent sans doute de là. Il s'agit d'un type déjà défini dans OCaml, tu n'as pas besoin de le redéfinir. Il semblerait que GMisc.image ne permette pas de retrouver le nom du fichier affiché. Les possibilités de stockage sont nombreuses et dépendent beaucoup du nombre de fonctions amenées à utiliser ce fichier. Tu peux trouver pratique de le stocker dans une référence globale visible par presque tout ton code, ou au contraire de laisser ça au niveau local. C'est un peu au cas par cas. Cordialement, Cacophrène
__________________
Blog OCaml de pied en cap Tuto Implémentation d'un lexique avec OCaml Projets OCamlBoggle MazeML OCamlTeX |
|
00
|
Copyright © 2000-2013 - www.developpez.com