Afficher : Delphi
C++
Préférences d'affichage
Ajout d'images à une liste de chaînes
De RAD Studio
Remonter à Manipulation des contrôles - Index
Une fois que vous avez des images graphiques dans une application, vous pouvez les associer aux chaînes de la liste. Vous pouvez soit ajouter les objets en même temps que les chaînes, soit les associer à des chaînes qui ont déjà été ajoutées. Si vous disposez de toutes les données dont vous avez besoin, vous ajouterez sans doute les chaînes et les objets en même temps.
L'exemple suivant montre comment ajouter des images à une liste de chaînes. Ce code est extrait d'une application de gestion de fichiers dans laquelle chaque lecteur correct est représenté par une lettre et est associé à un bitmap indiquant le type du lecteur. L'événement OnCreate se présente comme suit :
procedure TFMForm.FormCreate(Sender: TObject); var Drive: Char; AddedIndex: Integer; begin for Drive := 'A' to 'Z' do { itérer sur tous les lecteurs possibles } begin case GetDriveType(Drive + ':/') of { une valeur positive indique un lecteur correct } DRIVE_REMOVABLE: { ajouter un onglet } AddedIndex := DriveTabSet.Tabs.AddObject(Drive, Floppy.Picture.Graphic); DRIVE_FIXED: { ajouter un onglet } AddedIndex := DriveTabSet.Tabs.AddObject(Drive, Fixed.Picture.Graphic); DRIVE_REMOTE: { ajouter un onglet } AddedIndex := DriveTabSet.Tabs.AddObject(Drive, Network.Picture.Graphic); end; if UpCase(Drive) = UpCase(DirectoryOutline.Drive) then { lecteur actif ? } DriveTabSet.TabIndex := AddedIndex; { en faire l'onglet actif } end; end;
void __fastcall TFMForm::FormCreate(TObject *Sender) { int AddedIndex; char DriveName[4] = "A:\\"; for (char Drive = "A"; Drive <= "Z"; Drive++) // essayer tous les lecteurs possibles { DriveName[0] = Drive; switch (GetDriveType(DriveName)) { case DRIVE_REMOVABLE: DriveName[1] = "\0"; // mettre temporairement la lettre du lecteur dans une chaîne AddedIndex = DriveList->Items->AddObject(DriveName, Floppy->Picture->Graphic); DriveName[1] = ":" // remplacer les deux points break; case DRIVE_FIXED: DriveName[1] = "\0"; // mettre temporairement la lettre du lecteur dans une chaîne AddedIndex = DriveList->Items->AddObject(DriveName, Fixed->Picture->Graphic); DriveName[1] = ":" // remplacer les deux points break; case DRIVE_REMOTE: DriveName[1] = "\0"; // mettre temporairement la lettre du lecteur dans une chaîne AddedIndex = DriveList->Items->AddObject(DriveName, Network->Picture->Graphic); DriveName[1] = ":" // remplacer les deux points break; } if ((reinterpret_cast<int>(Drive - "A")) == getdisk()) // lecteur actif ? DriveList->ItemIndex = AddedIndex; // puis en faire l'élément de liste actif } }