gpt4 book ai didi

delphi - 在 Delphi 中正确验证 TPageControl

转载 作者:行者123 更新时间:2023-12-03 18:58:54 25 4
gpt4 key购买 nike

我正在使用 Delphi 7 代码,以确保在用户切换选项卡之前已保存在选项卡上输入的注释。

这些选项卡位于 TPageControl ,并且此代码被触发 OnExit

procedure TfCallerInfo.tsChaplainExit(Sender: TObject);
begin
{ Compare the saved DB value with the text in the comments field }
if (dmMain.qChaplainCOMMENTS.AsString <> dbmChapComments.Text) then
begin
ShowMessage ('Please save the comments before proceeding.');
pcDetail.ActivePage := tsChaplain; // Remain on the Current Page
tsChaplain.SetFocus;
end;
end;

当用户点击另一个标签时 tsInfoRequest例如,验证确实触发,但事件页面变为 tsInfoRequest而不是剩余的 tsChaplain .

知道我做错了什么吗?

最佳答案

可能有更好的方法来做你想做的事情。使用 TPageControl.OnPageChanging而是事件。

procedure TfCallerInfo.pcDetailPageChanging(Sender: TObject; 
NewPage: TTabSheet; var AllowChange: Boolean);
begin
if pc.ActivePage = tsChaplain then
begin
AllowChange := (dmMain.qChaplainCOMMENTS.AsString = dbmChapComments.Text);
if not AllowChange then
ShowMessage(...);
end;
end;

顺便说一句,更好的测试可能是
AllowChange := not dmMain.gChaplainCOMMENTS.Modified;
TField.Modified设置为 True当数据集在 dsEdit中时字段的内容发生变化或 dsInsert模式,并设置为 False当它的状态变回 dsBrowse .

关于delphi - 在 Delphi 中正确验证 TPageControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15102037/

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