
我注意到当我使用Delphi 2010附带的TRibbon控件时,它在我的Windows 7系统上运行完美.但是,应用程序在具有"经典主题"的Windows XP系统上有一些奇怪的绘画问题(我没有尝试过playschool主题).
我知道DevExpress和TMS Software还提供其他Ribbon组件,但购买第三方控件不是此项目的选项.
有没有人有这个问题,或者知道解决方案?
我是新手使用和编写单元测试,但我已经确信他们可以帮助我编写更好的代码并最终节省我的时间.我知道DUnit已经很好地集成到Delphi 2006和更新版本中.
有没有人知道用DUnit编写单元测试的任何好资源,可能还有一般的单元测试介绍?
我找到了Charlie Calvert的资源,我一直在阅读,但我是一个有点动人的照片,我也希望看到任何与DUnit测试有关的视频(如果它们存在的话).任何帮助表示赞赏.
我有一个Delphi 2007 DBGrid,我想让用户以更新的Excel格式(OOXML)保存,但我的标准是用户不需要安装Excel.有人知道任何组件已经这样做了吗?是的,我已经搜索过了,但我还没有找到任何东西.
我已经开始使用Lazarus在Ubuntu 9.10上为我自己使用一些简单的工具.我知道很多人喜欢模块化的Delphi 7布局,但我讨厌它.我发现它很烦人且具有破坏性.出于同样的原因,我不喜欢使用Gimp.
我也更喜欢Delphi 2007调色板菜单.这是否可以在最新版本的Lazarus(v0.9.28.x)中使用?
如何配置Lazarus看起来像Delphi 2007/9/10?
我正在使用Delphi 2010,我试图允许用户在TListView中每行选择2个选项.使用TListView,我可以将样式设置为vsReport并启用Checkboxes,但每行只能获得1个复选框.我需要的是每行2个复选框...具体为1表示第1列,1表示第2列.
我想要完成的是非常类似于标准的Windows文件安全对话框:

有没有人有任何建议使用TListView甚至MustangPeak的TEasyListView来实现这样的东西?
如何防止我的表单调整大小?我不希望它被最大化(可以通过属性编辑器切换),但我不希望任何人能够拖动它的大小.我错过了一些简单的东西,还是需要一点点编码?
我正在使用Delphi 2007.
原谅我的天真,但我不熟悉将Delphi与数据库一起使用(对某些人来说可能看起来很奇怪).
我使用TADOConnection建立了与我的数据库(MSSQL)的连接.我正在使用TADOStoredProc访问我的存储过程.
我的存储过程返回2列,一列充满服务器名称,以及服务器上充满用户的第二列.它通常返回大约70条记录......而不是大量数据.
如何以编程方式枚举此存储过程?我能够在我的表单上删除一个DBGrid并将其附加到TDataSource(然后附加到我的ADOStoredProc),我可以验证数据是否正确检索.
理想情况下,我想枚举返回的数据并将其移动到TStringList中.
目前,我使用以下代码枚举ADOStoredProc,但它只返回'@RETURN_VALUE':
ADOStoredProc1.Open;
ADOStoredProc1.ExecProc;
ADOStoredProc1.Parameters.Refresh;
for i := 0 to AdoStoredProc1.Parameters.Count - 1 do
begin
Memo1.Lines.Add(AdoStoredProc1.Parameters.Items[i].Name);
Memo1.Lines.Add(AdoStoredProc1.Parameters.Items[i].Value);
end;
Run Code Online (Sandbox Code Playgroud) 我写了一个简单的工具,在Delphi中模拟*nix"ifconfig -a"并在SO上发布.但是,我也希望能够检索适配器的GUID.有没有办法在Delphi中执行此操作,而不使用WMI?
我使用德尔福2010年和我有一个需要能够将字符串转换为十六进制字符串,再后来能到十六进制字符串转换回原来的unicode字符串.
例如,我的字符串是:МихаилВасильевичЛомоносов
我能够在这里使用Warren P的StringToHex16片段(我在下面粘贴了Warren的片段)将字符串转换为十六进制字符串,但我不知道如何将该十六进制字符串转换回原始的unicode字符串.
function StringToHex16(str: string): string;
var
i:integer;
s:string;
begin
s:='';
for i:=1 to length(str) do begin
s:=s+inttohex(Integer(str[i]),4);
end;
result:=s;
end;
Run Code Online (Sandbox Code Playgroud)
使用链接的StringToHex16给我这个十六进制字符串:
041C04380445043004380301043B002004120430044104380301043B044C04350432043804470020041B043E043C043E043D043E03010441043E0432
Run Code Online (Sandbox Code Playgroud)
我对这个主题有点天真,我很感激您可以提供任何帮助将此十六进制字符串转换回原始输入.
delphi ×10
delphi-2007 ×2
delphi-2010 ×1
dunit ×1
excel ×1
lazarus ×1
listview ×1
openxml ×1
pascal ×1
psexec ×1
ribbon ×1
sql ×1
unicode ×1
unit-testing ×1
xml ×1