小编And*_*rew的帖子

如何从Graphics单元获取所有支持的文件格式?

当任何TGraphic后代使用类过程TPicture.RegisterFileFormat()注册其自己的图形文件格式时,它们都存储在Graphics.FileFormats全局变量中.

太糟糕了,FileFormats变量不在"Graphics.pas"的"interface"部分,所以我无法访问它.我需要读取此变量来为我的文件列表控件实现一个特殊的过滤器.

如果不手动修复Graphics.pas的源代码,我可以获得该列表吗?

delphi graphics file delphi-2010 formats

18
推荐指数
3
解决办法
2355
查看次数

任何为Delphi 2010自动建议单位参考的工具?

MS Visual Studio有一个很棒的功能:using当你输入代码时,它会自动建议单元添加in 子句,而不需要标准类.

是否有任何第三方工具来实现Delphi的类似功能?

我很想在每个新单元中添加所有这些SysUtils,Windows,Message等.

delphi autocomplete reference delphi-units delphi-2010

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

如何计算字符串变量使用的实际内存?

Delphi中的字符串位于动态内存中.

如何计算string变量使用的实际内存(以字节为单位)?

我知道字符串必须存储一些额外的信息,至少是引用计数和长度,但除了字符之外它还使用了多少字节?

var
  S: string;
Run Code Online (Sandbox Code Playgroud)

Delphi 2010,XE,XE2使用

memory delphi string

17
推荐指数
2
解决办法
3444
查看次数

如何克隆Joda DateTime?

克隆某个DateTime对象(或将其值分配给另一个对象)的最佳方法是什么?

import org.joda.time.DateTime;

...

DateTime date = new DateTime();
DateTime cloneOfDate = ???
Run Code Online (Sandbox Code Playgroud)

java android jodatime

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

TMainMenu丑陋的"禁用"图像

Delphi 2010,Win32 VCL.我需要以最标准的外观为我的应用程序创建一个主菜单.TMainMenu在所有Windows版本中看起来都不错,唯一不好的是当它显示具有Enabled = False的项目的图像时.

Delphi有一些奇怪的方法来构建禁用的图像(使用斜面进行b/w挤出,对我来说它看起来像是喷出).我想在VCL源代码中为该过程制作一个补丁,让菜单从同一个TImageList中选择禁用的图像,但我找不到它.

它是否存在或者是一些标准的Windows API调用?你知道那个程序在哪里吗?

当然OwnerDraw风格可以修复所有这些,但我想要更快的解决方案.

delphi vcl menu menuitem delphi-2010

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

如何从Android 2.3上的ActionBarSherlock溢出菜单中删除图标?

我有一个ActionBarSherlock使用主题的应用程序Theme.Sherlock.Light.DarkActionBar.操作栏很暗,我的菜单图标很亮.当我在小布局上运行我的应用程序时,溢出菜单中会显示带有图标的2或3个菜单项.

在Android 3+上,溢出菜单项不会显示其图标,但在Android 2.3及更早版本中,我看到的菜单图块几乎看不见图标,因为图块颜色为白色,图标接近白色.

在此输入图像描述

正如您所看到的,灯光图标在白色背景上是不可见的,但它们必须具有浅色以在黑暗的操作栏上可见:

在此输入图像描述

在溢出菜单中显示菜单项时,我可以删除图标吗?

icons android menu actionbarsherlock

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

如何在Delphi IDE中更快地创建自动属性?

我需要创建和管理许多简单的已发布属性.如果他们看起来像我那么称他们为自动属性:

private
  FTitle: string;
published
  property Title: string read FTitle write FTitle;
Run Code Online (Sandbox Code Playgroud)

通常我会在下一步创建它们:

  1. 添加属性名称和类型:

    property Title: string

  2. 选择属性名称并将其复制Title到剪贴板.

  3. 附加行 read F Ctrl+V write F Ctrl+V ;

  4. Ctrl+Shift+C,这将生成私有字段

有没有办法排除步骤2和3以更快地添加属性?也许有可能为此创建一些宏?

ide delphi properties automatic-properties

11
推荐指数
2
解决办法
4623
查看次数

Delphi:在后代类中写入私有祖先的字段

我需要修复第三方组件.该组件的类具有私有变量,其后代主动使用它:

TThirdPartyComponentBase = class
private
  FSomeVar: Integer;
public
  ...
end;

TThirdPartyComponent = class (TThirdPartyComponentBase)
protected
   procedure Foo; virtual;
end;

procedure TThirdPartyComponent.Foo;
begin
  FSomeVar := 1; // ACCESSING PRIVATE FIELD!
end; 
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为两个类都在同一个单元中,因此它们有点像"朋友".

但是,如果我尝试在新单元中创建一个新类

TMyFixedComponent = class (TThirdPartyComponent)
  procedure Foo; override; 
end;
Run Code Online (Sandbox Code Playgroud)

我不能再访问FSomeVar,但我需要将它用于我的修复.我真的不想在我的代码中重现所有基类树.

如果可能的话,你能否建议一些快速破解访问该私有字段而不更改原始组件的单元

delphi oop private private-members

10
推荐指数
2
解决办法
5182
查看次数

如何枚举所有可用的网络接口?

如何枚举计算机上当前可用的所有网络接口(包括虚拟,非连接,环回等)?

我需要知道他们的IP4/6,Mask,Gateway,DNS,WINS等


语言: C++,WinAPI

系统: Windows 2000及更高版本(包括Win7)

c++ networking winapi enumeration interface

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

为什么FreeAndNil实现在免费之前做Nil?

如果你看一下FreeAndNil程序的代码,你会看到:

procedure FreeAndNil(var Obj);
var
  Temp: TObject;
begin
  Temp := TObject(Obj);
  Pointer(Obj) := nil;
  Temp.Free;
end;
Run Code Online (Sandbox Code Playgroud)

它们分配Nil给对象引用的原因是什么,只有在它被破坏之后?为什么反之亦然?

delphi free null procedure

10
推荐指数
2
解决办法
708
查看次数