cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 2009
-
4 janv. 2007 à 09:41
cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 2009
-
9 janv. 2007 à 07:08
Bonjour,
Désolé de revenir sur le sujet mais je n'ai pas encore eu de solution concrète à ce problème sans devoir utiliser un composant spécial.
Avec un TfileListBox et un Timage je récupère l'icône du fichier listé, mais j'aimerai le récupérer en tant que glift à coté du fichier dans le filelistbox.
procedure TForm1.FileListBox1Click(Sender: TObject);
Var Uicon: Hicon;
Nbr: integer;
begin
Image1.Picture := NIL;
Nbr := ExtractIcon(Form1.Handle, Pchar(FileListBox1.FileName), 0);
If Nbr = 0 then
begin
ShowMessage('Ce fichier ne contient aucune icônes.');
end
else
begin
Uicon := ExtractIcon(Form1.Handle, Pchar(FileListBox1.FileName), 0);
DrawIcon(Image1.Canvas.Handle, 0, 0, UIcon);
end;
end;
procedure TForm1.DirectoryListBox1Click(Sender: TObject);
begin
Directorylistbox1.Opencurrent;
FileListBox1.setfocus
end;
end.
cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 20092 6 janv. 2007 à 10:24
Bonjour,
Pas de réponse, pourtant ce message s'adressait principalement à DRJEROME qui filtre ses aides et ses explications alors que les amis CIREC et WHITEHIPPO entres autres n'hésites pas à trouver et à proposer à tous, une solution exploitable.
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 6 janv. 2007 à 14:43
Salut cincap,
FileListBox est un vieux compo (écrit pour Win 3.1) qui ne permet pas en lui-même de dessiner sur son Canvas.
Je te conseille donc de l'abandonner et de remplacer, p.ex, par un TListBox : il a une propriété Canvas et surtout un événement OnDrawItem qui permet, après avoir défini Style à lbOwnerdraw(...) d'afficher ce que l'on veut.
Voici un exemple simplifié de compo sur base d'un TListBox pour lister des fichiers :
type TMyFileListBox = class(TListBox)
public
procedure ListFiles(Directory: string);
end;
//...
procedure TMyFileListBox.ListFiles(Directory: string);
var SearchRec: TSearchRec;
begin
Clear;
if FindFirst(Directory + '\*.*', faAnyFile, SearchRec) = 0 then
repeat
if (SearchRec.Attr and faDirectory) <= 0 then // trouvé un fichier et non un dossier
Items.Add(SearchRec.Name);
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
Avec ceci, tu as le même résultat qu'un FileListBox, sauf à ajouter éventuellement des filtres de fichiers (*.xls...).
Bien entendu, si tu ne veux pas créer un nouveau compo, tu te sers uniquement de la procédure ci-dessus adaptée à ton ListBox.
Tu n'as plus qu'à coder l'événement OnDrawItem... mais ici, je te laisse consulter l'aide de Delphi...
cs_dugueclin
Messages postés66Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention10 juillet 2012 6 janv. 2007 à 15:19
Bonjour à tous,
Je ne pense pas que sur ce site, certains soient plus aidé que d'autres, ou que certains répondent uniquement qu'à leurs petits amis, cette question à déjà été posée par moi-même, des réponses ont été apportées, elles ne s'adressaient pas qu'à moi ou à une certaine catégorie de personne, un lien à été donné:
http://jansfreeware.com/jfdelphi.htm)
ce composant est très bien, je te le recommende vivement, il te donnera pleinement satisfaction.
Je ne pense pas qu'il existe une autre solution.
Sincères salutations et bon codding à tous !!!
Dugueclin.
cs_dugueclin
Messages postés66Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention10 juillet 2012 6 janv. 2007 à 15:21
Bonjour à tous,
Je ne pense pas que sur ce site, certains soient plus aidé que d'autres, ou que certains répondent uniquement qu'à leurs petits amis, cette question à déjà été posée par moi-même, des réponses ont été apportées, elles ne s'adressaient pas qu'à moi ou à une certaine catégorie de personne, un lien à été donné:
http://jansfreeware.com/jfdelphi.htm)
ce composant est très bien, je te le recommende vivement, il te donnera pleinement satisfaction.
Je ne pense pas qu'il existe une autre solution.
Sincères salutations et bon codding à tous !!!
Dugueclin.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 20092 6 janv. 2007 à 19:08
Bonsoir,
@ ThWilliam, merci à toi de ta réponse, je sais que c'est beaucoup plus facile d'utiliser un TlistBox, mais comme l'ami DRJEROME soumettait un exemple (je précise sans le code) à la demande de Dugueclin, il aurait été intéressant pour tout le monde de connaître sa méthode.
@ Duegueclin, forcément que les questions posées s'adressent à tout le monde sur ce site, et que les réponses sont données gratuitement afin d'enrichir les connaissances de chacun.
Par contre, tu conviendras avec moi avant que tu ne repostes cette question, l'ami DRJEROME t'avais fait parvenir un exécutable montrant la possibilité apparemment sans composant de réaliser ce que tu demandais, sans pour cela te faire avancer (extrait de son message du 19/12/2006 en s'adressant à toi).
"je conclue que mon exemple ne te convenais pas...