delphi - 用 Delphi 编写请等待屏幕的最简单方法是什么?

标签 delphi

我只是想要一个快速而肮脏的非模态、不可关闭的屏幕,它会弹出并消失,让 2 秒看起来更像……1 秒。使用 3-5 行代码。

这个要求是否太过分了?

最佳答案

如果您想以编程方式完成所有操作(即,如果您不想在 Delphi 表单设计器中设计表单),那么您可以编写

type
  TStatusWindowHandle = type HWND;

function CreateStatusWindow(const Text: string): TStatusWindowHandle;
var
  FormWidth,
  FormHeight: integer;
begin
  FormWidth := 400;
  FormHeight := 164;
  result := CreateWindow('STATIC',
                         PChar(Text),
                         WS_OVERLAPPED or WS_POPUPWINDOW or WS_THICKFRAME or SS_CENTER or SS_CENTERIMAGE,
                         (Screen.Width - FormWidth) div 2,
                         (Screen.Height - FormHeight) div 2,
                         FormWidth,
                         FormHeight,
                         Application.MainForm.Handle,
                         0,
                         HInstance,
                         nil);
  ShowWindow(result, SW_SHOWNORMAL);
  UpdateWindow(result);
end;

procedure RemoveStatusWindow(StatusWindow: TStatusWindowHandle);
begin
  DestroyWindow(StatusWindow);
end;

在一个新单位。然后你就可以像这样调用这些函数:

procedure TForm3.Button1Click(Sender: TObject);
var
  status: TStatusWindowHandle;
begin
  status := CreateStatusWindow('Please Wait...');
  try
    Sleep(2000);
  finally
    RemoveStatusWindow(status);
  end;
end;

关于delphi - 用 Delphi 编写请等待屏幕的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3781275/

相关文章:

delphi - FireMonkey PenMode 等效项 - DrawLine

delphi - 如何添加资源并使用它们

android - 使用 Firemonkey/Delphi 打开 Android 26 PDF 文件时出现异常

android - 使用 Delphi for Android 显示 TMediaPlayer.Duration 和 TMediaPlayer.CurrentTime 的秒数

delphi - 将 UTF8 字符串传递给 RemObject (Delphi 2007) 时要使用哪种字符串类型 - Utf8String 或 WideString

delphi - Delphi 的 VCL 中的命名空间兼容性

delphi - 在 Firemonkey 中切换到 Release模式

delphi - Delphi 中的 System.IsConsole 什么时候为真?

regex - 使用正则表达式等标准生成字符串

ios - 使用 iOS 的 XE2/Firemonkey 下的 FindFirst() 有问题吗?