Labels in Schleife ansprechen und Farbe ändern



  • Hi All,

    Hoff mir kann jemand helfen.

    Ich habe in meinem Projekt mehrere Forms. Auf einer habe ich ein paar Labels, die ich mit einer einer schwarz färben möchte. Hab in der Hilfe geschaut wie es geht und auch es auch begriffen, nur es funktioniert nicht. Die Labels werden nicht schwarz gefärbt. Der Befehl mit dem die Labels gefärbt werden sollten wird zwar ausgeführt nur ohne Auswirkung! Weiß echt nicht weiter!

    Hier mein Code:

    void Colour::load_Color(TForm *Source)
    {
       AnsiString Name;
       int j = 0;
       TComponent *Temp;
    
       Name = "Color" + IntToStr(j+1);
       for(int i = 0; i < Source->ComponentCount; i++)
       {
          Temp = Source->Components[i];
    
          if(Temp->ClassNameIs("TLabel"))
          {
             if(dynamic_cast<TLabel*>(Temp)->Name == Name)
             {
                //wird zwar ausgeführt nur ohne Auswirkung ??????
                dynamic_cast<TLabel*>(Temp)->Color == clBlack;
                j++;
                Name = "Color" + IntToStr(j+1);
             }
          }
       }
    }
    


  • dynamic_cast<TLabel*>(Temp)->Color = clBlack;

    *ditsch*



  • Hier mal ein Beispiel, wie's funktionieren könnte:

    int j=1;
    AnsiString LabelName = "Label"+IntToStr(j);
    
    for(int i=0; i<ComponentCount; i++)
    {
      TLabel *Label = dynamic_cast<TLabel *>(Controls[i]);
    
      if(Label)
      {
        if(Label->Name == LabelName)
        {
          Label->Color = clBlack;
          LabelName = "Label"+IntToStr(++j);
        }
      }
    }
    

Anmelden zum Antworten