begin process at 2010 02 10 02:24:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > [ASTUCE] COMMENT VOIR UN ITEM, D'UNE LISTBOX, TRONQUÉ DANS UN HINT

[ASTUCE] COMMENT VOIR UN ITEM, D'UNE LISTBOX, TRONQUÉ DANS UN HINT


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Classé sous :Astuce, Item, tronqué, Hint, ListBox Niveau :Débutant Date de création :24/03/2009 Date de mise à jour :24/03/2009 22:41:48 Vu / téléchargé :1 836 / 211

Auteur : cirec

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Un code tout ce qu'il y a de plus simple
Tellement simple et évident qu'il devrait être disponible d'origine dans la VCL.
Mais voilà ... il n'y est pas ... de quoi il est question ?

il vous est certainement déjà arrivé d'avoir des Items tronqués dans une TListBox ... qui n'a jamais rêvé de pouvoir les voir (lire) en entier dans un Hint ?

Ben ne rêvez plus ... c'est chose faite :D
ps: pour que cette surcharge du composant TListBox soit reconnue et utilisée il faut impérativement déclarer l'unité "lbExtHints" après l'unité "StdCtrls"

une deuxième possibilité est ajouter une ScrollBar horizontale
bien que ce n'est pas le but de ce code j'y ai quand même ajouté cette méthode.
ps2: ne sachant pas si cette propriété existe avant D7 ...
il y a une alternative dans le code (en commentaire)
  



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

24 mars 2009 22:41:49 :
Ajout de directives de compilations pour les versions antérieurs à D7

 Sources du même auteur

Source avec Zip Source avec une capture BITMAP 32BITS INTÉGRÉ À LA VCL (TIMAGE, TPICTURE, TBITMAP, T...
Source avec Zip Source avec une capture TEXTE GRAPHIQUE AVEC CONTOUR, OMBRE ET TEXTURE EN API VERSIO...
Source avec Zip Source avec une capture TEXTE GRAPHIQUE AVEC CONTOUR, OMBRE ET TEXTURE EN API
Source avec Zip Source avec une capture ROTATION (RAPIDE) DE BITMAP (À 360°) EN PUR GDI
Source avec Zip Source avec une capture EFFETS ZOOM & MIROIR SUR BITMAP

 Sources de la même categorie

Source avec Zip Source avec une capture UTILISER UNE DLL INCLUSE EN RESSOURCES par Bacterius
Source avec Zip Source avec une capture IMAGE DANS UN TDBGRID par HAFTARIFOUAD
Source avec Zip Source avec une capture MESSAGEDLG PERSONNALISÉ par HAFTARIFOUAD
Source avec Zip Source avec une capture COMMENT DESSINER SUR UN TCANVAS LE TEXTE D'UNE FORMULE CHIMI... par pseudo3
Source avec Zip Source avec une capture COMPRENDRE UN PEU PLUS LES TABLEAUX EN RXRICHEDIT par ODLCITEINFO

 Sources en rapport avec celle ci

Source avec Zip CHAINLISTS, LISTE CHAINÉE par f0xi
Source avec Zip Source avec une capture HINT PAR CELLULE DANS UN TDBGRID par HAFTARIFOUAD
Source avec Zip Source avec une capture COMPOSANT "LISTE DE CHOIX ORDONNÉS DEPUIS UNE LISTE TRIÉE" par jihelb
Source avec Zip Source avec une capture DEPLACER LES ITEMS D'UNE LISTBOX VERS UNE AUTRE PAR DRAG AND... par japee
Source avec Zip Source avec une capture TRI DANS LISTBOX/COMBOBOX (TSTRINGS) par MAURICIO

Commentaires et avis

Commentaire de Bacterius le 24/03/2009 22:08:40

Juste pour info, il semblerait que la scrollbar horizontale n'existe pas sous Delphi 6 Personal Edition.
Donc Delphi 7 minimum je pense :)

Cordialement, Bacterius !

Commentaire de Caribensila le 24/03/2009 22:27:31

... De toute façon la scrollbar horizontale n'est pas ergonomique et me tape sur les nerfs.

Mais j'aurais mis "Application.HintPause := 0;", moi.
Parce que attendre 1/2 seconde, ça me tape aussi sur les nerfs. Mais j'dois être particulièrement nerveux en ce moment...  lolll

Merci pour mes nerfs, Cirec.

Commentaire de cirec le 24/03/2009 22:35:53 administrateur CS

"il semblerait que la scrollbar horizontale n'existe pas sous Delphi 6 Personal Edition."
c'est pour ça qu'il y a le code en commentaire :D

"De toute façon la scrollbar horizontale n'est pas ergonomique et me tape sur les nerfs."
quel est le problème ?
chez moi elle fonctionne très bien et se comporte comme n'importe quelle autre ScrollBar !!!

"Mais j'aurais mis "Application.HintPause := 0;""
c'est ce qui était au départ mais le comportement n'est pas correcte ... puisqu'à chaque mouvement de la souris un Hint apparaissait ... pas très cool :(

Commentaire de Caribensila le 24/03/2009 22:55:59

« Quel est le problème ? »
Le problème est que quand tu vois la fin, tu ne vois plus le début.  lolll
C'est sûr que ta ScrollBar se comporte comme toutes les ScrollBar. Mais je précise que toutes les ScrollBar me tapent sur les nerfs.
C'est pour cette raison que ton source fait progresser l'ergonomie pour les nerveux comme moi.

Pour le HintPause=0, après essai, je ne trouve pas que c'est pas cool.
Peut-être que afficher le Hint juste à la place de l'Item concerné et de changer la couleur par défaut de son fond par la couleur du fond de la ListBox serait intéressant pour bien montrer à l'utilisateur que ce n'est pas une bulle d'aide habituelle (qu'on ne lit plus).

Commentaire de cirec le 25/03/2009 13:41:35 administrateur CS

@Bacterius:
la ScrollBar Horizontale fonctionne t-elle maintenant sous D6 ou non ?

@Caribensila:
changer la couleur oui c'est pas un souci
mais l'afficher à la place de l'item concerné me semble "bancal" :D
c'est pas impossible mais il faudrait pour cela réécrire une classe THintWindow afin de tout gérer correctement.
Pourquoi ?
ben déjà si tu forces l'affichage du hint à une position précise tu perds le positionnement automatique de la bulle. Exemple si tu mets la fiche de la démo au bord droit de l'écran et tu choisis l'item le plus long il tient automatiquement compte de la taille de l'écran et déplace la bulle vers la gauche de façon à ce qu'elle s'affiche entièrement...

Commentaire de Francky23012301 le 25/03/2009 15:31:36

Salut,

la ScrollBar Horizontale fonctionne sous D6 maintenant.
Moi je l'aime bien cette petite astuce : elle peut être bien utile. Tu devrais en faire un composant en y incorporant des fonctionnalités comme la couleur (Pour rejoindre la proposition de Cari), ainsi que la possibilité de paramètrer le temps d'attente avant l'affichage ;).

Commentaire de Debiars le 25/03/2009 15:39:58

En D7, TListBox comporte une propriété ScrollWidth qui peut être modifiée en cours d'exécution...

Testée (rapido) avec ceci :

procedure TForm1.ListBox1Click(Sender: TObject);
var  lg : integer;
begin
  lg := Canvas.TextWidth(ListBox1.Items[ListBox1.ItemIndex]);
  if Listbox1.Width < lg then
    Listbox1.ScrollWidth := lg;
end;

Bien sûr, il faut cliquer sur la ligne..., ça peut énerver... :D

@Cari, méfie-toi , rouge comme tu l'est, tu risque l'explosion...

Commentaire de cirec le 25/03/2009 16:35:04 administrateur CS

@Francky:
merci pour l'info
oui mais non ... ^^
si j'ai choisi cette méthode c'est justement pour éviter de créer un nouveau composant et de devoir l'installer ;)
y'en a marre d'avoir des tonnes de composants à installer etc.etc. le pire étant les packs de 36 composants qu'il faut impérativement installer alors qu'un seul pourrait et je dis bien pourrait, te servir. Alors non je ne souhaite pas contribuer a cette "décharge" de composants ... j'installe déjà pas la JVCL alors ... hein :O
La création et l'installation de composants c'est en dernier recours ... seulement quand il n'y a pas d'autres possibilités.

Mais si ça te branche de le faire ... vas y ;)

@Debiars:
oui je le sais (voir la description du code)
j'ai juste ajouté cette possibilité de ScrollBar horizontale pour ceux qui ne savait pas qu'elle existait ... mais le but principal de ce code c'est l'affichage des textes tronquées dans des bulles.

  

Commentaire de FENETRES le 27/03/2009 15:54:53 10/10

Une astuce simple et efficace... comme j'aime !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Supprimer Item ListBox [ par RocketSpawn ] Ayant 2 liste box, j'aimerais que lorsque je supprime un item dans la première cela supprime l'item dans la deuxième :Dsans passer par ListBox.DeleteS String déjà existante... [ par finipe ] Bonjour à tous ! J'ai deux problèmes à vous soumettre :- Dans un programme je passe des items d'une combobox à une listbox, d'un simple clique de bout Listbox et TitemMenu [ par Don0Choa ] Slt,voila j'ai une listbox sur ma form mais je créé dynamiquement les items, j'ai donc créé un évènement pour le OnClick que j'applique à chaque nouve Hauteur d'une Item dans une ListBox [ par divadav ] Bonjour tout le monde !!Je suis confront&#233; &#224; un petit probl&#232;me... Dans un composant TListBox, je veux dessiner des images... J'utilise d Item d'origine dans une ListBox ? [ par Val08000 ] Bonjour,Je voudrais savoir si il est possible et comment faire pour&nbsp;inserer des Items non modifiables dans une ListBox ?Pour info, je programme e Sélectionne un item d'un listbox et le faire apparaitre dans un Edit [ par Francky23012301 ] Salut &#224; tous,Voila j'ai un listobox qui contient une liste de&nbsp;strings et je voudrais pouvoir s&#233;lectionner un de ses strings et faire ap Insérer un item à un endroit précis dans une Listbox [ par Francky23012301 ] Salut, Voila j'ai une listbox contenant une liste de donnée. En cliquant sur un item j'ai une sous liste associée qui apparait : manque de chance ell Controle d'un drivecombobox par une listbox [ par Francky23012301 ] Salut à tous Voilà j'ai un drivecombobox et directorylistbox et un filelistbox. Je récupère les items respectivement dans des listbox 1,2 et 3. Voilà Comment faire la somme d'items [ par Francky23012301 ] Salut à tous : Voila j'ai une listbox contenant différents items : J'ai besoin de récuperer dans un TEdit l'ensemble des itemps par exemple "Edit1.t Forcer la sélection d'un item de ListBox [ par Barth_taulier ] Bonjour, je vous explique ce que je voudrais faire: Je voudrais pouvoir s&#233;lectionner un item dans ma ListBox logiciellement et non manuellement (


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales