Openpicturedialog et raccourci.lnk

Résolu
cLapp Messages postés 7 Date d'inscription vendredi 20 août 2010 Statut Membre Dernière intervention 11 septembre 2010 - 6 sept. 2010 à 17:49
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 7 sept. 2010 à 13:16
bo'your !

ça ne semble pas avoir été soulevé ;
c'est peut-être juste à moi que ça arrive...
Bref,
le composant openpicturedialog plante, sérieusement!, lorsque :
on clique un raccourci.lnk

C'est tout.
Mais c'est plate.

Nos images sont dans différents dossiers, alors on se fait des *.lnk pour sauter d'un dossier à l'autre. Normal.

openpicturedialog , c'est mignon, il y a un aperçu et tout,
mais si tu as le malheur de cliquer un lien.lnk, wow, la cata !

En attendant de tenter de corriger l'unité dialogs.pas
(j'peux-tu faire ça? ça corrigerait le composant?)
j'utilise openfiledialog. Il n'y a pas d'aperçu mais on peut dblCliquer les lnk et naviguer sans crasher.

Suis-je la seule à qui c'est arrivé ?

aYez du bon temps,
jM cLapp

10 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
6 sept. 2010 à 19:11
Salut,

bon c'est tout simple ... ça plante en mode Debug mais en exécution tout fonctionne à merveille

j'ai mis sur le bureau un raccourci vers une image jpg située dans le répertoire "Mes Images"
un TButton, un TImage et bien sur un TOpenPictureDialog .... le code qui suit:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then
    Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;


tu compiles et tu lances l'exe en dehors de l'IDE ...

quand tu cliques sur le lien il n'y a pas d'aperçu (normal) mais si tu mets le style en "Miniatures" on a bien la vignette de l'image au dessus du lien et en double cliquant dessus l'image est ouverte dans le TImage !!


[hr]@+Cirec
[hr]
3
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
7 sept. 2010 à 03:32
c'est un peu fort quand même !!

je ne devrais pas avoir à vous expliquer les bases de la programmation ... il y a assez de tutoriels sur le net à ce sujet

[b]on appelle ça la gestion d'exceptions:

/bet on peut gérer les exceptions de deux manières ...
(pour un pgm démarré en dehors de l'IDE)
la standard (l'utilisateur est averti de l'erreur)
et la silencieuse (l'utilisateur n'est pas averti)

en mode Debug (dans l'IDE) il n'existe pas d'exception silencieuse ... même si tu l'as explicitement programmé, l'erreur sera quand même déclenché par le Débogueur de l'IDE !!!

c'est exactement ce qu'il se passe ici ... donc non c'est pas un bug ... c'est volontaire, ça permet au programmeur de gérer l'erreur en interne sans perturber le fonctionnement du programme.

Démo (les mêmes composants que pour la démo précédente):
tu compiles et tu lances en dehors de l'IDE et il n'y aura pas d'erreur ... à l'inverse dans l'IDE tu auras une erreur[hr]procedure TForm1.Button1Click(Sender: TObject);

[b]begin
  try
    /bImage1.Picture.LoadFromFile('ImageBidon.bidon')
  [b]except

  end/b;
end;
[hr]
Par contre ce code déclenchera une erreur en dehors et deux erreurs dans l'IDE !!! [hr]procedure TForm1.Button1Click(Sender: TObject);

[b]begin
  try
    /bImage1.Picture.LoadFromFile('ImageBidon.bidon')
  [b]except
    raise/b;
  end;
end;
[hr]

Voilà ... maintenant si tu découvres vraiment ça à l'instant je te conseille d'étudier la chose de suite avant même de poursuivre ton dev.
en programmation on ne peut pas espérer comprendre le fonctionnement d'un objet où composant sans avoir étudier les bases

[hr]@+Cirec
[hr]
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
7 sept. 2010 à 13:16
Bonjour,

Ce genre de bug donne très souvent lieu à l'ouverture d'un incident. Et c'est le cas ici.

Le composant semble avoir été corrigé en version 12, Delphi 2009.

Sinon, si tu as une version pro, tu dois pouvoir modifier le code du contrôle, dernier message ici.
3
Utilisateur anonyme
6 sept. 2010 à 18:53
Plutôt que de faire parler de toi une fois de plus, pourrais tu lire l'aide de ton IDE ?

Touche F1


TOpenPictureDialog affiche une boîte de dialogue de sélection de fichier graphique.

Unité

ExtDlgs

Description

TOpenPictureDialog affiche une boîte de dialogue Windows modale permettant de sélectionner et d'ouvrir des fichiers graphiques. Ce composant est similaire à TOpenDialog mais inclut une zone de prévisualisation rectangulaire. Si l'image sélectionnée peut être lue par TPicture, elle est affichée dans la zone de prévisualisation ; les types de fichiers supportés sont les fichiers bitmap (.BMP), les icônes (.ICO), les métafichiers Windows (.WMF) et les métafichiers Windows étendus (.EMF). Si l'image sélectionnée ne peut pas être affichée, "(Aucun)" apparaît dans la zone de prévisualisation.

Si l'utilisateur sélectionne un fichier de type non reconnu, TPicture déclenche une exception EInvalidGraphic.


A ma connaissance un fichier lnk à ma connaissance n'est pas un fichier de type graphique donc avant de dire que ce composant ne fonctionne pas ou parler de débeugage il serait peut etre bien de se renseigner à quoi sert ce dit composant.

Au passage même si ton fichier lnk était de type graphique, il ne serait pas pris en compte : C'est marqué dans l'aide.

Dis donc toi entre ton source tout pourris, et ta question sur la base de registre, il serait peut etre bien d'allez lire le règlement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
6 sept. 2010 à 20:56
Oh là camarade Cirec : Notre amie n'a pas précisé que son raccourci pointait vers un fichier Jpeg mais vers un dossier d'ou ma remarque .
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
6 sept. 2010 à 21:08
Oh là camarade Francky : On s'en tape puisque, si le lnk pointe sur un répertoire, ben un double clique l'ouvre, dans le TOpenPictureDialog, bien sur toujours en dehors de l'IDE


[hr]@+Cirec
[hr]
0
Utilisateur anonyme
6 sept. 2010 à 23:43
Oui camarade Cirec sauf que je suis pas sur qu'elle est son aperçu (j'ai pas testé ) ?
0
cLapp Messages postés 7 Date d'inscription vendredi 20 août 2010 Statut Membre Dernière intervention 11 septembre 2010
7 sept. 2010 à 01:47
merci Francky, de vous donner tant de peine (citations en exergue, épanchement abondant, etc.) c'est vraiment gentil.
Trop chou.

Votre réponse suggère que OpenPictureDialog "plante", génère une exception EInvalidGraphic, que c'est normal et c'est tout.
On pourrait y même y lire que c'est "à quoi sert ce dit composant"...

Même en relisant 2 fois ("A ma connaissance un fichier lnk à ma connaissance (...)") on n'y voit pas comment guérir l'objet.
Je suis quand même heureuse d'apprendre que j'ai déJà fait parler de moi. Je vais rougir ; pas riche, mais célèbre !
Merci quand même.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Attention, attention, débutants qui cherchez une solution

Oyez (enfin, lisez) l'information pertinente, nécessaire et suffisante :

[b]
"bon c'est tout simple ... ça plante en mode Debug mais en exécution tout fonctionne à merveille"/b

Ben voiLà ! Merci ceric.
Je vous le confirme, pour l'avoir immédiatement testé, en dehors de l'IDE évidemment, c'est au poil. Tiguidou, je dirais.

(Je n'ai donc pas le choix d'accorder ma "Rép. acc." à ceric)
Merci encore.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Il faudra que j'épluche l'aide de mon IDE pour voir si vraiment on nous y instruit que ce composant ne fonctionne pas en mode Debug.

Merci encore sincèrement,
jMcLapp

ps : oui, tiguidou. aH, sitoutétaittiguidou...
.
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
7 sept. 2010 à 03:36
ps:
mon pseudo c'est Cirec
et non Ceric
... merci
0
Utilisateur anonyme
7 sept. 2010 à 07:23
Marie,

Sans vouloir te vexer tu devrais changer d'attitude car là tu ne te rends pas service. Si tu commences à te manifester ainsi sur CS à part te faire voler dans les plumes comme cela a été le cas, tu n'arriveras à rien d'autre.

Plutôt que de développer un projet tu devrais peut être apprendre les bases et apprendre à te servir de l'aide.

Quand aux sources, on ne poste pas n'importe quoi et je suis pas sur que ton source a été du gout de tout le monde : Preuve en est, qu'il a été désactivé sur le champs.

Que tu sois une petite rigolote c'est une chose, mais maîtrise la chose un minimum car :

1)Ton humour décalé est peut être pas du gout de tout le monde (Et à mon avis, il n'y a pas que moi qui doit défriser : Preuve en est Cirec qui semble lui aussi pas très content de ton intervention)

2)Tu as tendance à prendre les autres pour des cons : Et là ca devient beaucoup plus désagréable.

3)Tu risques plus de passer pour une quiche qu'autre chose

openpicturedialog , c'est mignon, il y a un aperçu et tout
Ce genre de chose a du en faire sourire plus d'un
0
Rejoignez-nous