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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2009, 21:44   #1
Homer_J_Simpson
Пользователь
 
Аватар для Homer_J_Simpson
 
Регистрация: 15.11.2009
Сообщений: 16
По умолчанию Вопрос к тем, кто работал с TRichEdit в borland

В общем пишу программу расчёта, которая данные, сначала введённые, а потом результаты записывает в TRichEdit. У выводимого текста периодически меняется цвет и стиль. Через несколько выводов, едит сходит с ума и начинает выводить текст с цветами и стилями в перемешку. Кто нибудь сталкивался с этим?

Код:
void TForm1::showResults(InputData &d, InpDataConv &c) {
	map<UnicodeString, UnicodeString> dataMap = d.getMap();
	map<UnicodeString, double> resultsMap = c.getMap();
	map<UnicodeString, UnicodeString>::iterator it;
	map<UnicodeString, double>::iterator itC;
	resultsPane->DefAttributes->Size = 10;
	resultsPane->SelAttributes->Style = resultsPane->SelAttributes->Style << fsBold;
	resultsPane->SelAttributes->Color = clBackground;
	resultsPane->Lines->Add("Решаемая задача:");
	resultsPane->SelAttributes->Style = resultsPane->SelAttributes->Style << fsBold;
	resultsPane->SelAttributes->Color = clBackground;
	resultsPane->Lines->Add(*problemNames[prob][subProb]);
	resultsPane->SelAttributes->Style = resultsPane->SelAttributes->Style << fsBold;
	resultsPane->SelAttributes->Color = clGreen;
	resultsPane->Lines->Add("Введённые данные:");
	for (it = dataMap.begin(); it != dataMap.end(); it++) {
		UnicodeString key = it->first;
		UnicodeString desc = links[key];
		if (desc != "") {
         	UnicodeString value =  it->second;
			resultsPane->Lines->Add(desc + value);
		}
	}
	resultsPane->Lines->Add("--------------------------");
    resultsPane->SelAttributes->Style = resultsPane->SelAttributes->Style << fsBold;
	resultsPane->SelAttributes->Color = clGreen;
	resultsPane->Lines->Add("Результаты расчёта:");
	for (itC = resultsMap.begin(); itC != resultsMap.end(); itC++) {
		UnicodeString key = itC->first;
		UnicodeString desc = links[key];
		if (key.Length() != 5) {
			double value = itC->second;
			resultsPane->Lines->Add(desc + value);
		} else {
			resultsPane->Lines->Add(desc);
		}
	}
	resultsPane->Lines->Add("--------------------------");
//	resultsPane->Lines->Add(""); // causes font changes
}
на всякий случай привёл метод, мб я чего не так делаю.
Последнюю строку закоментил, т. к. она стабильно на второй вывод первую выводимую строку делала с дефолтными параметрами.\

для ясности:
TRichEdit *resultsPane;
d - параметр введённых данных для вывода
с - параметр результатов для вывода
links[] - массив строк, описаний к ключам выводимых данных

Последний раз редактировалось Homer_J_Simpson; 29.11.2009 в 21:48.
Homer_J_Simpson вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Просьба к тем, кто работал с SPI для Atmel Sannara Помощь студентам 13 18.02.2009 16:34
Вопрос к тем кто создавал для программы инсталяционный диск через InstallShield!!! Alexij Софт 1 20.06.2008 22:51
Вопрос к тем, кто имеет представление о PHP, JSP, ASP, ASP.NET child_of_july Помощь студентам 0 07.06.2008 00:25
Вопрос с тем кто знает БД на Paradox7. ~LiS~ БД в Delphi 4 14.04.2008 14:13