Réglage de la liste déroulante de la largeur de la zone de liste déroulante
Lorsque la longueur d'une chaîne dans une liste déroulante dépasse la largeur de la zone de liste déroulante, il y a 3 choses qui peut être fait qu'ils sont
Raccourcir la chaîne (pas une très bonne solution)
Ajouter une barre de défilement horizontale
Modifier la largeur de la liste déroulante.
La fonction suivante permet de réinitialiser la largeur de la zone de liste déroulante dans une zone de liste déroulante.
Elle prend 2 paramètres (option 1).
zone de liste déroulante est le TComboBox whos déroulant largeur est d'être changé.
Largeur est un paramètre facultatif spécifiant la largeur de la liste déroulante. Si
la largeur est inférieure à la largeur de la zone de liste déroulante puis ce paramètre sera ignoré et la largeur peut être réglée à la chaîne la plus longue dans la zone de liste déroulante.
procédure SetComboDropDownWidth(zone de liste déroulante: TComboBox Largeur: Entier = -1)
var
& nbsp & nbsp j', TextLen: Longint
& nbsp & nbsp lf: LOGFONT
& nbsp & nbsp f: HFONT
begin
& nbsp & nbsp si Largeur < ComboBox.Largeur puis commencer
& ! & ! & ! & nbsp FillChar(lf,SizeOf(lf),0)
& ! & ! & ! & nbsp StrPCopy(lf.lfFaceName, zone de liste déroulante.La police.Nom)
& ! & ! & ! & nbsp lf.lfHeight := zone de liste déroulante.La police.Hauteur
& ! & ! & ! & nbsp lf.lfWeight := FW_NORMAL
& ! & ! & ! & nbsp si fsBold dans la zone de liste déroulante.La police.Style puis
& ! & ! & ! & ! & ! & nbsp lf.lfWeight := lf.lfWeight ou FW_BOLD
& ! & ! & ! & nbsp f := CreateFontIndirect(lf)
& ! & ! & ! & nbsp si (f <> 0) then
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & nbsp zone de liste déroulante.Toile.Poignée := GetDC(Zone De Liste Déroulante.La poignée)
& ! & ! & ! & ! & ! & ! & ! & nbsp SelectObject(zone de liste déroulante.Toile.Poignée,f)
& ! & ! & ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp for I := 0 dans la zone de liste déroulante.Éléments.Comptez -1 do begin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp TextLen := zone de liste déroulante.Toile.TextWidth(Zone De Liste Déroulante.Les éléments[I])
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si TextLen > Largeur
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Largeur := TextLen
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp (* Standard ComboBox dessin est Rect.Gauche 2,
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ajout de l'espacement supplémentaire des décalages de cette *)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Inc(Largeur, GetSystemMetrics(SM_CYVTHUMB)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp GetSystemMetrics(SM_CXVSCROLL))
& ! & ! & ! & ! & ! & ! & ! & nbsp enfin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ReleaseDC(zone de liste déroulante.La Poignée, La Zone De Liste Déroulante.Toile.La poignée)
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp enfin
& ! & ! & ! & ! & ! & ! & ! & nbsp DeleteObject(f)
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
& nbsp & nbsp fin
& nbsp & nbsp SendMessage(zone de liste déroulante.Poignée, CB_SETDROPPEDWIDTH, Largeur, 0)
fin
salutations
Si Carter
Orcka Développement
Reglage de la liste deroulante de la largeur de la zone de liste deroulante
Reglage de la liste deroulante de la largeur de la zone de liste deroulante : Plusieurs milliers de conseils pour vous faciliter la vie.
Lorsque la longueur d'une chaîne dans une liste deroulante depasse la largeur de la zone de liste deroulante, il y a 3 choses qui peut etre fait qu'ils sont
Raccourcir la chaîne (pas une tres bonne solution)
Ajouter une barre de defilement horizontale
Modifier la largeur de la liste deroulante.
La fonction suivante permet de reinitialiser la largeur de la zone de liste deroulante dans une zone de liste deroulante.
Elle prend 2 parametres (option 1).
zone de liste deroulante est le TComboBox whos deroulant largeur est d'etre change.
Largeur est un parametre facultatif specifiant la largeur de la liste deroulante. Si
la largeur est inferieure a la largeur de la zone de liste deroulante puis ce parametre sera ignore et la largeur peut etre reglee a la chaîne la plus longue dans la zone de liste deroulante.
procedure SetComboDropDownWidth(zone de liste deroulante: TComboBox Largeur: Entier = -1)
var
& nbsp & nbsp j', TextLen: Longint
& nbsp & nbsp lf: LOGFONT
& nbsp & nbsp f: HFONT
begin
& nbsp & nbsp si Largeur < ComboBox.Largeur puis commencer
& ! & ! & ! & nbsp FillChar(lf,SizeOf(lf),0)
& ! & ! & ! & nbsp StrPCopy(lf.lfFaceName, zone de liste deroulante.La police.Nom)
& ! & ! & ! & nbsp lf.lfHeight := zone de liste deroulante.La police.Hauteur
& ! & ! & ! & nbsp lf.lfWeight := FW_NORMAL
& ! & ! & ! & nbsp si fsBold dans la zone de liste deroulante.La police.Style puis
& ! & ! & ! & ! & ! & nbsp lf.lfWeight := lf.lfWeight ou FW_BOLD
& ! & ! & ! & nbsp f := CreateFontIndirect(lf)
& ! & ! & ! & nbsp si (f <> 0) then
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & nbsp zone de liste deroulante.Toile.Poignee := GetDC(Zone De Liste Deroulante.La poignee)
& ! & ! & ! & ! & ! & ! & ! & nbsp SelectObject(zone de liste deroulante.Toile.Poignee,f)
& ! & ! & ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp for I := 0 dans la zone de liste deroulante.Elements.Comptez -1 do begin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp TextLen := zone de liste deroulante.Toile.TextWidth(Zone De Liste Deroulante.Les elements[I])
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si TextLen > Largeur
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Largeur := TextLen
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp (* Standard ComboBox dessin est Rect.Gauche 2,
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ajout de l'espacement supplementaire des decalages de cette *)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Inc(Largeur, GetSystemMetrics(SM_CYVTHUMB)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp GetSystemMetrics(SM_CXVSCROLL))
& ! & ! & ! & ! & ! & ! & ! & nbsp enfin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ReleaseDC(zone de liste deroulante.La Poignee, La Zone De Liste Deroulante.Toile.La poignee)
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp enfin
& ! & ! & ! & ! & ! & ! & ! & nbsp DeleteObject(f)
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
& nbsp & nbsp fin
& nbsp & nbsp SendMessage(zone de liste deroulante.Poignee, CB_SETDROPPEDWIDTH, Largeur, 0)
fin
salutations
Si Carter
Orcka Developpement
Réglage de la liste déroulante de la largeur de la zone de liste déroulante
By commentfaire
Réglage de la liste déroulante de la largeur de la zone de liste déroulante : Plusieurs milliers de conseils pour vous faciliter la vie.