Tag: delphi

针对高度依赖math的用户编码的脚本或插件语言的build议?

我已经开始了这个问题的赏金 …因为我真的想要社区的投入。 我可以(也可以)查看几种语言/框架,并认为“好,这可能会工作正常” – 但我真的很感谢那些专门针对我面对的问题的build议,特别是那些有经验的人集成/使用什么你推荐。 我从事科学分析软件。 它为数据的math转换提供了很多工具。 一个工具允许用户input他们自己的方程,该方程运行在数据集(数值的大的2D或3Dmatrix)上并被评估。 这个工具有一个graphics方程式编辑器,它在内部为每个操作构build一个面向对象的expression式树(这里有一个对数类的实例,例如,树中用于添加计算对数的对数一个价值的基地;它有两个孩子是它的input。)它的一部分截图: 你可以看到它在左边的树,以及右边的菜单中的许多(五十?)个潜在的操作中的一些。 这有几个缺点: graphics编辑器对于复杂的方程变得笨拙 有一些操作很难用graphics表示,例如创build大型matrix(例如用于x n卷积的内核) 它只允许方程:没有分支或其他逻辑 当它简单得多时,我们的用户希望能够做到这一点,这一点很简单。 如果我现在写了,我会做得完全不同 – 这是我的机会:) 我想给用户更强大的function,让他们编写代码脚本或编译 – 可以执行更高级的操作。 我正在寻求SO对这个应该使用什么技术或最好的方法的build议。 这个问题的其余部分很长 – 对不起。 我试图详细描述这个问题。 预先感谢您阅读:) 重要的限制: 我们的math运算在大matrix上运行。 在上面的等式中,V1表示input(可能是很多),是2D或3D,每个维度可以很大:大约成千上万或几十万。 (我们很less计算所有这一切,只是切片/片段,但如果答案涉及到需要编组数据的东西,请注意这是一个考虑因素的大小和速度。 我们提供的操作允许你写2 x V ,它将2 x V每个元素乘以2.结果是另一个相同大小的matrix。 换句话说,包含标准math基元的脚本或编程语言是不够的:我们需要能够控制哪些基元是可用的,或者是如何实现的。 这些操作可能很复杂:input可以像数字(2,5.3,pi)一样简单,也可以像包含数字 , 布尔值或复数 (配对值)数据的1,2或3维matrix一样复杂 。 我目前的想法是一种足够强大的语言,我们可以将我们的数据types公开为类,并且可以实现标准的运算符。 一个简单的评估者是不够的。 我们希望用户能够:(1)通过编写一个或多个input迭代评估的操作来提供输出(可通过expression式求值器轻松实现)input; 调用其他函数; 等等。对于主机程序,能够询问用户的代码将需要什么样的部分或input部分来评估切片或输出的一部分将是有用的。 我认为暴露我们课堂的某些部分并使用OO语言可能是实现这些要点的最好方法。 我们的读者主要是研究科学家,他们或者不习惯于编码,或者可能习惯于像Matlab或R这样的语言。 我们使用Embarcadero C ++ Builder […]

无意中造成了病毒?

我经常看到这种情况:我用Delphi编写了一个应用程序,当我编译它时,病毒扫描程序告诉我我已经创build了一个病毒,然后立即再次删除可执行文件。 这是讨厌的,但合理的,很容易通过做一个完整的重build,删除* .dcu文件,有时候通过简单的等待来修复。 据我所知,Delphi 6,7,2005和2007发生了这种情况。 赛门铁克,卡巴斯基,迈克菲和NOD32都报告了这些误报。 我知道这是因为Delphi为它的DCU文件添加了时间戳,这些时间戳最终在最终的可执行文件中,显然是一些随机病毒签名的一部分。 我不想禁用病毒扫描程序,即使是单个文件夹或文件。 我并不是真的想要解决scheme,但是我想知道以下几点: 其他编译器也会出现这些误报吗? 这是否也发生在.NET可执行文件? 其他人也注意到与Delphi类似的问题?

在更改某些非文本字符的字体时,如何使TRichEdit在Windows 7上的行为类似于写字板?

在Sertac Akyuz的帮助下,似乎直接原因与\bullet的字符集有关:在我本地化的Windows中,通过键入Alt(0149)input的\bullet总是获得\fcharset134 ,并总是尝试通过EM_SETCHARFORMAT改变其字体不好(颜色,大小,风格确实可以改变,但不是字体名称)。 最简单的解决方法是首先重置字符集,然后更改字体。 注意:应该使用RichEdit (版本> = 4.1) ! 注意:RichEdit版本可以在MSDN 关于Rich Edit Controls ,Murray Sargent的MSDN博客RichEdit版本和RichEdit版本更新到7.0中find 。 后面的页面提到RichEdit版本高于4.1。 作为一个testing,我将Office 2010中的RICHED20.DLL与应用程序一起复制到Windows 2000,一切都像一个魅力! procedure TMainForm.ButtonFontClick(Sender: TObject); var format: TCharFormat2; begin if dlgFontCdxTxt.Execute then begin FillChar(format, sizeof(format), 0); format.cbSize:= Sizeof(format); format.dwMask:= CFM_CHARSET; format.bCharSet := 1; // or 0; redtTextBlock.Perform(EM_SETCHARFORMAT, SCF_SELECTION, Integer(@format)); FillChar(format, sizeof(format), 0); format.cbSize:= Sizeof(format); format.dwMask:= CFM_FACE; StrPLCopy(format.szFaceName, […]

如何让比超越比较忽略某些差异,同时比较版本的Delphi窗体文件

我使用Beyond Compare(版本3.1.10)比较不同版本的Delphi窗体文件,但我不希望看到有关ExplicitTop,ExplicitLeft,ExplicitHeight和ExplicitWidth的差异。 细节:这些行总是以一些空白字符开始,然后是“ExplicitXXX =”和一个数字。 旧版本的Delphi没有这些行,所以我想忽略这些行被添加到最新版本的差异,我也想忽略数字已经改变的差异。 有谁知道如何做到这一点? 编辑:重复(或多或less): 如何configurationBeyondCompare以忽略注释中的SCMreplace文本?

Delphi 2006-2010错误:“无法创build文件C:\ Users \ Admin \ AppData \ Local \ Temp \ EditorLineEnds.ttr”

我安装了Delphi 2007后出现错误(编辑:这个问题发生在2006年至2010年的所有delphi版本),我无法弄清楚,从来没有见过。 重新启动后,我可以启动程序没有任何问题,但如果我要closures程序,并重新启动它会给我以下错误: “无法创build文件C:\ Users \ Admin \ AppData \ Local \ Temp \ EditorLineEnds.ttr”。 该进程不能访问该文件,因为正在被另一个进程使用。“ 除非我重新启动,否则“系统”在这个文件上有句柄,不能被清除。 我也可以通过在启动程序之前重命名文件来纠正问题。 我已经尝试重新安装程序没有运气。 安装的版本:CodeGear™Delphi®2007 forWin32®R2版本11.0.2902.10471。 操作系统:Windows 7 Pro 64bit 更新08/14 13:35 EDT尝试了以下解决scheme,但仍然存在相同的文件locking问题: 将临时目录重命名为我知道具有完全安全权限的目录。 当启动Delphi时,文件将会在这个目录中被创build,但是EditorLineEnds.ttr仍然会被SYSTEMlocking,并阻止我重新启动。 卸载了以下安全更新KB2982791和KB2976897,但这并没有解决问题。 我现在已经取消了Windows更新,并尝试卸载8/13的所有安全修补程序。 完全卸载Delphi并重新安装。 重新安装一切后仍然会出现问题。 我将尝试从头重新安装Windows,并在Windows更新之前安装Delphi,以查看更新是否是真正的原因。 我现在的解决方法是在启动Delphi之前重命名EditorLineEnds.ttr。

XE2中COM是否被破解,我该如何解决它?

更新: XE2更新2修复了下面描述的错误。 下面的程序,从真正的程序截断,失败,在XE2例外。 这是从2010年开始的一个回归。我没有XE来testing,但是我期望程序能够在XE上正常工作(感谢Primož确认代码在XE上正常运行)。 program COMbug; {$APPTYPE CONSOLE} uses SysUtils, Variants, Windows, Excel2000; var Excel: TExcelApplication; Book: ExcelWorkbook; Sheet: ExcelWorksheet; UsedRange: ExcelRange; Row, Col: Integer; v: Variant; begin Excel := TExcelApplication.Create(nil); try Excel.Visible[LOCALE_USER_DEFAULT] := True; Book := Excel.Workbooks.Add(EmptyParam, LOCALE_USER_DEFAULT) as ExcelWorkbook; Sheet := Book.Worksheets.Add(EmptyParam, EmptyParam, 1, EmptyParam, LOCALE_USER_DEFAULT) as ExcelWorksheet; Sheet.Cells.Item[1,1].Value := 1.0; Sheet.Cells.Item[2,2].Value := […]

delphiunit testing – 你好吗?

我想知道这里的几个Delphi用户如何进行unit testing? 是否有任何与您find的IDE集成的工作良好? 如果没有,你使用什么工具,你有或知道示范微型项目,说明如何运作? 更新: 我忘了提到我使用的是BDS 2006 Pro,虽然我偶尔会使用Delphi 7,当然其他人也可能使用其他版本。

使用XE2远程debugging – 显示string

我正在远程debuggingDElphi XE2(更新#4)和Windows XP目标之间的大型应用程序。 PAServer运行在目标上,应用程序正常运行并停在断点处(你不会相信这个成绩有多难 – 暗示 – 删除你的DPROJ,如果在XE之前已经通过任何IDE,那么重新开始)。 我注意到局部variables和监视器的显示以一种奇怪的格式显示我的string,与通常显示在本地debugging时看到的'some string'格式相比。 我懂了: 谁能告诉我为什么这样的string显示? 对于尚未分配的输出variables,{}之间的{}}也会产生相当大的{NULL}和垃圾。 谢谢。 。 我看到这种格式表示宽string。 我在Windows 7上尝试了一个简单的应用程序,并得到以下结果。 我的应用程序在断点: 显示的本地stringvariables: 请注意截断的“你好”。 看起来XE2有时在远程Unicodestring上有问题。 我的PaServer是1.0.2版本。 任何人都可以检查这是最新的? '从更新#4采取的Twas …

研究不同语言发展的相对成本

有没有人看到最近(也是相当平衡的)研究使用不同语言的软件开发的相对成本? 我特别想看看Java Vs的相对成本。 C#Vs. delphi。

我应该如何为最终的64位编译器准备我的32位Delphi程序?

可能重复: 如何在迁移到Delphi 2010和Unicode时为64位做准备 因为我相信64位的 Delphi编译器很快就会出现,所以我很好奇,如果有人知道现在使用64位编译器,现在32位的程序是什么样的编译和工作,没有任何改变。 如果有一个普遍的规则,我们应该在我们的旧程序中系统地做出什么样的改变来编译为64位 ? 当64位编译器突然在这里的时候准备好是很好的… 任何build议将不胜感激。