gpt4 book ai didi

delphi - 如何为控制台窗口创建表单模式

转载 作者:行者123 更新时间:2023-12-03 19:33:38 25 4
gpt4 key购买 nike

在控制台应用程序内部-带有GetOpenFileName()Handle := FindWindow(Nil, Pchar(ConsoleTitle))显示对控制台窗口模态的OpenFile对话框。是否可以创建并显示我自己的表单模式到控制台窗口?

最佳答案

将控制台窗口设置为窗体的窗口所有者,并在显示窗体时将其禁用。类似于以下内容:

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils,
windows,
forms,
Unit1 in 'Unit1.pas' {Form1};

const
ConsoleClass = 'ConsoleWindowClass';

var
console: HWND;
len: DWORD;
title: array [0 .. MAX_PATH] of Char;

begin
try
len := GetConsoleTitle(title, SizeOf(title));
Win32Check(Bool(len));
console := FindWindow(ConsoleClass, title);
Win32Check(Bool(console));
Form1 := TForm1.Create(nil);
try
EnableWindow(console, False);
try
Form1.HandleNeeded;
SetWindowLongPtr(Form1.Handle, GWLP_HWNDPARENT, console);
Form1.ShowModal;
finally
EnableWindow(console, True);
end;
finally
Form1.Free;
end;
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.

关于delphi - 如何为控制台窗口创建表单模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10773487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com