Grafiken zu einer Stringliste hinzufügen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Mit Steuerelementen arbeiten - Index

Nachdem Sie Ihrer Anwendung Grafiken hinzugefügt haben, können Sie diese den Strings einer Stringliste zuordnen. Die Grafikobjekte können entweder zusammen mit den Strings eingefügt oder vorhandenen Strings zugeordnet werden. Wenn alle benötigten Daten verfügbar sind, sollten Objekte und Strings immer gemeinsam bearbeitet werden.

Das folgende Beispiel zeigt, wie Grafiken in eine Stringliste eingefügt werden. Der Quelltext ist Teil einer Dateiverwaltung, in der neben den Laufwerksbuchstaben Bitmaps für den Typ des Laufwerks angezeigt werden. Die Ereignisbehandlungsroutine für OnCreate sieht folgendermaßen aus:

 procedure TFMForm.FormCreate(Sender: TObject);
 var
   Drive: Char;
   AddedIndex: Integer;
 begin
   for Drive := 'A' to 'Z' do { alle möglichen Laufwerke durchlaufen }
   begin
     case GetDriveType(Drive + ':/') of  { positive Werte bedeuten gültige Laufwerke  }
      DRIVE_REMOVABLE:  { Register hinzufügen }
        AddedIndex := DriveTabSet.Tabs.AddObject(Drive, Floppy.Picture.Graphic);
      DRIVE_FIXED:  { Register hinzufügen }
        AddedIndex := DriveTabSet.Tabs.AddObject(Drive, Fixed.Picture.Graphic);
      DRIVE_REMOTE:  { Register hinzufügen }
        AddedIndex := DriveTabSet.Tabs.AddObject(Drive, Network.Picture.Graphic);
     end;
     if UpCase(Drive) = UpCase(DirectoryOutline.Drive) then { aktuelles Laufwerk? }
      DriveTabSet.TabIndex := AddedIndex;  { zum aktuellen Register machen }
   end;
 end;
 void __fastcall TFMForm::FormCreate(TObject *Sender) {
   int AddedIndex;
   char DriveName[4] = "A:\\";
   for (char Drive = "A"; Drive <= "Z"; Drive++) // alle möglichen Laufwerke versuchen
   {
       DriveName[0] = Drive;
       switch (GetDriveType(DriveName)) {
       case DRIVE_REMOVABLE: // einen Listeneintrag hinzufügen
               DriveName[1] = "\0"; // Laufwerksbuchstaben temporär in String speichern
               AddedIndex = DriveList->Items->AddObject(DriveName,
                               Floppy->Picture->Graphic);
               DriveName[1] = ":" // Doppelpunkt ersetzen
                               break;
       case DRIVE_FIXED: // einen Listeneintrag hinzufügen
               DriveName[1] = "\0"; // Laufwerksbuchstaben temporär in String speichern
               AddedIndex = DriveList->Items->AddObject(DriveName,
                               Fixed->Picture->Graphic);
               DriveName[1] = ":" // Doppelpunkt ersetzen
                               break;
       case DRIVE_REMOTE: // einen Listeneintrag hinzufügen
               DriveName[1] = "\0"; // Laufwerksbuchstaben temporär in String speichern
               AddedIndex = DriveList->Items->AddObject(DriveName,
                               Network->Picture->Graphic);
               DriveName[1] = ":" // Doppelpunkt ersetzen
                                       break;
       }
               if ((int)(Drive - 'A') == getdisk()) // aktuelles Laufwerk?
                                       DriveList->ItemIndex = AddedIndex; 
               // zum aktuellen Listeneintrag machen
       }
 }

Siehe auch