Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4759 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  OpenDialogBox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

OpenDialogBox

n°382067
Crazy-Eagl​e
Posté le 04-05-2003 à 22:54:40  profilanswer
 

'Soir,
 
Ma Question est assez simple j'aimerais savoir comment faire pour récupérer le nombre de fichiers sélectionnés par l'utilisateur dans une OpenDialogBox ... Avec l'option AllowMultiSelect a True bien sûr... J'en ai super besoin ^^
 
Merci :)

mood
Publicité
Posté le 04-05-2003 à 22:54:40  profilanswer
 

n°382068
antp
Super Administrateur
Champion des excuses bidons
Posté le 04-05-2003 à 23:02:51  profilanswer
 

propriété "Files" : c'est un TStrings (ou TStringList, mais c'est pareil) te renvoyant la liste des fichiers sélectionnés.
Et donc Files.Count te donne le nombre de fichiers.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°382073
Crazy-Eagl​e
Posté le 04-05-2003 à 23:13:03  profilanswer
 

merci heu :)

n°382079
Crazy-Eagl​e
Posté le 04-05-2003 à 23:27:04  profilanswer
 

Au fait ya encore un truc qui me chagrine ...
 
Le OpenDialogBox sert a ouvrir un ou plusieurs fichiers mp3 a mettre dans une ListBox qui va servir de PlayList ... mais comment faire pour mettre a la fois le nom du fichier et son path dans un tableau, et ensuite afficher dans la listbox uniquement le nom du fichier mais garder le path en mémoire pour la lecture ?  
 
1000 merci  :D

n°382083
antp
Super Administrateur
Champion des excuses bidons
Posté le 04-05-2003 à 23:38:06  profilanswer
 

Une solution serait de maintenant en mémoire une TStringList avec les chemins complets, et ne mettre que les noms de fichiers dans la listbox. Lorsque tu récupères l'index de l'élément sélectionné dans la listebox, tu vas cherche le chemin dans la TStringList qui devra avoir le même nombre d'éléments normalement.
Tu peux aussi avoir une liste d'objets indépendante de ta liste de noms, et utiliser la propriété Items.Objects[] pour les lier à la listbox, mais c'est un peu plus compliqué.
Pour extraire juste le nom de fichier d'un chemin complet, il y a ExtractFileName.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°382101
Crazy-Eagl​e
Posté le 04-05-2003 à 23:47:43  profilanswer
 

heu je débute ... tu saurais me faire le code ou du moins me montrer un exemple ?

n°382118
antp
Super Administrateur
Champion des excuses bidons
Posté le 04-05-2003 à 23:53:54  profilanswer
 

dans la partie private de ta form tu mets une TStringList
liste: TStringList;
dans le OnCreate tu crées la liste:
liste := TStringList.Create;
dans le OnDestroy tu la détruis:
liste.Free;
 
lorsque tu ajoutais un élément à ta liste tu faisais un truc genre:
Listbox1.Items.Add(nom);
maintenant tu fais:
Listbox1.Items.Add(ExtractFileName(nom));
liste.Add(nom);
 
lorsque l'on sélectionne un item de la liste, ou que tu as besoin de savoir ce qui est sélectionné, je suppose que tu faisais un truc genre:
if Listbox1.ItemIndex <> -1 then
  nom := Listbox1.Items[Listbox1.ItemIndex];
maintenant tu fais:
if Listbox1.ItemIndex <> -1 then
  nom := liste[Listbox1.ItemIndex];


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°382128
Crazy-Eagl​e
Posté le 04-05-2003 à 23:59:27  profilanswer
 

et comment je fais pour les trucs oncreate et ondestroy pcq c est via frames ?

n°382129
Crazy-Eagl​e
Posté le 05-05-2003 à 00:00:00  profilanswer
 

enter et exit oups :)

n°382140
Crazy-Eagl​e
Posté le 05-05-2003 à 00:08:34  profilanswer
 

Comment ca se fait qu'il n'y aie rien qui s'affiche dans ma liste ??

mood
Publicité
Posté le 05-05-2003 à 00:08:34  profilanswer
 

n°382143
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-05-2003 à 00:09:20  profilanswer
 

heu non surtout pas enter et exit :D
Y a quand même un OnCreate et OnDestroy même sur les frames  
Au fait, pourquoi tu utilises des frames, tu les emploie comme des fenêtres ou bien comme on doit les employer, c'est à dire pour mettre sur des forms.
Si c'est le premier cas, il faut utiliser des forms à la place :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°382144
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-05-2003 à 00:09:42  profilanswer
 

Crazy-Eagle a écrit :

Comment ca se fait qu'il n'y aie rien qui s'affiche dans ma liste ??


 
t'as fait une erreur je suppose [:spamafote]
 
bon on verra ça demain :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°382759
Crazy-Eagl​e
Posté le 05-05-2003 à 14:58:57  profilanswer
 

antp a écrit :

heu non surtout pas enter et exit :D
Y a quand même un OnCreate et OnDestroy même sur les frames  
Au fait, pourquoi tu utilises des frames, tu les emploie comme des fenêtres ou bien comme on doit les employer, c'est à dire pour mettre sur des forms.
Si c'est le premier cas, il faut utiliser des forms à la place :D


 
Non c est comme il faut :D
 
Je veux dire ... mon programme c est une appli multi fonction ... a gauche de la fenetre main ya une liste de modules et selon le module qu on choisit eh bien ya une frame qui est chargée dans la partie de droite ...  
"Multi-Fct" = LecteurMP3;ftp;mail,... je fais ca pour tester la puissance de delphi et pour passer le temps :D
(aussi pour pouvoir dire dans 10 ans j'ai fait du delphi et ainsi épater mes enfants mdr  :sol: )

n°382763
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-05-2003 à 15:02:40  profilanswer
 

ha oui en effet je me souviens t'avais fait un autre topic à ce sujet
donc c'est bien les frames, mais onEnter/onExit c'est pas du tout ce qu'il faut.
en fait pour des frames tu dois ajouter le constructeur et le destructeur :
 
dans la partie publique:
 
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
 
et comme implémentation de ces deux là :
 
constructor Create(AOwner: TComponent);
begin
  liste := TStringList.Create;
  inherited;
end;
 
(liste est la liste dont on parlait plus haut, contenant les noms complets)
 
destructor Destroy; override;
begin
  liste.Free;
  inherited;
end;


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°382806
ndmax
Posté le 05-05-2003 à 15:16:25  profilanswer
 

Mais où as-tu appris tout ça antp ??? :sol:
 
 

n°382855
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-05-2003 à 15:27:21  profilanswer
 

en grande partie par moi-même :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°382875
ndmax
Posté le 05-05-2003 à 15:32:34  profilanswer
 

Déjà que je trouve que je passe pas mal
de temps devant un PC, qu'est-ce que
ça doit être avec toi !  :D  :D

n°382981
Crazy-Eagl​e
Posté le 05-05-2003 à 16:21:26  profilanswer
 

Il me met  
[Error] Unit2.pas(51): Undeclared identifier: 'Create'
[Error] Unit2.pas(53): Undeclared identifier: 'liste'
[Error] Unit2.pas(54): This form of method call only allowed in methods of derived types
[Error] Unit2.pas(57): Undeclared identifier: 'Destroy'
[Error] Unit2.pas(38): Unsatisfied forward or external declaration: 'TFrame2.Create'
[Error] Unit2.pas(39): Unsatisfied forward or external declaration: 'TFrame2.Destroy'
 
 :??:  :??:  :??:  :??:  
 
Vais me remettre au php moi  :cry:

n°383003
ndmax
Posté le 05-05-2003 à 16:32:36  profilanswer
 

Oui, j'ai déjà eu ces erreurs en essayant de faire
un Create - Destroy pour tester..
J'ai laissé tombé car c'était juste pour voir mais
je crois que j'avais su ensuite pourquoi ça faisait
ça, mais je ne m'en rappelle plus..  
 :??: Désolé !!
 
Je pense que antp va te dire sans dès qu'il le verra ;)

n°383012
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-05-2003 à 16:37:39  profilanswer
 

oups pardon :D
constructor Create(AOwner: TComponent);
->  
constructor TNomDeTaFrame.Create(AOwner: TComponent);
sinon évidement il ne fait pas le lien entre la fonction et la classe à la quelle ça se rapporte :D
(note qu'avec les deux dernières erreurs tu aurais pu le remarquer ;))


Message édité par antp le 05-05-2003 à 16:38:08

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°383036
Crazy-Eagl​e
Posté le 05-05-2003 à 16:48:51  profilanswer
 

t'es tout pardonné surtout que ca marche pas encore MDRRR
 
bon bon bon
 
Je jure que ma frame s appelle Frame2 ...
 
[Error] Unit2.pas(41): Undeclared identifier: 'Frame2'
 
Ensuite il me dit que frame2 est référencé dans Frame2 et il inclus Unit2 dans uses ... alors ca va pas si il s inclut lui meme ...
 
[Fatal Error] Unit2.pas(47): Program or unit 'Unit2' recursively uses itself
 
Alors bon .. chuis parti pomper apache la :D

n°383049
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-05-2003 à 16:53:04  profilanswer
 

elle s'appelle pas plutôt TFrame2 ? on est dans le code de la classe, c'est l'objet instancié qui s'appelle Frame2 (la variable contenant la frame quoi), la classe s'appelle tj TFrame2 je suppose


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°383080
Crazy-Eagl​e
Posté le 05-05-2003 à 17:03:47  profilanswer
 

mdrr ca devient chiant la  
 
Undeclared indentifier 'TFrame2'
 
 :hello:

n°383103
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-05-2003 à 17:11:38  profilanswer
 

bhen c'est que t'as mis un truc dans le mauvais fichier [:spamafote] sans code c'est difficile de t'aider plus :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°383112
Crazy-Eagl​e
Posté le 05-05-2003 à 17:14:44  profilanswer
 

mdr j'aime trop le [:spamafote] ^^
 
Bon comment t'es ce qu'on va faire ... faut que j'y arrive !!!
 
Je continue a chercher et si ca va pas je reviens  :jap:

n°383124
ndmax
Posté le 05-05-2003 à 17:19:32  profilanswer
 

Donne les morceaux de ton code dont tu n'es pas sûr.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  OpenDialogBox

 

Sujets relatifs
Plus de sujets relatifs à : OpenDialogBox


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)