label控件是否有凹陷的效果?

解决方案 »

  1.   

    好多第三方控件都具有这方面的功能
    当然你也可以使用一组label,每一个label设置不同的颜色,设置他们为透明的,来实现立体效果
      

  2.   

    用additional面板上的statictext控件
      

  3.   

    to : fyje(无言相对) 
    透明效果如何实现?
      

  4.   

    unit MyLabel;interfaceuses
      Windows, Classes, Graphics, StdCtrls;type
      TmyLabel = class(TLabel)
      private
        { Private declarations }
        procedure DoDrawText(var Rect: TRect; Flags: Word);
      protected
        { Protected declarations }
        procedure Paint; override;
      end;
    implementationprocedure TMyLabel.Paint;
    const
      Alignments: array[TAlignment] of Word = (DT_LEFT, DT_RIGHT, DT_CENTER);
    var
      Rect: TRect;
    begin
      with Canvas do
      begin
        if not Transparent then
        begin
          Brush.Color := Self.Color;
          Brush.Style := bsSolid;
          FillRect(ClientRect);
        end;
        Brush.Style := bsClear;
        Rect := ClientRect;
        DoDrawText(Rect,(DT_EXPANDTABS or DT_WORDBREAK) or Alignments[Alignment]);
      end;
    end;
    procedure TMyLabel.DoDrawText(var Rect: TRect; Flags: Word);
    var
      Text: string;
    begin
      Text := GetLabelText;
      if (Flags and DT_CALCRECT <> 0) and ((Text = '') or ShowAccelChar and
        (Text[1] = '&') and (Text[2] = #0)) then Text := Text + ' ';
      if not ShowAccelChar then Flags := Flags or DT_NOPREFIX;
      Canvas.Font := Font;
      OffsetRect(Rect, 1, 1);
      Canvas.Font.Color := clWhite;
      DrawText(Canvas.Handle, PChar(Text), Length(Text), Rect, Flags);
      OffsetRect(Rect, -1, -1);
      if not Enabled then
      begin
        Canvas.Font.Color := clBtnShadow;
      end
      else
      begin
        Canvas.Font.Color := Font.Color;
      end;
      DrawText(Canvas.Handle, PChar(Text), Length(Text), Rect, Flags);
    end;end.
      

  5.   

    你也可以使用2个label,每一个label设置不同的颜色,设置他们为透明的,来实现立体效果