begin process at 2010 02 10 12:52:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

ListBox OwnerDrawVariable


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ListBox OwnerDrawVariable

lundi 8 décembre 2003 à 14:28:43 | ListBox OwnerDrawVariable

Nebula

Membre Club
Bonjour à tous.

Je cherche à faire une ListBox gérant les retours à la ligne lorsque les items sont trop longs par rapport à la largeur de la ListBox, je me suis donc attelé à une ListBox en OwnerDrawVariable.

Mais le OnMeasureItem ne semble être appelé par Delphi que la première fois du rendu de l'item, les fois suivantes il semble appeler directement le OnDrawItem... Ce qui m'embête car si je change la largeur de la ListBox à l'exécution, j'aimerais qu'elle s'adapte à ses nouvelles dimensions, et son contenu avec !

M'y prendrais-je mal ou y'a t'il un petit truc à faire pour forcer le OnMeasureItem à chaque redimenssionement/changement de police ?

Petite précision : j'utilise Delphi 5.

Merci d'avance à ceux qui me répondront ;-)

Le savoir ne vaut quelque chose que s'il est partagé par tous.
mardi 18 mai 2004 à 17:22:47 | Re : ListBox OwnerDrawVariable

lychong


Salut!
Je n'ai rien contre ton code ni rien de pour non plus car à mon sens il manque quelque chose pour ceci soit complet!
C de pouvoir redessiner aussi la partie du composant vide d'item, c à dire le bas du TListBox.

Cela fait 1an que je cherche comment le redessiner si quelqu'1 le sait je vous en prie aider moi!!!
mercredi 23 février 2005 à 04:35:36 | Re : ListBox OwnerDrawVariable

atomefougere

Si quelqu'un a une réponse, elle m'interesse aussi...
mardi 14 juin 2005 à 16:01:27 | Re : ListBox OwnerDrawVariable

Nebula

Membre Club
Réponse acceptée !
Si çà vous intéresse toujours, voici ma méthode.

Dans le OnDrawItem de la ListBox en lbOwnerDrawVariable, mettre ceci au tout début de la procédure :

  Size := CheckItemSize(Index);
  if Size <> ListBoxChat.Perform(LB_GETITEMHEIGHT, Index, 0)
  then begin
    ListBoxChat.Perform(LB_SETITEMHEIGHT, Index, Size);
    ListBoxChat.Invalidate;
    Exit;
  end;


CheckItemSize étant une routine qui renvoie la taille occupée par l'item (le Height dans OnMeasureItem). Il faut également appeler ListBoxChat.Invalidate si la Form est redimensionnée (OnResize).

C'est tout ;-)


Cette discussion est classée dans : listbox, semble, largeur, ownerdrawvariable, onmeasureitem


Répondre à ce message

Sujets en rapport avec ce message

ListBox ??? [ par Fab ] Salut ,Je possede une listbox avec des doublons et je voudrais savoir comment faire pour parcourir la list et supprimer les lignes des doublons .Merci recuperer la selection d'1 ListBox [ par wittabix ] Salut,je debute en Delphi, j'ai mis u_ne ListBox dans ma form et je voudrais récuperer la selection de l'utilisateur sur cette listbox.Comment faire s Reconnaître un item dans une listbox ? [ par finipe ] Bonjour à tous !J'ai besoin d'aide je me trouve bloqué (à nouveau devrais-je dire...)J'expose mon problème : j'ai une listbox dans laquelle s'ajoute d ListBox... [ par finipe ] Bonjour à tous. Je voudrais savoir s'il y a moyen de manipuler une chaîne de caractère dans une ListBox, sachant que la fin de cette chaîne est variab 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 StatusBar et largeur Panel [ par apz ] Salut,Comment, dans un StatusBar, definir la largeur des Panels selon leurs continue ?par exemple pour affichier le jour de la date, lundi n'a pas la ajouter ligne par ligne dans une listbox [ par ELECTRORESiSTiK ] Bonsoir,Je voudrais ajouter dans une listbox toutes les lignes d'un fichier TXT mais pas avec LoadFileFromFile, de manière avec une boucle, parce que Colones dans une Listbox [ par Lowrad ] Salut... Je suis pas mal nouveau au monde du pascal et delphi...Ce que j'aimerais faire est fort simple.. j'aimerais avoir une listbox qui contient 3 mettre du texte en exposant ou indice dans une listbox [ par magicvinni ] Bonjour, Est il possible de mettre du texte en exposant ou en indice dans une TListBox du style : f1(x)=5x²+2x+1? Sinon que faut il utiliser?Question relooker un listbox [ par lnicos ] ba voilà, c souvent que je vois des programmes avec des listbox de couleur et des styles plus joli que celui par desfaux, j'aimerais savoir comment fa


Nos sponsors


Sondage...

Comparez les prix

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 : 1,076 sec (3)

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