Ajout d'images à une liste de chaînes

De RAD Studio
Aller à : navigation, rechercher

Remonter à Ajout d'objets graphiques à une liste de chaînes

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  { iterate through all possible drives }
   begin
     case GetDriveType(Drive + ':/') of  { positive values mean valid drives }
      DRIVE_REMOVABLE:  { add a tab }
        AddedIndex := DriveTabSet.Tabs.AddObject(Drive, Floppy.Picture.Graphic);
      DRIVE_FIXED:  { add a tab }
        AddedIndex := DriveTabSet.Tabs.AddObject(Drive, Fixed.Picture.Graphic);
      DRIVE_REMOTE:  { add a tab }
        AddedIndex := DriveTabSet.Tabs.AddObject(Drive, Network.Picture.Graphic);
     end;
     if UpCase(Drive) = UpCase(DirectoryOutline.Drive) then  { current drive? }
      DriveTabSet.TabIndex := AddedIndex;  { then make that current tab }
   end;
 end;
 void __fastcall TFMForm::FormCreate(TObject *Sender) {
    int AddedIndex;
    char DriveName[4] = "A:\\";
    for (char Drive = 'A'; Drive <= 'Z'; Drive++) // try all possible drives
    {
 	DriveName[0] = Drive;
 	switch (GetDriveType(DriveName)) {
 	case DRIVE_REMOVABLE: // add a list item
 		DriveName[1] = '\0'; // temporarily make drive letter into string 
 		AddedIndex = DriveList->Items->AddObject(DriveName,
 				Floppy->Picture->Graphic);
 		DriveName[1] = ':' // replace the colon
 				break;
 	case DRIVE_FIXED: // add a list item
 		DriveName[1] = '\0'; // temporarily make drive letter into string
 		AddedIndex = DriveList->Items->AddObject(DriveName,
 				Fixed->Picture->Graphic);
 		DriveName[1] = ':' // replace the colon
 				break;
 	case DRIVE_REMOTE: // add a list item
 		DriveName[1] = '\0'; // temporarily make drive letter into string
 		AddedIndex = DriveList->Items->AddObject(DriveName,
 				Network->Picture->Graphic);
 		DriveName[1] = ':' // replace the colon
 					break;
 	}
 		if ((int)(Drive - 'A') == getdisk()) // current drive?
 					DriveList->ItemIndex = AddedIndex;
 		// then make that the current list item
 	}
 }

Voir aussi