小编ert*_*rtx的帖子

在Delphi中从.dfm文件中删除属性的快速方法

我最近修改了我的一个组件,它发生了它不再使用它之前使用的属性之一.

但是,这些属性在整个项目中以多个.dfm文件编写.现在,当我尝试编译项目时,我得到"错误读取.:属性<...>不存在"

复杂的部分是属性值是二进制数据(存储在多行中),我不能用Delphi替换或notepad ++ regexp删除它(因为它们是基于单行的).

所以我的问题是:

是否有任何第三方工具或方法可以轻松地从多个.dfm文件中删除属性?

regex delphi properties delphi-2006 dfm

9
推荐指数
1
解决办法
2148
查看次数

Delphi:如何在外部应用程序上正确使用ShowWindow

另请参阅:
如何判断程序的另一个实例是否已在运行?

我在启动应用程序之前使用以下代码,以检查它的另一个实例是否已经启动:

var _PreviousHandle : THandle;
begin
  _PreviousHandle := FindWindow('TfrmMainForm',nil);
  if _PreviousHandle <> 0 then
  begin
    ShowMessage('Application "" is already running!');
    SetForegroundWindow(_PreviousHandle);
    ShowWindow(_PreviousHandle, SW_SHOW);
    Application.Terminate;
    Exit;
  end;
...
Run Code Online (Sandbox Code Playgroud)

但是,如果它已经启动,我需要显示该应用程序.问题是以这种方式显示最小化按钮不再起作用,当我单击任务栏中的图标时,它"取消最小化",并且显示的动画就像它被最小化一样.我错过了什么吗?是否有一种正确的方法来激活和显示外部应用程序,同时它被最小化?

delphi winapi windows-7 delphi-xe2

6
推荐指数
1
解决办法
9619
查看次数

拦截delphi上的提示事件

我试图在组件内部的运行时临时更改提示文本,而不更改Hint属性本身.

我试过捕捉CM_SHOWHINT,但这个事件似乎只是形成,而不是组件本身.

插入CustomHint也不起作用,因为它从Hint属性中获取文本.

我的组件是后代 TCustomPanel

这是我正在尝试做的事情:

procedure TImageBtn.WndProc(var Message: TMessage);
begin
  if (Message.Msg = CM_HINTSHOW) then
    PHintInfo(Message.LParam)^.HintStr := 'CustomHint';
end;
Run Code Online (Sandbox Code Playgroud)

我在互联网上找到了这个代码,不幸的是它不起作用.

delphi hint windows-messages delphi-xe2

4
推荐指数
2
解决办法
3255
查看次数

德尔福.如何在不触发控件事件的情况下禁用/启用控件

我有一个DataSet(TZQuery),它有几个布尔字段,分配了TDBCheckBoxes.

这些CheckBoxes OnClick分配了" "事件,只要我更改字段值(分配给复选框),就会触发它们.

问题是我在数据集的许多操作中都不需要触发这些事件.

我试过打电话DataSet.DisableControls,但是我打电话后就打电话给我DataSet.EnableControls.

所以我的问题是 - 有没有办法禁用触发数据感知控件事件.

编辑(大图):

如果在我们说保存数据时发生异常,我必须加载默认值(或者在保存之前我已经拥有的值).现在在加载这些数据时,所有这些事件(TDBCheckBoxes和其他数据感知控件)都会被触发,这些操作会产生延迟,有时甚至会产生不必要的数据更改,我正在寻找一种通用的解决方案来禁用它们在短时间内.

delphi controls dataset

2
推荐指数
2
解决办法
1万
查看次数

Delphi:如何为自定义组件创建额外的设计时菜单?

我最近重新编译了TDBGrid组件,实现了几个自定义函数,虽然我注意到额外的设计时上下文菜单项"列编辑器"的功能现在已经消失.

http://i121.photobucket.com/albums/o210/R33_m/Columns.png

我没有找到任何代码在原始Vcl.DBGrids单元中创建此菜单,并且运气真的很糟糕,在线寻找如何执行此操作的解决方案.

这也适用于双击.它曾经调用Columns Editor,现在它只是创建OnCellClick事件.

ide delphi menu delphi-xe2

2
推荐指数
1
解决办法
1050
查看次数