小编Jes*_*own的帖子

如何识别定义标识符在delphi 7中重构的位置?

我试图重构一些delphi 7代码.我想移动的一个过程使用一个名为TLVColumn的数据类型(看起来像是一个TListView列标题).但是,如果我移动方法,我会得到一个未声明的标识符错误,因为我没有将定义TLVColumn的导入复制到新单元.我正在移动此方法的单元有超过7000行代码,超过50行使用列出的类.有没有比复制随机导入的试错更有效的方法来识别特定类需要哪个导入?(特别是来自Delphi库的导入,而不是来自我自己的代码库...)

delphi refactoring delphi-7

3
推荐指数
1
解决办法
188
查看次数

启用Delphi VCL样式的平面工具栏按钮?

如果没有启用VCL样式,我的TActionToolbar看起来像扁平工具栏.但是,如果我启用几乎任何VCL样式,突然所有工具栏按钮看起来像3d按钮.

VCL Style Viewer应用程序显示工具栏按钮,包括平面和按钮状外观:

在此输入图像描述

当我启用VCL样式时,如何让我的TActionToolbar具有平面工具栏按钮样式而不是看起来像一堆按钮?

delphi vcl-styles

3
推荐指数
1
解决办法
2111
查看次数

Delphi中的Succeeded()函数?

我在网上看到了几个调用称为"成功"的函数的例子.但是,当我尝试使用所述示例时,我得到一个未声明的标识符错误.

例如: if Succeeded(SHGetFolderPath(...)) then ...

我需要包含一些使用此功能的包吗?谷歌在寻找答案方面并不是很有帮助.

delphi delphi-7

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

在Delphi中禁用溢出检查

这是一个后续问题,与我在stackoverflow上阅读的另一个问题上看到的答案有关.如果我希望禁用特定函数的溢出检查(根据这个问题),这个代码是否会导致溢出检查在运行函数后突然变为启用,即使之前未在编译器选项或代码中启用它?

{$OVERFLOWCHECKS OFF}
// function here
{$OVERFLOWCHECKS ON}
Run Code Online (Sandbox Code Playgroud)

我是否需要将其与IFOPT块(可能类似于示例?)相结合,以将溢出检查返回到先前的状态(以便不会意外地启用非调试版本的溢出检查)?或者两者是不同的,这就足够了吗?额外:如果我确实需要IFOPT,具体的语法是什么才能有条件地禁用溢出检查?

delphi

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

ShortDateFormat vs FormatSettings.ShortDateFormat?

在尝试让Log4D在XE4中编译时,我看到了

[dcc32错误] Log4D.pas(2139):E2003未声明的标识符:'ShortDateFormat'

在这条线上:

SetOption(DateFormatOpt, ShortDateFormat); 
Run Code Online (Sandbox Code Playgroud)

谷歌搜索有一点使我改变的解决方案ShortDateFormatFormatSettings.ShortDateFormat,这导致了XE4以下编译代码:

SetOption(DateFormatOpt, FormatSettings.ShortDateFormat); 
Run Code Online (Sandbox Code Playgroud)

不过,我真的不明白,为什么能解决的事情,为什么它的需要来指定FormatSettings,因为我已经包含SysUtils在我的用途声明,其次,我不知道如何重写这一行继续向后用Delphi的版本兼容这个开源项目已经支持了.

我想我可以在任何版本的Delphi引入的参数或代码行周围添加一个IFDEF FormatSettings- 但我甚至不确定Delphi的版本是什么,更不用说这是解决这个问题的好方法还是坏方法.

delphi datetime delphi-xe4 log4d

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

JOptionPane与按钮上的图像?

除了标签之外,如何在按钮上创建带有图像的JOptionPane?例如,如果我想要一个OK按钮上的复选标记和取消按钮上的x图标?如果没有从头开始创建整个对话框作为JFrame/JPanel,这是否可行?

java swing image jbutton joptionpane

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

如何在没有'使用'的情况下从多个文件中引用常量?

我在单元uMainWindow中为广播消息传递定义了一些常量,例如:

const 
  UM_QUIT = WM_USER + 12;
  UM_PROCESS_MESSAGES = WM_USER + 13;
Run Code Online (Sandbox Code Playgroud)

现在我需要更多的广播消息,但它们将用于不同的形式(让我们称之为uOtherWindow),而不是uMainWindow.我想将所有广播消息放在一起,这样我就不会意外地重复使用消息号.我不想强迫uOtherWindow和uMainWindow相互依赖,所以只需添加uMainWindow到使用列表就uOtherWindow可以了.

我应该如何在两个类中包含这组常量?

以下是我迄今为止的(可能或不可行)想法:

  • 一个新单元uConstants.pas并将其放在两个类的uses语句中.
  • 将它们放在一个包含文件中broadcastconstants.inc,然后让每个类都包含带有编译器指令的文件{$Include broadcastconstants.inc}

delphi

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