PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > nzn.fr.delphi > TSavePictureDialog
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
TSavePictureDialog

Réponse
 
LinkBack Outils de la discussion
Vieux 02/10/2007, 10h03   #1
Jean-Luc M.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut TSavePictureDialog

Bonjour,

Quand on propose plusieurs extensions dans un TSavePictureDialog,
comment on peut savoir qu'elle extension a été choisie par
l'utilisateur ?

J-L

--
Jean-Luc M.


  Réponse avec citation
Vieux 03/10/2007, 07h30   #2
BigGrizzly
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: TSavePictureDialog

Ca n'a pas été conçu pour. Quel est ton objectif ?

Jean-Luc M. <alphomega@free.fr>
:: Bonjour,
::
:: Quand on propose plusieurs extensions dans un TSavePictureDialog,
:: comment on peut savoir qu'elle extension a été choisie par
:: l'utilisateur ?
::
:: J-L
::
:: --
:: Jean-Luc M.


  Réponse avec citation
Vieux 03/10/2007, 07h51   #3
Pascal Peyremorte
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: TSavePictureDialog

Jean-Luc M. a écrit :
> Bonjour,
>
> Quand on propose plusieurs extensions dans un TSavePictureDialog,
> comment on peut savoir quelle extension a été choisie par l'utilisateur ?
>
> J-L


Avec ExtractFileExt(TheSaveDialog.FileName) ?
  Réponse avec citation
Vieux 03/10/2007, 08h20   #4
Pascal Peyremorte
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: TSavePictureDialog

BigGrizzly a écrit :
> Ca n'a pas été conçu pour. Quel est ton objectif ?
>
> Jean-Luc M. <alphomega@free.fr>
> :: Bonjour,
> ::
> :: Quand on propose plusieurs extensions dans un TSavePictureDialog,
> :: comment on peut savoir qu'elle extension a été choisie par
> :: l'utilisateur ?



Bonjour,

Si c'est au moment de la sélection d'extension (avant d'avoir cliqué sur
"Enregistrer") il semble qu'on doit pouvoir exploiter le message
"CDN_TYPECHANGE" : The user selected a new file type from the list of file types.

Voir le SDK, rubrique "Open and Save As Dialog Boxes", paragraphe
"Explorer-Style Hook Procedures" presque en bas de la (longue) page.


  Réponse avec citation
Vieux 03/10/2007, 08h23   #5
BigGrizzly
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: TSavePictureDialog

Le feu sacré, le voilà, en personne qui vient sonner à la porte du forum !
:-)))

Pascal Peyremorte <p.peyremorte_oter_ces_mots@free.fr>
:: BigGrizzly a écrit :
::: Ca n'a pas été conçu pour. Quel est ton objectif ?
:::
::: Jean-Luc M. <alphomega@free.fr>
::::: Bonjour,
:::::
::::: Quand on propose plusieurs extensions dans un TSavePictureDialog,
::::: comment on peut savoir qu'elle extension a été choisie par
::::: l'utilisateur ?
::
::
:: Bonjour,
::
:: Si c'est au moment de la sélection d'extension (avant d'avoir cliqué
:: sur "Enregistrer") il semble qu'on doit pouvoir exploiter le message
:: "CDN_TYPECHANGE" : The user selected a new file type from the list
:: of file types.
::
:: Voir le SDK, rubrique "Open and Save As Dialog Boxes", paragraphe
:: "Explorer-Style Hook Procedures" presque en bas de la (longue) page.


  Réponse avec citation
Vieux 03/10/2007, 08h44   #6
Pascal Peyremorte
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: TSavePictureDialog

BigGrizzly a écrit :
> Le feu sacré, le voilà, en personne qui vient sonner à la porte du forum !
> :-)))


Pas très violent le feu...
Je n'ai jamais exploité ce truc, d'où le "on devrait pouvoir".

<< To use this message, provide an OFNHookProc hook procedure and specify the
OFN_ENABLEINCLUDENOTIFY flag in the OPENFILENAME structure when you create the
dialog box.>>
Faudra regarder comment ça s'emboite dans la VCL.

//*** un peu plus tard (je suis curieux) ***

Ohhhh !!!!

Je viens de découvrir que TOpen et TSaveDialogs publient un évènement
"OnTypeChange" (qui est absent de l'aide en ligne !!!) !
Il suffit donc de l'utiliser.

Et y'a plus de feu du tout
  Réponse avec citation
Vieux 03/10/2007, 21h31   #7
Jean-Luc M.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: TSavePictureDialog

>
> Ohhhh !!!!
>
> Je viens de découvrir que TOpen et TSaveDialogs publient un évènement
> "OnTypeChange" (qui est absent de l'aide en ligne !!!) !
> Il suffit donc de l'utiliser.


il y a bien un évenement que j'ai vu mais il ne dit pas pas quel type
est choisi. L'index dans la liste me suffirait. Je vais voir du coté
sdk. Merci pour cette piste !

--
Jean-Luc M.


  Réponse avec citation
Vieux 03/10/2007, 21h32   #8
Jean-Luc M.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: TSavePictureDialog

>
> Avec ExtractFileExt(TheSaveDialog.FileName) ?


ça, ça fonctionne seulement si on définit une extension par défaut.
Sans ça, un nom de fichier fourni sans extension n'en prend aucune.
Le but du truc est de pouvoir forcer l'extension choisie dans la liste
au moment de la sauvegarde sans renseigner DefaultExt

--
Jean-Luc M.


  Réponse avec citation
Vieux 03/10/2007, 21h50   #9
Flo
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: TSavePictureDialog

Jean-Luc M. a écrit :
> ça, ça fonctionne seulement si on définit une extension par défaut.
> Sans ça, un nom de fichier fourni sans extension n'en prend aucune.
> Le but du truc est de pouvoir forcer l'extension choisie dans la liste
> au moment de la sauvegarde sans renseigner DefaultExt


dans les dernières versions de la VCL, la propriété FilterIndex semble
mise à jour après l'exécution de la boite de dialogue; idem dans
l'évênement OnTypeChange
(pas testé)
  Réponse avec citation
Vieux 04/10/2007, 08h42   #10
Jean-Luc M.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: TSavePictureDialog

>
> dans les dernières versions de la VCL, la propriété FilterIndex semble mise à
> jour après l'exécution de la boite de dialogue; idem dans l'évênement
> OnTypeChange
> (pas testé)


Bien vu , j'avais pas pensé à vérifier ça, me disant que ce n'était
qu'une initialisation du choix du type avant execution de la boite de
dial.
Merci

--
Jean-Luc M.


  Réponse avec citation
Vieux 04/10/2007, 20h20   #11
waskol
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: TSavePictureDialog

On à proposé une solution dans la FAQ de www.developpez.com il y a plusieurs
mois de celà si ça vous intéresse....
"Jean-Luc M." <alphomega@free.fr> a écrit dans le message de news:
mn.22467d7a0d7f1050.28556@free.fr...
> >
>> dans les dernières versions de la VCL, la propriété FilterIndex semble
>> mise à jour après l'exécution de la boite de dialogue; idem dans
>> l'évênement OnTypeChange
>> (pas testé)

>
> Bien vu , j'avais pas pensé à vérifier ça, me disant que ce n'était qu'une
> initialisation du choix du type avant execution de la boite de dial.
> Merci
>
> --
> Jean-Luc M.
>
>



  Réponse avec citation
Vieux 05/10/2007, 09h00   #12
waskol
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: TSavePictureDialog


"Jean-Luc M." <alphomega@free.fr> a écrit dans le message de
news:mn.22467d7a0d7f1050.28556@free.fr...
> >
> > dans les dernières versions de la VCL, la propriété FilterIndex semble

mise à
> > jour après l'exécution de la boite de dialogue; idem dans l'évênement
> > OnTypeChange
> > (pas testé)

>
> Bien vu , j'avais pas pensé à vérifier ça, me disant que ce n'était
> qu'une initialisation du choix du type avant execution de la boite de
> dial.
> Merci
>
> --
> Jean-Luc M.
>
>


Function GetCurrentExtension(s:string;t:integer):string;
var i,j:integer;
begin
result:='';j:=0;
i:=0;
t:=(t-1)*2+1;
while (j<Length(s)) and (i<>t) do
begin
inc(j);
if s[j]='|' then inc(i);
end;
inc(j);
while (j<=Length(s)) and (s[j]<>'|') do
begin
result:=result+s[j];
inc(j);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenPictureDialog1.Execute;

//On affiche l'extension choisie

Label1.Caption:=GetCurrentExtension(OpenPictureDia log1.Filter,OpenPictureDia
log1.Filterindex);
end;


  Réponse avec citation
Vieux 15/10/2007, 11h20   #13
Loïs Bégué
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: TSavePictureDialog

Jean-Luc M. schrieb:
> Bonjour,
>
> Quand on propose plusieurs extensions dans un TSavePictureDialog,
> comment on peut savoir qu'elle extension a été choisie par l'utilisateur ?
>
> J-L
>

Le problème c.a.d. la question est:
as-tu besoin de savoir l'extension choisie dans le combo, même si à la
fin l'utilisateur en donne une autre?

en fait:
on peux choisir "*.gif" dans le combo et tout de même nommer le fichier
"monimage.jpg" (suivant les options du dialog, bien-sûr)

Il est en général plus fiable de récupérer le nom de fichier après la
fermeture du dialog et de vérifier l'extension à ce moment:
- soit l'extension manque => celle du combo est choisie
- soit elle est déjà fournie => celle du combo n'a plus d'importance
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 11h04.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,19074 seconds with 21 queries