当任何TGraphic后代使用类过程TPicture.RegisterFileFormat()注册其自己的图形文件格式时,它们都存储在Graphics.FileFormats全局变量中.
太糟糕了,FileFormats变量不在"Graphics.pas"的"interface"部分,所以我无法访问它.我需要读取此变量来为我的文件列表控件实现一个特殊的过滤器.
如果不手动修复Graphics.pas的源代码,我可以获得该列表吗?
MS Visual Studio有一个很棒的功能:using
当你输入代码时,它会自动建议单元添加in 子句,而不需要标准类.
是否有任何第三方工具来实现Delphi的类似功能?
我很想在每个新单元中添加所有这些SysUtils,Windows,Message等.
Delphi中的字符串位于动态内存中.
如何计算string
变量使用的实际内存(以字节为单位)?
我知道字符串必须存储一些额外的信息,至少是引用计数和长度,但除了字符之外它还使用了多少字节?
var
S: string;
Run Code Online (Sandbox Code Playgroud)
Delphi 2010,XE,XE2使用
克隆某个DateTime
对象(或将其值分配给另一个对象)的最佳方法是什么?
import org.joda.time.DateTime;
...
DateTime date = new DateTime();
DateTime cloneOfDate = ???
Run Code Online (Sandbox Code Playgroud) Delphi 2010,Win32 VCL.我需要以最标准的外观为我的应用程序创建一个主菜单.TMainMenu在所有Windows版本中看起来都不错,唯一不好的是当它显示具有Enabled = False的项目的图像时.
Delphi有一些奇怪的方法来构建禁用的图像(使用斜面进行b/w挤出,对我来说它看起来像是喷出).我想在VCL源代码中为该过程制作一个补丁,让菜单从同一个TImageList中选择禁用的图像,但我找不到它.
它是否存在或者是一些标准的Windows API调用?你知道那个程序在哪里吗?
当然OwnerDraw风格可以修复所有这些,但我想要更快的解决方案.
我有一个ActionBarSherlock
使用主题的应用程序Theme.Sherlock.Light.DarkActionBar
.操作栏很暗,我的菜单图标很亮.当我在小布局上运行我的应用程序时,溢出菜单中会显示带有图标的2或3个菜单项.
在Android 3+上,溢出菜单项不会显示其图标,但在Android 2.3及更早版本中,我看到的菜单图块几乎看不见图标,因为图块颜色为白色,图标接近白色.
正如您所看到的,灯光图标在白色背景上是不可见的,但它们必须具有浅色以在黑暗的操作栏上可见:
在溢出菜单中显示菜单项时,我可以删除图标吗?
我需要创建和管理许多简单的已发布属性.如果他们看起来像我那么称他们为自动属性:
private
FTitle: string;
published
property Title: string read FTitle write FTitle;
Run Code Online (Sandbox Code Playgroud)
通常我会在下一步创建它们:
添加属性名称和类型:
property Title: string
选择属性名称并将其复制Title
到剪贴板.
附加行 read F
Ctrl+V write F
Ctrl+V ;
有没有办法排除步骤2和3以更快地添加属性?也许有可能为此创建一些宏?
我需要修复第三方组件.该组件的类具有私有变量,其后代主动使用它:
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,但我需要将它用于我的修复.我真的不想在我的代码中重现所有基类树.
如果可能的话,你能否建议一些快速破解访问该私有字段而不更改原始组件的单元?
如何枚举计算机上当前可用的所有网络接口(包括虚拟,非连接,环回等)?
我需要知道他们的IP4/6,Mask,Gateway,DNS,WINS等
语言: C++,WinAPI
系统: Windows 2000及更高版本(包括Win7)
如果你看一下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 ×7
delphi-2010 ×3
android ×2
menu ×2
autocomplete ×1
c++ ×1
delphi-units ×1
enumeration ×1
file ×1
formats ×1
free ×1
graphics ×1
icons ×1
ide ×1
interface ×1
java ×1
jodatime ×1
memory ×1
menuitem ×1
networking ×1
null ×1
oop ×1
private ×1
procedure ×1
properties ×1
reference ×1
string ×1
vcl ×1
winapi ×1