Sélectionner un fichier ou un dossier dans la même boîte de dialogue - Delphi/Pascal - Programmation
Marsh Posté le 28-08-2008 à 13:46:47
Onglet dialogue : tu as des composants de ce genre.
OpenDialog pour ouvrir, SaveDialog pour enregistrer.
Pour les utiliser tu places simplement un des compos sur ton formulaire. Le nom du fichier/dir selectionné après avoir cliqué sur OK est stocké dans la propriété FileName du Dialog.
Généralement on les utilise de la façon suivante :
if OpenDialog1.Execute then toto.loadfromfile(OpenDialog1.FileName);
Marsh Posté le 28-08-2008 à 20:42:07
Merci, mais tu fais comment pour sélectionner un dossier avec TOpenDialog ? J'ai essayé un peu toutes les options mais je n'ai rien trouvé. Si tu as une idée...
Marsh Posté le 29-08-2008 à 10:23:32
pour les dossiers:
Code :
|
exemple:
Code :
|
Marsh Posté le 29-08-2008 à 12:45:09
Oui mais ce que je cherche à faire c'est permettre de sélectionner un fichier et/ou un dossier depuis la même boite de dialogue. C'est à dire comme dans la capture d'écran ci-dessus. Il me semble l'avoir fait il y a quelques années mais je ne me rappelle plus comment.
Je suppose que s'il n'y a pas de componsant pour le faire ça doit être une fonction de l'API Win32, mais je ne trouve pas. Si quelqu'un pouvait me pointer dans la bonne direction...
Marsh Posté le 29-08-2008 à 13:42:07
Ah ué on ne peut pas select un dossier avec l'opendialog... J'ai pas de réponse désolé
Marsh Posté le 30-08-2008 à 01:11:26
Pas de soucis, j'ai l'impression que c'est pas très commun comme boite de dialogue J'ai juste trouvé cet exemple mais c'est en C
Sinon est-ce que c'est faisable de customiser ces boites pour les faire accepter des fichiers ou dossiers ? Quelqu'un a une idée ?
Marsh Posté le 01-09-2008 à 16:37:42
Pas d'autres suggestions ? Tout le monde est passé à .NET ou quoi ?
Marsh Posté le 01-09-2008 à 17:34:59
J'en aurais bien une, tu crées toi meme un formulaire à ton projet qui va servir de fenetre modale comme un opendialog. Dedans tu rajoutes,
DirectoryListBox, FileListBox, DriveComboBox. Tu les relies par les bonnes propriétés qui font que quand tu changes de drive, ça update ton tree..
Tu mets deux boutons et tu geres les évènements. Genre le user qui clique deux fois sur un répertoire=> return du rep. Quand la personne clique sur ok, tu regardes ce qui est select dans les boites. Si un fichier est select tu retournes le fichier sinon le rep. Tu dois pouvoir gerer aussi qui si une personne clique sur un fichier, ça deselect le dir sélectionné et si la personne change de rep, ça deselectionne les fichier. Sur l'appui de ok, tu regardes ce qui est selectionné.
Marsh Posté le 02-09-2008 à 17:56:02
Merci je vais essayer ça. J'aurais préféré éviter de le faire "à la main", mais ça n'a pas l'air trop compliqué en utilisant les composants de Delphi.
Marsh Posté le 04-09-2008 à 11:36:33
j'ai trouvé sa: http://www.commentcamarche.net/tel [...] escription
mais je sais pas si il y a l'option que tu veux
Marsh Posté le 06-09-2008 à 00:12:09
Finalement j'ai opté pour la solution à rengzehn, merci encore Les TDriveComboBox, TDirectoryListBox et TFileListBox simplifient grandement les choses (par contre les icones style Window 3.1 sont horribles )
Voilà le code complet au-cas-où ça intéresse quelqu'un :
SelectFolderOrFileUnit.pas :
Code :
|
SelectFolderOrFileUnit.dfm :
Code :
|
Marsh Posté le 27-08-2008 à 22:52:43
Bonjour,
Je cherche à afficher une boîte de dialogue qui puisse permettre de choisir soit un fichier, soit un dossier. Quelque chose dans le genre de la boîte de raccourcis Windows :
Est-ce que c'est faisable en Delphi, et si oui quelle fonction appeler ?
Laurent