Announcement

Collapse
No announcement yet.

Font.Color ändern wenn TEdit.enabled:=False

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

  • Font.Color ändern wenn TEdit.enabled:=False

    Hallo alle,

    wie kann ich Font.Color ändern wenn TEdit.enabled:=False.
    Den Hintergrund ändern ins kein Problem nur die Schriftfarbe bleibt grau.

    Kennt jemand eine Lösung

    Danke
    Ragnar

  • #2
    Glaube, dass es da keine so einache Lösung gibt, wenn Du nicht eine neue Edit-Komponente ableiten möchtest.
    Falls Du die Wahl hast, setze TEdit.ReadOnly := true statt TEdit.enabled := false, dann kannst Du die Font.Color setzen

    Comment


    • #3
      Danke Reinhard für Deine Antwort.
      Nur hilfts nix. Ich kann die Felder nicht auf Readonly:=True setzten mein Kunde will einfach nicht, das man da reinklicken kann.

      Also ich habe es schon hinbekommen den Hintergrund zu ändern :
      <PRE>
      procedure TNewEdit.CMEnabledChanged(var Message: TMessage);
      begin
      //tu irgendwas
      inherited ;
      end ;
      </PRE>
      Nur muß ich jetzt irgendwie CN_DRAWITEM abfangen um die Fontfarbe zu ändern.

      Hatt jemand 'ne Idee?

      Gruß Ragna

      Comment


      • #4
        Hallo Ragnar,<br>
        mach es doch so:<br>
        <pre>
        <font face="Verdana" size="1" color="#000000">procedure TNewEdit.CMEnabledChanged(var Message: TMessage);
        begin
        If Enabled then
        begin
        Color:=clWhite;
        Font.Color:=clBlack;
        end
        else
        begin
        Color:=clGray;
        Font.Color:=clWhite;
        end;
        inherited;
        end;</font>
        </pre&gt

        Comment


        • #5
          Oder unübersichtlicher aber kürzer:

          <PRE>
          procedure TNewEdit.CMEnabledChanged(var Message: TMessage);
          const
          FColor : array[boolean]of TColor = (clGrayText,clWindowText);
          BColor : array[boolean]of TColor = (clBtnFace,clWindow);
          begin
          Color := BColor[Enabled];
          Font.Color := FColor[Enabled];<br>
          inherited;
          end;
          </PRE>

          ;o)<br>
          ´tschuldigung, Jens.<br><br>
          Gruß,<br>
          Mathias

          Comment


          • #6
            Das funktioniert nicht, ich hab das gleiche Problem und suche eine Lösun

            Comment


            • #7
              Einfachste Lösung:<br>
              Das TEdit in ein TPanel setzen und dann:<br>
              <pre>
              Panel.Height := Edit.Height;
              Edit.Align := alClient;
              </pre>
              Dann kann einfach Panel.Enabled := False gesetzt werden. Das Edit-Feld bleibt enabled, es kann also die Farbe geändert und trotzdem nicht reingeklickt werden.<br><br>
              MfG Ka

              Comment

              Working...
              X