TImageList/fr
│
English (en) │
français (fr) │
русский (ru) │
中文(中国大陆) (zh_CN) │
TImageList est un composant qui fournit une list d'images qui peut être utilisée dans d'autres composants comme TToolBar of TActionList. Le composant TImageList est disponible depuis l'onglet Common Controls de la palette de composants.
Exemple avec un TComboBox
Pour utiliser un TImageList, déposez un objet TImageList sur la fiche. Dans cet exemple, nous avons besoin de six images.
Toutes les images doivent être de la même taille. Si deux tailles d'image doivent être utilisées, alors deux listes TImageList doivent être utilisées.
Définissez la largeur et la hauteur des images dans l'inspecteur d'objet ; dans ce cas 50px de large par 18px de haut.
Définissez le style à csOwnerDrawFixed.
Double-cliquez sur l'icône du TImageList pour ouvrir l'éditeur associé. Assurez-vous que les icônes sont affichées correctement une fois sélectionnée. Si elles sont plus petites qu'attendu, contrôlez la taille dans l'inspecteur d'objet F11. Vous aurez peut-être à recharger les images.
Placez un TComboBox sur la fiche et nommez-le cbSymbols.
Dans l'événement FormCreate de la fiche, entrez le code suivant :
cbSymbols.Items.Clear;
for I := 0 to 5 do
cbSymbols.Items.Add('');
cbSymbols.ItemIndex := 0;
Cela écrira 6 entrées blanches, et sélectionne la première.
Dans l'événement OnDrawItem pour cbSymbols, placez le code suivant :
procedure TMyForm.cbSymbolsDrawItem(
aControl: TWinControl;
iIndex: Integer;
aRect: TRect;
aState: TOwnerDrawState );
var
cnv: TCanvas;
begin
if not (aControl is TComboBox) then exit;
cnv := TComboBox( aControl ).Canvas;
Imagelist1.Draw( cnv, aRect.Left+2, aRect.Top+2, iIndex );
end;
Les ajustements (+2) sont là pour centrer l'image dans l'élément, si nécessaire.
Exemple avec des TSpeedButton
Ajoutez des images dans la boîte d'images comme dans l'exemple précédent et utilisez :
SpeedButton1.GetBitmap(iIndex,spbTCNext.Glyph);
Voir aussi