我正在寻找一个在Delphi中显示数学表达式的简单组件。当我开始时,我认为在网上找到一些东西很容易,但事实证明它比预期的要难。有很多很多组件会解析数学表达式,但很少(没有?)会显示它们。
理想情况下,我想要一个像TLabel一样简单的组件,在那里我可以将标题设置为某个表达式并且它会正确显示,但是某些让我将表达式绘制到画布的库对我来说也足够了需要。
更新
我不是在谈论绘制函数图或类似的东西。我想显示(例如)
像这样:(X ^ 2 + 3)/ X
解决方案:
MBo的回答正是我所寻找的。有些人可能因为所有评论和文件都是俄文而被推迟,但不要让这吓到你。它真的很容易使用。
安装:将文件(至少“ExprMake.pas”和“ExprDraw.pas”)解压缩到库路径中的目录。就是这样。
使用:我没有对它进行过广泛的实验,但是这几行证明了它是多么容易。
procedure TForm1.Button1Click(Sender: TObject);
var
vExprC : TExprClass;
vExprB : TExprBuilder;
begin
vExprB := TExprBuilder.Create;
try
vExprC := vExprB.BuildExpr('(X^2+3)/X');
vExprC.Canvas := Canvas;
vExprC.Font.Size := 50;
vExprC.Draw(10,10,ehLeft,evTop);
finally
vExprC.Free;
vExprB.Free;
end;
end;
答案 0 :(得分:15)
Native Delphi module绘制数学表达式。助理计划 - 俄语。 This is how it looks
增加信用: 模块是免费的。 作者要求提及(AboutBox等)数学表达式是通过由Anton Grigoriev编写的ExprDraw和ExprMake模块绘制的 (来自readme.txt的原始翻译)
答案 1 :(得分:4)
我不知道Delphi的原生实现,但也许这个问题对您有帮助:How to render a formula in WPF or WinForms。它提到了一些可能翻译或用作DLL的C / C#解决方案(参见OP的解决方案)。
另一种选择可能是Formulator ActiveX Control。
此外,如果您使用其他搜索条件,它可能会扩大您的搜索结果,特别是没有“Delphi”关键字。 ;-)
renderer, formula, math, MathML, expression, engine, tex, ...
正如我们可以从MBo's answer学到的,用其他语言搜索也是一个好主意: - )
delphi математических формул рисования
我确定你搜索过类似的东西,但可能有一个你忘掉的关键词。
答案 2 :(得分:2)
我一段时间以来一直在寻找类似的组件,MBo的解决方案是可以接受的。
我确信它也可以用另一种方式完成:嵌入一个TWebBrowser并使用一个exixting javascript渲染器用于LaTex和MathML公式,但是......
我刚试过QDSEquations,我认为这是一个更好的解决方案!
« Delphi组件方程编辑器,允许您输入和显示任何复杂度的数学公式,从简单的希腊符号到 矩阵和复合积分表达式。您可以使用等式 您在Delphi环境中编写的项目中的编辑器 例如,在测试不同数学领域知识的程序中 (数学分析,离散数学,概率论和 等等),物理等。
在其中输入公式非常容易:
- 输入简单符号与在文本字段中输入数据类似
- 在附加菜单的帮助下输入特殊符号和公式元素 »
最好是因为你可以借助额外的按钮菜单组件和/或使用数学表达式字符串和/或使用预定义的方法直接在“textfield”组件中编辑公式。
希望它有所帮助!
答案 3 :(得分:0)
几个月前我遇到了同样的问题,我通过获取可以从Delphi调用的LaTeX渲染器DLL解决了这个问题。然后你只是调用它,将表达式作为一个字符串给它,它返回一个包含渲染表达式的位图。
我遗憾地忘记了这个名字:(但是你应该可以通过寻找“latex dll delphi”来找到它吗?