Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2010, 23:36   #1
nuevegramodelamor
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 75
По умолчанию как реализовать смещение в richedit'e?подробности внутри

Подробности в прикреплённом файле)
Для тех кому лень качать...Есть программа для умножения дробных чисел столбиком и последующем выводом результата в ричедит...В ричедите поставил выравнивание по правому краю...А как сделать поразрядный сдвиг влево?
Вложения
Тип файла: zip Multiplication.zip (1.01 Мб, 7 просмотров)
nuevegramodelamor вне форума Ответить с цитированием
Старый 28.05.2010, 00:08   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

А как выглядит "поразрядный сдвиг влево" применительно к RichEdit?
Скандербег вне форума Ответить с цитированием
Старый 28.05.2010, 00:23   #3
nuevegramodelamor
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 75
По умолчанию

ну вот умножение чисел:
____33,33
___*
____12,12
-----
_____6666
____+
____3333
____+
___6666

как сделать что бы в ричедите тоже смещались результаты?

Последний раз редактировалось nuevegramodelamor; 28.05.2010 в 00:25.
nuevegramodelamor вне форума Ответить с цитированием
Старый 28.05.2010, 00:46   #4
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Самое простое - установить в RichEdit фиксированный шрифт (Courier New) и добавлять справа в строке результата столько пробелов, сколько нужно для смещения.
Скандербег вне форума Ответить с цитированием
Старый 28.05.2010, 01:01   #5
nuevegramodelamor
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Скандербег Посмотреть сообщение
Самое простое - установить в RichEdit фиксированный шрифт (Courier New) и добавлять справа в строке результата столько пробелов, сколько нужно для смещения.
не работает...только что для теста написал
sRichEdit1.Lines.Add(result[i]+' ') и всё равно впритык к правому краю)
nuevegramodelamor вне форума Ответить с цитированием
Старый 28.05.2010, 01:11   #6
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

В RichEdit концевые пробелы не работают (он их удаляет), а Memo их нормально отрабатывает.
В RichEdit можно еще вместо пробелов ставить точки. RichEdit их не сможет игнорировать.
Но неизвестно, насколько такое приемлемо в этой задаче.
Скандербег вне форума Ответить с цитированием
Старый 28.05.2010, 01:24   #7
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Можно поступить "наоборот". Выравнивание влево. Сдвиг множителей сделать, допустим, на 15-20 пробелов, а каждый из результатов на один пробел меньше. Тогда и RichEdit прокатит.
Скандербег вне форума Ответить с цитированием
Старый 28.05.2010, 01:24   #8
nuevegramodelamor
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 75
По умолчанию

спасибо использовал мемо)всё работает,но вот беда,есть странные пустые строки((
может кто посмотреть в чём причина
Изображения
Тип файла: jpg Безымянный.JPG (14.1 Кб, 75 просмотров)
Вложения
Тип файла: zip Multiplication.zip (2.1 Кб, 7 просмотров)
nuevegramodelamor вне форума Ответить с цитированием
Старый 28.05.2010, 01:57   #9
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Код:
for i:=1 to length(num2) do  begin
   if num2[i]<>',' then  begin
    arraynumStr[i]:=num2[i];
    arraynumInt[i]:=strtoint(arraynumStr[i]);
    result[i]:=floattostr(arraynumInt[i]*num1T);
   end;
 end;
end;
Из-за условия num2[i]<>',' в массиве result (лучше не использовать зарезервированные слова) остаются дырки, которые и приводят к пустым строкам в Memo и RichEdit.
Конечно, вместо статического массива здесь напрашивается динамический строковый массив. Например TStringList.
Скандербег вне форума Ответить с цитированием
Старый 28.05.2010, 12:29   #10
nuevegramodelamor
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 75
По умолчанию

спасибо)сейчас почитаю про динамические массивы)а-то не работал с ними
nuevegramodelamor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посмотрите ошибки функции ...подробности внутри NopeR Общие вопросы C/C++ 2 19.01.2010 18:46
Подскажите пожалуйста, Как реализовать нумерацию. Условие внутри. vladtr Microsoft Office Excel 2 10.06.2009 15:36
как в Делфи создать кнопочку "ОК". подробности внутри темы.... Кристина2008 Общие вопросы Delphi 2 09.12.2008 22:49
Пара задачек по Паскалю подробности внутри-> Nexx Помощь студентам 6 03.10.2007 09:08