Многоэтажные дроби в wxWidgets

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
Maxim93
In need of some credit
In need of some credit
Posts: 7
Joined: Mon Jun 29, 2009 5:54 pm

Многоэтажные дроби в wxWidgets

Post by Maxim93 » Mon Jun 29, 2009 6:07 pm

Помогите реализовать ввод многоэтажных дробей в wxwidgets(С++). Есть ли какие-нибудь базовые классы в wx для их реализации?

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Post by borr_1 » Tue Jun 30, 2009 5:27 am

Не понятно что ты имеешь ввиду. Видимо тебе надо подсчитать результат строки типа (а+б)/(д*с). Так это тебе математ. парсер строк нужен.
Тут посмотри http://muparser.beltoforion.de/index.html muParser.

Еще можно просто с gAwk через командную строку работать.

http://www.gnu.org/software/gawk/manual ... ion-Syntax

Maxim93
In need of some credit
In need of some credit
Posts: 7
Joined: Mon Jun 29, 2009 5:54 pm

Post by Maxim93 » Thu Jul 09, 2009 2:30 pm

Нет,я имел ввиду дроби как в MatKad'е.Что-то типа:
1........45
--.+.4.------
2.........3
.........---
..........4
(Не обращай внимания на точки.)

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Post by borr_1 » Fri Jul 10, 2009 7:11 am

В плане красивого изображения? Можешь попробовать в wxGride нарисовать объединяя и раскрашивая нужные границы ячеек в толсты. Но похоже это не комельфо.
Можешь просто рисовать через wxDC на форуме масса примеров

Maxim93
In need of some credit
In need of some credit
Posts: 7
Joined: Mon Jun 29, 2009 5:54 pm

Post by Maxim93 » Sat Jul 18, 2009 1:03 pm

А как их вводить?

Kolya
Experienced Solver
Experienced Solver
Posts: 85
Joined: Mon Dec 11, 2006 11:35 am
Location: /dev/null

Post by Kolya » Sat Jul 18, 2009 11:56 pm

Можно использовать wxDC, в частности методы wxDC::GetTextExtent и wxDC::DrawText. А расположение уже самому просчитывать.

Maxim93
In need of some credit
In need of some credit
Posts: 7
Joined: Mon Jun 29, 2009 5:54 pm

Post by Maxim93 » Tue Jul 28, 2009 5:52 pm

Что делает wxDC::GetTextExtend?

Maxim93
In need of some credit
In need of some credit
Posts: 7
Joined: Mon Jun 29, 2009 5:54 pm

Post by Maxim93 » Tue Jul 28, 2009 5:55 pm

А как же считать текст и дать ввести его пользователю?

Kolya
Experienced Solver
Experienced Solver
Posts: 85
Joined: Mon Dec 11, 2006 11:35 am
Location: /dev/null

Post by Kolya » Tue Jul 28, 2009 10:58 pm

Maxim93 wrote:Что делает wxDC::GetTextExtend?
Выдает размер строки на экране
Maxim93 wrote:А как же считать текст и дать ввести его пользователю?
Ввод, а не вывод, можно произвести просто в текстовой форме как было сказано ранее: (а+б)/(д*с)
Просто надо параллельно отображать выводимую дробь проверять постоянно ее на валидность. И тогда пользователь будет доволен.

Или же искать отдельные библиотеки, которые это делают (если они есть). Можно покопаться в исходниках открытых аналогов MathCad-a.

Maxim93
In need of some credit
In need of some credit
Posts: 7
Joined: Mon Jun 29, 2009 5:54 pm

Post by Maxim93 » Wed Jul 29, 2009 7:55 am

В каких, например?

Kolya
Experienced Solver
Experienced Solver
Posts: 85
Joined: Mon Dec 11, 2006 11:35 am
Location: /dev/null

Post by Kolya » Wed Jul 29, 2009 10:13 am

Maxim93 wrote:В каких, например?
Что то вроде CompPad http://comppad.sourceforge.net/

Post Reply