【问题标题】:Delphi component or library to display mathematical expressions用于显示数学表达式的 Delphi 组件或库
【发布时间】:2012-04-13 07:51:26
【问题描述】:

我正在寻找一个在 Delphi 中显示数学表达式的简单组件。当我开始时,我认为在网上找到一些东西很容易,但事实证明这比预期的要难。有很多组件会解析数学表达式,但很少(没有?)会显示它们。

理想情况下,我想要一个像 TLabel 这样简单的组件,我可以在其中将标题设置为某个表达式并且它会正确显示,但是让我将表达式绘制到画布上的某种库也足以满足我的需求需要。

更新:

我不是在谈论绘制函数图或类似的东西。我想显示(例如)

(X^2+3)/X

像这样:

解决方案:

MBo 的答案正是我想要的。有些人可能会对所有 cmets 和文档都是俄语的事实感到厌烦,但不要让这吓到你。它真的很容易使用。

安装:将文件(至少“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;

【问题讨论】:

    标签: delphi math


    【解决方案1】:

    Native Delphi module 由 Anton Grigoriev 绘制数学表达式。助理程序 - 俄语。 This is how it looks.

    关于学分的补充: 模块是免费的。 作者只要求提及(AboutBox 等)数学表达式是通过 Anton Grigoriev 编写的 ExprDraw 和 ExprMake 模块绘制的 (来自 readme.txt 的原始翻译)

    【讨论】:

    • @SveinBringsli,太完美了!我也去试试。
    • @Pateman 我不太清楚。它是为 Delphi 5 开发的。但我已经用 BDS XE 进行了检查,并且助手程序已成功编译(带有一些关于 unicode 内容的警告)并且可以正常工作。
    • 这东西的授权是什么?我什么都看不见
    • @Leonardo Herrera 它是免费的。我已在帖子中添加了有关学分的信息。
    【解决方案2】:

    我不知道原生的 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 математических формул рисования 
    

    我确定您搜索过类似的内容,但可能有一个关键字您忘记了。

    【讨论】:

      【解决方案3】:

      我一直在寻找类似的组件,而 MBo 的解决方案是可以接受的。

      我确信它也可以通过另一种方式完成:嵌入 TWebBrowser 并为 LaTex 和 MathML 公式使用现有的 javascript 渲染器,但是......

      我刚刚尝试了QDSEquations,我认为这是一个更好的解决方案!

      ⟪ Delphi 组件方程编辑器,允许您输入和显示任何复杂的数学公式,从简单的希腊符号到 矩阵和复杂的积分表达式。您可以使用等式 在 Delphi 环境中编写的项目中的编辑器,用于 例如,在测试不同数学领域知识的程序中 (数学分析、离散数学、概率论和 等等),物理和其他。

      在里面输入公式很容易:

      • 简单符号的输入类似于在文本字段中输入数据
      • 在附加菜单的帮助下输入特殊符号和公式元素 ⟫

      这样更好,因为您可以借助附加的按钮菜单组件和/或使用数学表达式字符串和/或使用预定义的方法,直接在“文本字段”组件中编辑公式。

      希望对您有所帮助!

      【讨论】:

        【解决方案4】:

        几个月前我遇到了同样的问题,我通过获取可以从 Delphi 调用的 LaTeX 渲染器 DLL 解决了这个问题。然后你调用它,将表达式作为字符串提供给它,它会返回一个包含渲染表达式的位图。

        不幸的是,我忘记了这个名字:(但你应该可以通过寻找“latex dll delphi”再次找到它?

        【讨论】:

        • 我很久以前就丢失了源。我确实记得它使用起来非常简单,尤其是如果您花时间制作一个漂亮的界面单元。
        • 感谢您的回答。 Ghostscript 不是偶然的吗?
        • 不这么认为。它只是一个基本的 DLL,它具有 function(Expression: PChar): HBITMAP; 形式的导出并直接完成所有渲染。但这就是我能记得的全部。记忆不是我的强项:p
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多