![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.10.2007
Сообщений: 19
|
![]()
Сутки добрые, Уважаемые знатоки!
Помогите разобраться со следующим: Есть некий алгоритм генерации текста в поле Memo из множества других полей TEdit по определенному шаблону, тоесть обскакиваем каждый TEdit, ищем его тег в шаблоне (на мотив phpBB [::тег::]) и заменяем его на текст из TEdit, таким образом конструируется текст в TMEmo... Генератор стоит на таймере, который сбивается поновой на OnChange каждого TEdit, таким образом генерация происходит по нажатию последнего символа и ожиданием в секунду. Текст мерцает при изменении одного из TEdit, тоесть реконструируется в TMemo каждый раз по новой, начиная с загрузки шаблона для текста и тд... Проблема нагрянула такая: С развитием прог продукта, образовалось, допустим, уже тысяча компонентов Tedit, при которых текст теперь генерируется слишком долго, невыносимо долго... Подскажите подход к данной проблеме, возможно кто-то сталкивался с подобным? Каким образом можно организовать процесс одновременного изменения текста в TEdit и на его потенциально заменяемом месте в TMemo? |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
![]()
генерацию текста сделать не на OnChange каждого TEdit, а только когда необходимо
1. формируем лист строк из текста TEdit'ов при помощи указателей, а не простым копированием строк (1-ая строка = указатель на текст 1-ого TEdit и т.д.) 2. работать со строками при помощи указателей (важно!!!) 3. инициировать генерацию только в нужный момент, подумайте, а можно ли обойтись без таймера
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 03.10.2007
Сообщений: 19
|
![]()
1. хм... А как насчет остальных, и +если строка не первая а 30я?
2. =п.1 3. В нужный момент - это уже не интерактивный, программа была нацелена на избавление от лишних телодвижений ![]() Но всеравно, спасибо за отклик! |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
![]()
в смысле а как насчет остальных? я ж говорю список строк, каждая строка содержит текст определенного эдита, сколько эдитов - столько строк
30 строка = p^[29], примерно так (т.е. пробегать нужно по списку с помощью указателей, а не по эдитам) далее - генерацию делать НЕ по таймеру, а по событию OnChange тогда вызывать генерацию, а не сбивать таймер, в котором вызывается эта генерация.
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] Последний раз редактировалось RUSt88; 12.03.2010 в 19:26. |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
2. держать наготове разобранный шаблон с указаниями что и куда вставлять что-то вроде текст(1-26) Еdit20.text текст(30-90) edit26.text
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 13.03.2010 в 09:19. |
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 03.10.2007
Сообщений: 19
|
![]()
Уже нашел решение, спасибо за советы и наводки
![]() Буду расставлять текст по позициям с учетом смещений по тексту |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сцепление текстов | 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 |