小编X-R*_*Ray的帖子

这是国际申请的正确文本比较方法... AnsiCompareText或CompareText?

我正在使用Delphi 2009编写一个使用Access数据库的应用程序.

我注意到MS Access'ORDER BY似乎正在排序像AnsiCompareText这样的国际字符集,而在我的应用程序中,我正在使用它SysUtils.CompareText.

Access' (Jet's) ORDER BY results (delphi AnsiCompareText( ) is the same)
  Nørmork
  Öster
  RAM

delphi CompareText( )
  Nørmork
  RAM
  Öster
Run Code Online (Sandbox Code Playgroud)

我应该使用哪个正确的电话进行比较?

注意:我使用美国英语作为我的语言环境.

对不起,我对此不太了解.有许多网站详细讨论了相关主题,但我还没有看到哪个网​​站最合适.

谢谢!

delphi sorting delphi-2009 internationalization

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

寻求一种方法来使用"悬停按钮"来扩展一个部分

我有一个流程面板,我根据他们是否选择显示所有项目,在运行时添加额外的项目.这一切都很好; 扩展由工具栏按钮控制.

问题是我们希望用户能够将鼠标移到"+"符号上以展开该部分.

替代文字

最初我看了TSpeedButton(OnMouseEnter),但即使它是"平面",焦点矩形仍然显示,所以字形不居中.这个解决方案的主要问题是它的外观.

然后我看着制作TImage的后代.这有点"非常规",但它有效.在OnMouseEnter或OnClick中,它会切换一个内部布尔"Expanded"标志,然后从资源加载适当的图片.我不喜欢这样的非常规解决方案.

我需要将它添加到几个不同的屏幕,所以我可能会谨慎地为此构建/构建组件.我有JVCL,但我没有看到任何合适的副手.

谢谢你的意见/帮助!

delphi components

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

USB设备连接时启动我的应用程序

当我们的USB设备连接时,我需要启动我的应用程序.

我第一次尝试这是一个后台应用程序,注意插入USB设备时.当它注意到我们的设备连接时,它调用ShellExecute()并启动我们的应用程序.

除了在Windows 8中,这很有效.假设我们在Windows 8的"开始"屏幕上.在这种情况下,应用程序在后台启动,并且开始屏幕保持在前面.

我认为这是一个"焦点"问题,因为我实际上希望做的是从"开始"屏幕"偷取焦点".

http://blogs.msdn.com/b/oldnewthing/archive/2009/02/20/9435239.aspx

由于我的后台应用程序没有焦点("开始"屏幕具有焦点;此外,我的应用程序没有UI),因此无法将焦点放在我的前台应用程序上.

让我说,总的来说,我讨厌集中窃取.启动用户想要使用应用程序对我们的用户来说是一个很大的帮助.

我该如何解决这个问题?也许答案是以编程方式要求启动屏幕启动我的应用程序,但我没有看到这样做的方法:

http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/9ed23f32-0708-48a8-9ff7-5fce6dbe123f/windows-8-start-screen-api

也许我正以错误的方式接近这一点.建议?

windows delphi focus focusmanager

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

如何创建类的新实例?

我有一个各种类的实例列表.我需要能够在不知道要创建什么的情况下创建类的新实例.所涉及的所有对象都具有相同的祖先.实际复制对象的成员变量很容易......这是我遇到问题的新对象的创建.

不可否认我可以这样做:

case MyObjectTypeInstance.MyTypeEnum of
  obj1:
    Result:=TObjectType1.Create;

  obj2:
    Result:=TObjectType2.Create;

  obj3:
    Result:=TObjectType3.Create;
end;
Run Code Online (Sandbox Code Playgroud)

这不符合"开放/封闭原则".

最初我以为我可以做一些像"结果:= MyObjectTypeInstance.Create;" 但由于破坏者的困难,这并不像希望的那样有效.

这是最新的猜测我应该怎么做...

var
  fooA, fooB:TFoo;
begin
  fooA:=TFoo2.Create;    // it could be any of many types

  fooB:=?  // how to create fooB of same class type as fooA????

  // do something

  fooA.Free;
  fooB.Free;
end;
Run Code Online (Sandbox Code Playgroud)

我会以为这会更容易!

谢谢您的帮助!

delphi rtti delphi-2009

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

你能推荐一款非常超级的原生delphi图形引擎吗?

我们一直在使用Pro Essentials图形(gigasoft.com),但它与delphi不能很好地兼容,所以它一直在引发问题.

我们需要显示波形和条形图(不是同时显示).波形可能有数千个点.我们需要一些功能齐全的东西,这是一种"活的"产品.

我们的应用程序是本机win32 delphi 2009应用程序.

谢谢你的建议!

delphi charts graphing delphi-2009

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

如何比较MySQL数据库中的这个日期时间?

如何比较MySQL数据库中的这个日期时间?

我使用MySQL函数now()在数据库记录中发送日期,并试图检测超过30天的记录.

if (date_diff($myrow["LastLogin"], time()) > -30) {
  }
Run Code Online (Sandbox Code Playgroud)

$myrow["LastLogin"]确实包含有效值,因为我将其视为文本.在数据库中确认它是"日期时间"类型.

这里有更多的代码.

if ($myrow = mysql_fetch_array($result_set)) { 

  do {
      if (date_diff($myrow["LastLogin"], getdate()) > -30) {
        echo "<tr>";
        echo "<td>" . $myrow["PCName"] . '&nbsp;</td>';
        echo "<td>" . $myrow["LastLogin"] . '&nbsp;</td>';
        echo "</tr>\n";
      }
  } while ($myrow = mysql_fetch_array($result_set));  
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

php mysql

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