19

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;
4

4 に答える 4

16

数式を描画するための Anton Grigoriev によるネイティブ Delphi モジュール。アシスタントプログラム - ロシア語。これがその外観です。

クレジットについての追加: モジュールは無料です。著者は、Anton Grigoriev によって書かれた ExprDraw および ExprMake モジュールを使用して数式が描画されたことに言及する (AboutBox など) ことのみを求めています (readme.txt からの生の翻訳)。

于 2012-04-13T11:47:33.840 に答える
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 の回答からわかるように、他の言語で検索することもお勧めです :-)

delphi математических формул рисования 

そんなことを検索したことはあると思いますが、忘れているキーワードが 1 つあります。

于 2012-04-13T11:15:52.420 に答える
2

しばらくの間、同様のコンポーネントを探していましたが、MBo のソリューションは受け入れられるでしょう。

TWebBrowser を埋め込み、LaTex と MathML の数式に既存の JavaScript レンダラーを使用するという別の方法でも実行できると確信していましたが、...

QDSEquationsを試してみたところ、さらに優れたソリューションだと思います!

⟪ 単純なギリシャ記号から行列や複雑な積分式まで、あらゆる複雑な数式を入力および表示できる Delphi コンポーネントの数式エディタ。Delphi 環境で作成されたプロジェクトで方程式エディタを使用できます。たとえば、さまざまな数学分野(数学的分析、離散数学、確率論など)、物理学などの知識をテストするプログラムで使用できます。

式を入力するのは非常に簡単です。

  • テキスト フィールドにデータを入力するのと同じように、単純な記号を入力します。
  • 特殊記号と数式要素は、追加メニューを使用して入力します ⟫</li>

追加のボタン メニュー コンポーネントを使用したり、数式文字列を使用したり、定義済みのメソッドを使用したりして、「テキスト フィールド」コンポーネントで数式を直接編集できるため、より優れています。

それが役に立ったことを願っています!

于 2013-03-01T11:21:33.483 に答える
0

私は数ヶ月前に同じ問題を抱えていました.Delphiから呼び出すことができるLaTeXレンダラーDLLを入手することで解決しました. 次に、それを呼び出して式を文字列として渡すと、レンダリングされた式を含むビットマップが返されました。

残念ながら名前を忘れてしまいました:(しかし、「latex dll delphi」を探すことで再び見つけることができるはずです?

于 2012-04-13T12:05:00.653 に答える