Bonjour,
J'utilise un SpeeButton associé à une action "browseforfolder".
Je n'arrive pas à récupérer le répertoire sélectionné par un utilisateur (boite de dialogue declanchée par l'action) dans un TEdit.
Merci pour votre aide.
Bonjour,
J'utilise un SpeeButton associé à une action "browseforfolder".
Je n'arrive pas à récupérer le répertoire sélectionné par un utilisateur (boite de dialogue declanchée par l'action) dans un TEdit.
Merci pour votre aide.
A priori la propriété Directory se charge de te rendre ce que tu recherches.
Voir la documentation du shellBrowser : http://www.etsimo.uniovi.es/delphi/f...e/brwsfldr.htm
Merci pour ton aide, je ne connais pas ce site, il a l'air tres interressant.
Pour en revenir à ma question, en fait, j'ai oublié de préciser que j'avais plusieurs champs TEdit. A coté de chaque champs, j'ai placé un petit Speedbutton, chacun callé sur l'action "Browseforfolder".
Du coup, je ne sais pas placer mon code (et quel code) pour que le chemin choisi par l'utilisateur s'affiche dans le bon TEdit. Je pense qu'il y a un moyen de savoir pour l'action "Browseforfolder", qui l'a appelé, et on l'on doit placer le retour utilisateur.
Mais je n'arrive pas a voir si il faut plutot regarder du coté des événements des SpeddButton, ou de l'action.
Cordialement, François
Salut,
Tu peux pour ce faire utiliser la propriété ActionComponent qui renvoie le composant client qui a déclenché l'action.
Voilou, @+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 procedure TForm1.MonActionExecute(Sender: TObject); var SelectedFolder: String; // Ton dossier sélectionné SenderComponent: TSpeedButton; begin // ... SenderComponent := TSpeedButton(TAction(Sender).ActionComponent); if SenderComponent = SpeedButton1 then Edit1.Text := SelectedFolder else if SenderComponent = SpeedButton2 then Edit2.Text := SelectedFolder else // .... end; end;
Et bien j'ai répondu un peu trop vite... et ensuite j'ai pris un peu de vacance... alors voila, j'ai toujours un souci. Pour récupérer l'emeteur de la demande, ça a l'air de fonctionner, mais rien ne s'affiche.
J'ai essayé avec "SelectedFolder" et "SelectedDirectory", mais je n'arrive a rien.
Si sous avez encore un tout petit peu de temps pour m'aider à surmonter cette dificulté (qui me semble etre un truc de débutant)...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 procedure TFrame_config.BrowseForFolder1Execute(Sender: TObject); var SelectedDirectory: String; // Dossier sélectionné SenderComponent: TSpeedButton; begin SenderComponent := TSpeedButton(TAction(Sender).ActionComponent); if SenderComponent = SpeedButton_base then Edit_chemin_base.Text := SelectedDirectory else if SenderComponent = SpeedButton_image then Edit_chemin_image.Text := SelectedDirectory else // .... a completer plus tard ... end;
j'ai encore du chemin a faire !
François
Partager