gpt4 book ai didi

delphi - 如何将 'parent' 写入表单? (控件不接受焦点)

转载 作者:行者123 更新时间:2023-12-03 15:51:36 24 4
gpt4 key购买 nike

我有一个子表单“frmTest”和一个主表单“TfrmMain”。我将主窗体设置为 frmTest 的父窗体,如下所示:

unit Main;

INTERFACE
USES
System.SysUtils, System.Classes, Vcl.Forms, Test, Vcl.StdCtrls, Vcl.Controls;

type
TfrmMain = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;

IMPLEMENTATION {$R *.dfm}

procedure TfrmMain.Button1Click(Sender: TObject);
VAR frmTest: TChildForm;
begin
Application.CreateForm(TChildForm, frmTest);
//frmTest:= TForm1.Create(Self);
frmTest.Parent:= Self;
frmTest.Show;
frmTest.SetFocus;
end;
<小时/>
unit test;  { THIS IS THE CHILD }

INTERFACE

TYPE
TChildForm = class(TForm)
Edit1: TEdit;
SpinEdit1: TSpinEdit;
end;

Code as ZIP

但是 frmInsertImg 中的控件(编辑框、旋转编辑等)不会接受鼠标焦点,但可以通过 Tab 获得焦点。

我做错了什么?

<小时/>

PS:当然我应该在 SetFocus 之前使用 CanFocus。但即便如此,CanFocus 仍然损坏(或者在 Delphi 中不完整)。它需要是fixed

最佳答案

我建议您将子表单的BorderStyle设置为bsNone。我不确定它起作用的确切原因,但它达到了预期的效果。

如果您需要为子表单添加视觉框架,那么最好使用子表单所包含的显式 UI 来完成。

在我看来,表单并不是真正旨在以这种方式使用的。你可以让事情大部分正常工作,但它并不是非常健壮。将 UI 放入框架中,然后托管它应该会带来更好的行为。

关于delphi - 如何将 'parent' 写入表单? (控件不接受焦点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42065369/

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