Вот, нада написать редактор формул. Что можете посоветовать? Какой бозовый контрол ллучше выбрать? Общии концепции написания редактора? Общие советы? Спасибо.
Здравствуйте, TheOldMen, Вы писали:
TOM>Вот, нада написать редактор формул. Что можете посоветовать? Какой бозовый контрол ллучше выбрать? Общии концепции написания редактора? Общие советы? Спасибо.
Тебе надо обратиться в форум по проектированию, а затем в форум по пользовательскому интерфейсу. Вопрос слишком общий, чтобы давать конкретные советы.
Здравствуйте, TheOldMen, Вы писали:
TOM>Вот, нада написать редактор формул. Что можете посоветовать? Какой бозовый контрол ллучше выбрать? Общии концепции написания редактора? Общие советы? Спасибо.
Ну насчет контрола, я думаю ты сам разберешься. Гораздо сложнее разобрать синтаксис, проанализировать и вычичилить результат.
Для этого выражение представляется в виде обратной польской записи, а затем обрабатыается. Это длиная песня.
Но есть и другой путь. Может не столь правильный, но гораздо более короткий.
Тебе потребуется подключиться к какой-либо базе данных (например через ODBC). Чем мощнее база данных, тем больше возможностей будет у твоего редактора формул. Можно использовать MS SQL, можно поключиться к dbf-файлу, но я бы порекомендовал подключаться к Access.
Итак создаешь в своем приложении три компонента например ADOQuery, Memo и кнопку.
1) В базе данных создаешь таблицу (напрмер с именем Tab1) с одним полем (Например Fld1 и с одной пустой записью)
2) В Мемо пишешь формулу (например 1+1)
3) При нажатии на кнопку формируешь запрос ADOQuery->SQL->Text="Select "+Memo->Lines->Text+" as Result From Tab1"
4) Выполняешь запрос ADOQuery->Open()
5) Результат можно получить так:ADOQuery->FieldByName("Result")->Text
Здравствуйте, VitaliyDoroshko, Вы писали:
VD>Ну насчет контрола, я думаю ты сам разберешься. Гораздо сложнее разобрать синтаксис, проанализировать и вычичилить результат. VD>Для этого выражение представляется в виде обратной польской записи, а затем обрабатыается. Это длиная песня. VD>Но есть и другой путь. Может не столь правильный, но гораздо более короткий. VD>Тебе потребуется подключиться к какой-либо базе данных (например через ODBC). Чем мощнее база данных, тем больше возможностей будет у твоего редактора формул. Можно использовать MS SQL, можно поключиться к dbf-файлу, но я бы порекомендовал подключаться к Access. VD>Итак создаешь в своем приложении три компонента например ADOQuery, Memo и кнопку. VD>1) В базе данных создаешь таблицу (напрмер с именем Tab1) с одним полем (Например Fld1 и с одной пустой записью) VD>2) В Мемо пишешь формулу (например 1+1) VD>3) При нажатии на кнопку формируешь запрос ADOQuery->SQL->Text="Select "+Memo->Lines->Text+" as Result From Tab1" VD>4) Выполняешь запрос ADOQuery->Open() VD>5) Результат можно получить так:ADOQuery->FieldByName("Result")->Text
В действительности мне не нужно расчитывать значения формул. Мне нужно просто их редактировать.
А конрол я могу взять как TImage, но будет ли это рационально, я, к сожалелъю, не знаю...
Здравствуйте, VitaliyDoroshko, Вы писали:
VD>Здравствуйте, TheOldMen, Вы писали:
TOM>>Вот, нада написать редактор формул. Что можете посоветовать? Какой бозовый контрол ллучше выбрать? Общии концепции написания редактора? Общие советы? Спасибо.
VD>Ну насчет контрола, я думаю ты сам разберешься. Гораздо сложнее разобрать синтаксис, проанализировать и вычичилить результат. VD>Для этого выражение представляется в виде обратной польской записи, а затем обрабатыается. Это длиная песня. VD>Но есть и другой путь. Может не столь правильный, но гораздо более короткий. VD>Тебе потребуется подключиться к какой-либо базе данных (например через ODBC). Чем мощнее база данных, тем больше возможностей будет у твоего редактора формул. Можно использовать MS SQL, можно поключиться к dbf-файлу, но я бы порекомендовал подключаться к Access. VD>Итак создаешь в своем приложении три компонента например ADOQuery, Memo и кнопку. VD>1) В базе данных создаешь таблицу (напрмер с именем Tab1) с одним полем (Например Fld1 и с одной пустой записью) VD>2) В Мемо пишешь формулу (например 1+1) VD>3) При нажатии на кнопку формируешь запрос ADOQuery->SQL->Text="Select "+Memo->Lines->Text+" as Result From Tab1" VD>4) Выполняешь запрос ADOQuery->Open() VD>5) Результат можно получить так:ADOQuery->FieldByName("Result")->Text
Еще не было так смяшно, вы бы еще кого нибудь заказали сидеть за аськлй и слать ответы на вычисление формул, а с программы слали бы человеку формулу
Здравствуйте, ilnar, Вы писали:
I>Здравствуйте, VitaliyDoroshko, Вы писали:
VD>>Здравствуйте, TheOldMen, Вы писали:
TOM>>>Вот, нада написать редактор формул. Что можете посоветовать? Какой бозовый контрол ллучше выбрать? Общии концепции написания редактора? Общие советы? Спасибо.
VD>>Ну насчет контрола, я думаю ты сам разберешься. Гораздо сложнее разобрать синтаксис, проанализировать и вычичилить результат. VD>>Для этого выражение представляется в виде обратной польской записи, а затем обрабатыается. Это длиная песня. VD>>Но есть и другой путь. Может не столь правильный, но гораздо более короткий. VD>>Тебе потребуется подключиться к какой-либо базе данных (например через ODBC). Чем мощнее база данных, тем больше возможностей будет у твоего редактора формул. Можно использовать MS SQL, можно поключиться к dbf-файлу, но я бы порекомендовал подключаться к Access. VD>>Итак создаешь в своем приложении три компонента например ADOQuery, Memo и кнопку. VD>>1) В базе данных создаешь таблицу (напрмер с именем Tab1) с одним полем (Например Fld1 и с одной пустой записью) VD>>2) В Мемо пишешь формулу (например 1+1) VD>>3) При нажатии на кнопку формируешь запрос ADOQuery->SQL->Text="Select "+Memo->Lines->Text+" as Result From Tab1" VD>>4) Выполняешь запрос ADOQuery->Open() VD>>5) Результат можно получить так:ADOQuery->FieldByName("Result")->Text
I> I> I> I> I> I>Еще не было так смяшно, вы бы еще кого нибудь заказали сидеть за аськлй и слать ответы на вычисление формул, а с программы слали бы человеку формулу
Многие знают пословицу "Краткость — сестра таланта".
Но не многие знают продолжение пословицы: "И теща гоногара".
Здравствуйте, VitaliyDoroshko, Вы писали:
VD>Ну насчет контрола, я думаю ты сам разберешься. Гораздо сложнее разобрать синтаксис, проанализировать и вычичилить результат.
Интересно Вы разделили задачи по степени сложности.
Остольную часть поста опускаю — без слёз не могу подобное читать.
Здравствуйте, Dimonka, Вы писали:
D>Здравствуйте, VitaliyDoroshko, Вы писали:
VD>>Ну насчет контрола, я думаю ты сам разберешься. Гораздо сложнее разобрать синтаксис, проанализировать и вычичилить результат.
D>Интересно Вы разделили задачи по степени сложности.
D>Остольную часть поста опускаю — без слёз не могу подобное читать.
>А конрол я могу взять как TImage, но будет ли это рационально, я, к сожалелъю, не знаю...
Здравствуйте, VitaliyDoroshko, Вы писали:
VD>Здравствуйте, Dimonka, Вы писали:
D>>Здравствуйте, VitaliyDoroshko, Вы писали:
VD>>>Ну насчет контрола, я думаю ты сам разберешься. Гораздо сложнее разобрать синтаксис, проанализировать и вычичилить результат.
D>>Интересно Вы разделили задачи по степени сложности.
D>>Остольную часть поста опускаю — без слёз не могу подобное читать.
>>А конрол я могу взять как TImage, но будет ли это рационально, я, к сожалелъю, не знаю...
VD>Извини, я не правильно понял задачу.
Самое сложное, это именно редактор... Тут нужно понять что ты от него хочеш, как вводить данные.
Можна например за основу взять редактор формул с Winword и делать по образу и подобию
А пропарсить формулу — это задачка со школьной олимпиады.
Я этих парсеров в своей жизни наверное с десяток понаписывал...
Re[5]: Редактор формул
От:
Аноним
Дата:
19.07.05 07:56
Оценка:
D>Самое сложное, это именно редактор... Тут нужно понять что ты от него хочеш, как вводить данные. D>Можна например за основу взять редактор формул с Winword и делать по образу и подобию
А если использовать Microsoft Equation из офиса? Это вроде СOM.
Здравствуйте, TheOldMen, Вы писали:
TOM>Вот, нада написать редактор формул. Что можете посоветовать? Какой бозовый контрол ллучше выбрать? Общии концепции написания редактора? Общие советы? Спасибо.
Если знакомы с C++, то вот здесь лежит статья про написание этого редактора формул, причем с полным исходным кодом и демонстрационным проектом.
Здравствуйте, Аноним, Вы писали:
D>>Самое сложное, это именно редактор... Тут нужно понять что ты от него хочеш, как вводить данные. D>>Можна например за основу взять редактор формул с Winword и делать по образу и подобию
А>А если использовать Microsoft Equation из офиса? Это вроде СOM.
Нет. К сожаленью не могу использовать его. Редактор формул будет содержать спецефические символы, которые в обычной жизни редко можно встретить
Здравствуйте, TheOldMen, Вы писали:
TOM>Здравствуйте, Сергей, Вы писали: С>>Здравствуйте, TheOldMen, Вы писали: TOM>>> Какой базовый контрол лучше выбрать? С>>TPaintBox TOM>Почему имменно его?
TImage, к примеру, хранит все изображение в памяти. В принципе, TPaintBox — это тот компонент VCL, который "необходим и достаточен" для ваших целей. То есть кладем TPaintBox на форму и пишем обработчик OnPaint — где и рисуем формулу.
Здравствуйте, TheOldMen, Вы писали:
TOM>Здравствуйте, Аноним, Вы писали:
D>>>Самое сложное, это именно редактор... Тут нужно понять что ты от него хочеш, как вводить данные. D>>>Можна например за основу взять редактор формул с Winword и делать по образу и подобию
А>>А если использовать Microsoft Equation из офиса? Это вроде СOM.
TOM>Нет. К сожаленью не могу использовать его. Редактор формул будет содержать спецефические символы, которые в обычной жизни редко можно встретить
да то у тебя просто хорошего SQL сервера нет! бери Informix! на него знаешь какие есть комерческие датаблейды — все посчитают и раскрасяи и назад в хтмл завернут! ))
Здравствуйте, TheOldMen, Вы писали:
TOM>Вот, нада написать редактор формул. Что можете посоветовать? Какой бозовый контрол ллучше выбрать? Общии концепции написания редактора? Общие советы? Спасибо.
Если еще актуально
В свое время я скачивал с Королевства Delphi модули для отображения математических формул ExprDraw и ExprMake Антона Григорьева.
К сожалению ссылку потерял а сами файлы остались. Если нужно могу переслать.
...<< RSDN@Home 1.1.4 beta 7 rev. 500>>
...Foobar {Владимир Кузьмин и группа "Динамик" — [Возьми с собой #13] Огонь (Обойдет сто