814123 2024-07-08 23:28 采纳率: 33.3%
浏览 32
已结题

Delphi 非客户区窗口阴影?

delphi使用IDE提供的STYLE样式,在窗口四周没有了阴影效果,请问在使用Style样式的情况下让窗口四周有阴影,如下图

img

  • 写回答

24条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-08 23:28
    关注

    引自免费微信小程序:皆我百晓生

    要给 Delphi 窗口添加阴影效果,你需要在你的应用程序的 Application 类中创建一个方法,并在其中设置窗口的样式属性。这里有一个简单的示例:

    type
      TMyWindow = class(TForm)
        procedure OnPaint; override;
      end;
    
    implementation
    
    procedure TMyWindow.OnPaint;
    begin
      inherited;
      
      // 设置窗口样式属性
      WindowStyle := WS_OVERLAPPEDWINDOW or WS_THICKFRAME;
      
      // 设置窗口边框样式
      BorderStyle := BS_SUNKEN;
      
      // 设置窗口标题栏样式
      TabText := '窗口标题';
      
      // 设置窗口状态栏样式
      StatusBarHeight := 30;
    end;
    

    在这个例子中,我们首先设置了窗口的样式属性,包括 WS_OVERLAPPEDWINDOWWS_THICKFRAME。然后,我们将边框样式设置为 BS_SUNKEN,并且将标题栏和状态栏的高度设置为 30 像素。

    接下来,你需要在你的主窗体上添加一个新的窗口,这个窗口会显示你想要的阴影效果。你可以使用 TMyWindow 类来实现这一点:

    var
      myWindow: TMyWindow;
      rect: TRect;
    begin
      myWindow := TMyWindow.Create(nil);
      try
        // 设置窗口位置
        rect.x := 50;
        rect.y := 50;
        rect.width := 300;
        rect.height := 200;
        
        // 将新窗口添加到主窗体上
        myWindow.Parent := self;
        myWindow.Left := rect.left;
        myWindow.Top := rect.top;
        myWindow.Width := rect.width;
        myWindow.Height := rect.height;
        myWindow.Show;
      finally
        myWindow.Free;
      end;
    end.
    

    这段代码首先创建了一个新的 TMyWindow 对象,并将其放置在一个新的矩形区域中。然后,它将这个窗口显示出来。

    注意:这只是一个基本的例子,实际应用中可能需要根据你的具体需求进行调整。例如,你可能需要修改边框颜色、填充色等样式属性。此外,你也可能需要处理其他类型的窗口(如按钮、菜单项等),而不是只关注文本窗口。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月10日
  • 修改了问题 7月10日
  • 创建了问题 7月8日

悬赏问题

  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的