TOpenPictureDialog [Résolu]

Signaler
Messages postés
3
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
29 mai 2009
-
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
-
Bonjour,
Je suis totalement débutant en delphi, et j'aimerais simplement créer un programme qui visualise une image. Un bouton de recherche et un Timage pour l'afficher.

Est-ce que quelqu'un pourrait m'expliquer comment fonctionne le TOpenPictureDialog ? et me donner les éléments dont j'ai besoin pour réaliser ce petit programme ?

Merci.
A voir également:

6 réponses

Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Le symbole + sert à concaténer :
Exemple :
var Chaine: string;
FPseudo: string;
FEntier: Integer;
...
FPseudo:= 'Julio';
FEntier:= '29';



Chaine:= 'Bonjour ' + FPseudo + ' !'; // depuis une variable string



Chaine:= 'Bonjour ' + IntToStr(FEntier) + ' !'; // depuis une variable integer castée en string



Chaine:= 'Bonjour ' + Edit1.Text + ' !'; // depuis un Edit
Chaine:= 'Bonjour ' + LowerCase(ComboBox1.Items[ComboBox1.ItemIndex]) + ' !'; // en minuscule depuis une combobox
etc etc

Pour toi :

ShellExecute(Handle, 'open', PChar('convert.exe'), PChar(
OpenPictureDialog1.FileName +
' -resize 50% imagen_salida.png'), nil, SW_SHOWNORMAL);




Il me semble que les PChar() sont fortement conseillés.

N'oublie pas le bouton "reponse acceptée" et n'hésite pas a créer 10 posts pour 10 questions afin que sujets correspondent au probleme !
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Salut
As tu fait "F1" sur le composant ? L'aide est complète la dessus ...
Aussi, tous les formats d'image ne sont pas supportés ni par le OpenDialog ni par le TImage (png, jpg etc ne sont pas gérés).
Tu vas donc devoir les gérer toi même avec des librairies externes.

Sinon pour démarrer tu peux faire :
1) Pose un TOpenPictureDialog
2) Pose un TImage, align Client
3) Poser un TPanel, Align Top ou Bottom. Supprimer son Caption.
4) Dans ce panel, pose un TButton, mets "Parcourir..." en caption, double clic dessus et mets :
if OpenPictureDialog1.Execute then
  Image1.LoadFromFile(OpenPictureDialog1.FileName);

ça devrait deja faire quelquechose de sympa...
Messages postés
3815
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
4 août 2020
35
Salut,

juste une petite précision au sujet de:
"Aussi, tous les formats d'image ne sont pas supportés ni par le OpenDialog ni par le TImage (png, jpg etc ne sont pas gérés)"

c'est vrai sauf pour la dernière version de Delphi (Delphi2009)
ou tous formats courant y sont supportés nativement par la VCL

pour les anciennes versions il faut utiliser des librairies externes comme la "PngLib" par exemple.

 
@+
Cirec

<hr siz="" />
Messages postés
3
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
29 mai 2009

Merci pour tout ! Tout marche. (J'ai delphi 2009)
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Arf, je suis pardonné, mon avatar explique tout :]
Messages postés
3
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
29 mai 2009

Encore une petite question... En fait je suis entrain d'essayer de créer une interface pour ImageMagick. C'est un programme qui s'exécute à partir de ligne de commande.

Par exemple :
ShellExecute(Handle,'open', 'convert.exe','image1.jpg -resize 50% imagen_salida.png', nil, SW_SHOWNORMAL) ;

Cela convertit un .jpg en .png et au passage reduit la taille de 50%...

Ici l' "image1.jpg" devient "imagen_salida.png"

Maintenant
j'aimerais pouvoir remplacer image1.jpg par une variable... Pour que
l'utilisateur puisse choisir sa photo.( le nom de la photo est stocké
dans une variable.) Mais je ne sais pas quelle est la syntaxe pour inclure une variable entre deux ' ' au milieu d'une telle fonction...

Quelqu'un aurait la solution ?