label控件的enable设为false时,变成灰色,有其他方法可以变成其他颜色吗

解决方案 »

  1.   

    //VCl里是写死的,你可以重载后自己做一个控件
    procedure TCustomLabel.DoDrawText(var Rect: TRect; Flags: Longint);
    var
      Text: string;
    begin
      Text := GetLabelText;
      if (Flags and DT_CALCRECT <> 0) and ((Text = '') or FShowAccelChar and
        (Text[1] = '&') and (Text[2] = #0)) then Text := Text + ' ';
      if not FShowAccelChar then Flags := Flags or DT_NOPREFIX;
      Flags := DrawTextBiDiModeFlags(Flags);
      Canvas.Font := Font;
      if not Enabled then
      begin
        OffsetRect(Rect, 1, 1);
        Canvas.Font.Color := clBtnHighlight;
        DrawText(Canvas.Handle, PChar(Text), Length(Text), Rect, Flags);
        OffsetRect(Rect, -1, -1);
        Canvas.Font.Color := clBtnShadow;
        DrawText(Canvas.Handle, PChar(Text), Length(Text), Rect, Flags);
      end
      else
        DrawText(Canvas.Handle, PChar(Text), Length(Text), Rect, Flags);
    end;
      

  2.   

    LZ 我写了一个象淘宝一样的控件 可以判断输入什么对应的LABEL就显示什么样的颜色以及错误的提示 如果要的话加MSN: [email protected]