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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2010, 15:46   #1
095
Пользователь
 
Регистрация: 03.10.2007
Сообщений: 19
Печаль Интерактивный генератор текстов

Сутки добрые, Уважаемые знатоки!
Помогите разобраться со следующим:

Есть некий алгоритм генерации текста в поле Memo из множества других полей TEdit по определенному шаблону, тоесть обскакиваем каждый TEdit, ищем его тег в шаблоне (на мотив phpBB [::тег::]) и заменяем его на текст из TEdit, таким образом конструируется текст в TMEmo...
Генератор стоит на таймере, который сбивается поновой на OnChange каждого TEdit, таким образом генерация происходит по нажатию последнего символа и ожиданием в секунду.
Текст мерцает при изменении одного из TEdit, тоесть реконструируется в TMemo каждый раз по новой, начиная с загрузки шаблона для текста и тд...

Проблема нагрянула такая: С развитием прог продукта, образовалось, допустим, уже тысяча компонентов Tedit, при которых текст теперь генерируется слишком долго, невыносимо долго...

Подскажите подход к данной проблеме, возможно кто-то сталкивался с подобным?
Каким образом можно организовать процесс одновременного изменения текста в TEdit и на его потенциально заменяемом месте в TMemo?
095 вне форума Ответить с цитированием
Старый 12.03.2010, 16:46   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

генерацию текста сделать не на OnChange каждого TEdit, а только когда необходимо
1. формируем лист строк из текста TEdit'ов при помощи указателей, а не простым копированием строк (1-ая строка = указатель на текст 1-ого TEdit и т.д.)
2. работать со строками при помощи указателей (важно!!!)
3. инициировать генерацию только в нужный момент, подумайте, а можно ли обойтись без таймера
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 12.03.2010, 17:04   #3
095
Пользователь
 
Регистрация: 03.10.2007
Сообщений: 19
По умолчанию

1. хм... А как насчет остальных, и +если строка не первая а 30я?
2. =п.1
3. В нужный момент - это уже не интерактивный, программа была нацелена на избавление от лишних телодвижений

Но всеравно, спасибо за отклик!
095 вне форума Ответить с цитированием
Старый 12.03.2010, 19:20   #4
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

в смысле а как насчет остальных? я ж говорю список строк, каждая строка содержит текст определенного эдита, сколько эдитов - столько строк
30 строка = p^[29], примерно так (т.е. пробегать нужно по списку с помощью указателей, а не по эдитам)

далее - генерацию делать НЕ по таймеру, а по событию OnChange тогда вызывать генерацию, а не сбивать таймер, в котором вызывается эта генерация.
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]

Последний раз редактировалось RUSt88; 12.03.2010 в 19:26.
RUSt88 вне форума Ответить с цитированием
Старый 13.03.2010, 09:14   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
Текст мерцает при изменении одного из TEdit, тоесть реконструируется в TMemo каждый раз по новой, начиная с загрузки шаблона для текста
1. готовить текст вне Memo (например string; TstringList ) и показывать уже готовый
2. держать наготове разобранный шаблон с указаниями что и куда вставлять что-то вроде
текст(1-26)
Еdit20.text
текст(30-90)
edit26.text
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 13.03.2010 в 09:19.
evg_m вне форума Ответить с цитированием
Старый 15.03.2010, 10:09   #6
095
Пользователь
 
Регистрация: 03.10.2007
Сообщений: 19
По умолчанию

Уже нашел решение, спасибо за советы и наводки
Буду расставлять текст по позициям с учетом смещений по тексту
095 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сцепление текстов Igor001 Microsoft Office Excel 3 13.02.2010 16:27
Интерактивный дизассемблер valerij Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 23.12.2009 02:41
Цифры текстов Maruff Microsoft Office Excel 1 10.12.2009 18:16
сделать интерактивный тест чтоб по локальной сети его проходили сразу несколько человек CheGuevera БД в Delphi 4 10.06.2008 19:21
Интерактивный интерфейс!? grevis HTML и CSS 5 10.09.2007 14:48