Announcement

Collapse
No announcement yet.

TLabel->Color verweigert Dienst

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TLabel->Color verweigert Dienst

    Hallo,<p>
    in meinem Projekt kann ich keine Hintergrundfarbe mehr für Labels setzen (LabelName->Color). In einer älteren Version gehts noch. Auch wenn ich ein brandneues Label auf das Formular ziehe, ihm mit dem Objektinspektor eine Farbe zuweise (die da auch zu sehen ist) und dann das Programm starte, hat das Label die Hintergrundfarbe anstatt der eingestellten. Gibts da irgendeinen Schalter den ich versehentlich gedrückt hab???
    <p>
    Danke und Gruß<p>
    Armin

  • #2
    Armini,

    möglicherweise ist die Label-Eigenschaft <b>Transparent</b> auf <b><i>true</i></b> gestellt, denn ansonsten wüßte ich keine Eigenschaft, die die Hintergrundfarbe ausblendet

    Comment


    • #3
      Hallo Uwe,<p>
      nein, leider nicht, es passiert ja auch bei einem neuen (Test)Label das vom Programm überhaupt nicht angefasst wird und bei dem alle Defaults - ausser eben der Hintergrundfarbe - unangetastet bleiben. Die Hintergrundfarbe die ich einstelle ist während der Laufzeit einfach nicht zu sehen.
      <p>
      Gruß Armi

      Comment


      • #4
        Hallo, Armini!

        Zeigt sich denn dieses Verhalten auch, wenn Du die Farbe während der Laufzeit änderst?
        <pre>
        ...
        TLabel1* Label1;
        TLabel2* Label2;
        TButton* Button1;
        ...
        void __fastcall Form1::Button1OnClick(TObject* Sender)
        {
        for(unsigned long color=0; color<0x1000000; color+=0x08)
        {
        Label1->Color= color;
        Label2->Caption=IntToHex(__int64(color),6);
        Labe11->Update();
        Label2->Update();
        }
        }</pre>
        (Programmcode ohne Programmumgebung geschrieben

        Comment


        • #5
          Korrektur und Nachtag

          Der Funktinsaufruf muß standardmäßig natürlich lauten:

          void __fastcall Form1::Button1Click(TObject* Sender)

          Um die Warnmeldung zu vermeiden, ist zu schreiben:

          Label1->Color= TColor(color);

          Der Aufruf der Methode Update() ist für Label2 entbehrlich.

          Zur Vergewisserung noch die Frage gestellt:
          Ist der Caption-Inhalt von Label1 nicht leer und wenn doch, ist AutoSize von Label1 auf false gesetzt?

          Gruß

          Comment


          • #6
            Hallo Uwe,<p>
            ja, auch Änderungen während der Laufzeit werden ignoriert, das Label hat immer die Farbe der Groupbox in der es plaziert ist, aber ParentColor ist auf false gesetzt. Der Text des Labels ist zu sehen und bei dem klappt es auch mit der Farbe, also sollte AutoSize keine Rolle spielen. Komischerweise passiert das auch mit einem neuen Label, dem von vorneherein eine Farbe zugewiesen wird (und natürlich auch ParentColor=false gesetzt ist), aber nicht mit anderen Objekten. Sieht fast so aus als ob es eine globale Einstellung gäbe die Labels dazu zwingt die Farbe des übergeordneten Controls zu übernehmen, unabhängig wie ParentColor gesetzt ist... und irgendwie hab ich die wohl mal unbemerkt irgendwo aktiviert.<p>
            Danke auf jeden Fall für Deine Mühe<p>
            Gruß Armi

            Comment

            Working...
            X