2012-04-13 10 views
18

Poszukuję prostego komponentu, który wyświetla wyrażeń matematycznych w Delphi. Kiedy zaczynałem, myślałem, że łatwo będzie znaleźć coś w sieci, ale okazuje się, że było trudniej, niż się spodziewano. Istnieje wiele składników, które będą przetwarzać wyrażenia matematyczne, ale tylko kilka (brak?), Które je wyświetlają.Komponent lub biblioteka Delphi do wyświetlania wyrażeń matematycznych

Idealnie chciałbym, aby komponent był tak prosty jak TLabel, gdzie mógłbym ustawić napis na pewne wyrażenie i byłby wyświetlany poprawnie, ale jakaś biblioteka, która pozwoliłaby mi rysować wyrażenia na płótnie, byłaby również wystarczająca dla moje potrzeby.

Aktualizacja:

Nie mówię o kreślenia wykresów funkcji lub coś podobnego. I mają być wyświetlane (na przykład)

(X^2 + 3)/X

następująco:

enter image description here

Rozwiązanie:

MBo " Odpowiedź była dokładnie tym, czego szukałem. Niektórych może zniechęcić fakt, że wszystkie komentarze i dokumentacja są po rosyjsku, ale niech cię to nie przeraża. To było naprawdę łatwe w użyciu.

Instalacja: Rozpakuj pliki (przynajmniej "ExprMake.pas" i "ExprDraw.pas") do katalogu w ścieżce do biblioteki. to jest to!

Zastosowanie: Nie eksperymentowałem z nim intensywnie, ale te kilka linii pokazuje, jak łatwo jest.

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; 

Odpowiedz

14

Native Delphi module Anton Grigoriew do rysowania wyrażeń matematycznych. Program asystujący - po rosyjsku. This is how it looks.

Dodatek o kredytach: Moduły są bezpłatne.Autor prosi tylko wspomnieć (AboutBox etc), wyrażenia matematyczne zostały sporządzone za pomocą ExprDraw i ExprMake modułów napisanych przez Anton Grigoriew (tłumaczenie surowy z readme.txt)

+1

Awesome! Potrzebowałem pretekstu do nauki języka rosyjskiego :-) –

+0

Czy to zadziała pod XE2? – Pateman

+0

@Pateman: Pracował jak urok. –

4

nie wiem o natywnej implementacji Delphi, ale może to pytanie jest pomocne dla Ciebie: How to render a formula in WPF or WinForms. Wymienia niektóre rozwiązania C/C#, które mogłyby zostać przetłumaczone lub użyte jako DLL (patrz rozwiązanie OP).

Inną alternatywą może być ta Formulator ActiveX Control.

Ponadto może rozszerzyć wyniki wyszukiwania, jeśli używasz innych kryteriów wyszukiwania, zwłaszcza bez słowa kluczowego "Delphi". ;-)

renderer, formula, math, MathML, expression, engine, tex, ... 

I jak możemy się nauczyć od MBo's answer, może to być dobry pomysł, aby szukać w innych językach :-)

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

Jestem pewien, że szukał czegoś takiego , ale być może jest jedno słowo kluczowe, które zapomniałeś.

+3

+1 "render" wydaje się być najważniejszym słowem kluczowym, które przegapiłem :-) –

0

miałem ten sam problem kilka miesięcy temu rozwiązałem go, pobierając bibliotekę DLL renderera LaTeXa, którą można było wywołać z Delphi. Następnie po prostu wywołałeś to, podając wyrażenie jako ciąg znaków, i zwróciło ci bitmapę z wyrenderowanym wyrażeniem.

zapomniałem nazwy niestety :(ale powinieneś być w stanie go odnaleźć szukając „latex dll Delphi”?

+0

Czy możesz ujawnić jakiś kod źródłowy? – menjaraz

+0

Dawno straciłem źródło. Pamiętam, że było bardzo proste w użyciu, szczególnie jeśli poświęciłeś czas na stworzenie ładnej jednostki interfejsu. – Thomas

+0

Dziękujemy za odpowiedź. Wasn'it * Ghostscript * przez przypadek? – menjaraz

2

szukałem podobnego składnika na jakiś czas i rozwiązania MBO byłoby dopuszczalne.

byłem przekonany, że można to zrobić również w inny sposób: osadzanie TWebBrowser i stosując exixting javascript renderujący dla lateksu i wzorach MathML, ale ...

ja tylko starałem QDSEquations i myślę, że nawet lepsze rozwiązanie!

« Edytor równań komponentu Delphi, który umożliwia wprowadzanie i wyświetlanie formuł matematycznych o dowolnej złożoności, od prostych symboli greckich do macierzy i złożonych wyrażeń integralnych. Możesz użyć edytora równania w swoich projektach napisanych w środowisku Delphi, na przykład , w programach testujących wiedzę z różnych dziedzin matematyki (analiza matematyczna, matematyka dyskretna, teoria prawdopodobieństwa i itd.), Fizyka i inne.

Jest to dość łatwe do wprowadzenia formuły w niej:

  • proste symbole są wprowadzane w sposób podobny do wprowadzania danych w polu tekstowym
  • specjalne symbole i elementy formuły są wprowadzane za pomocą dodatkowego menu »

jest lepiej, bo można edytować bezpośrednio w formułę „textField” komponentu za pomocą dodatkowego elementu button-menu i/lub nas wyrażeń matematycznych i/lub przy użyciu predefiniowanych metod.

Mam nadzieję, że pomogło!

Powiązane problemy