Интерактивный генератор текстов

Общие вопросы: версии и диалекты, синтаксис языка, cтруктуры и типы данных (массивы, строки, списки...), обработка данных и т.д.
Ответить
095
Сообщения: 34
Зарегистрирован: 13 авг 2008, 19:15
Контактная информация:

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

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

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

Подскажите подход к данной проблеме, возможно кто-то сталкивался с подобным?
Каким образом можно организовать процесс одновременного изменения текста в TEdit и на его потенциально заменяемом месте в TMemo?
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Заменять строки под конкретным индексом (строкой), соотв вести учёт положения в памяти или ещё где..
Под тысячей эдитов комп ляжет или по крайней мере тупить будет неподецки, не взирая на навороченность железа, думать нужно в сторону деревьев..
[syntax=Delphi] [/syntax]
095
Сообщения: 34
Зарегистрирован: 13 авг 2008, 19:15
Контактная информация:

Спасибо, уже ближе :) )
ps: конечно не строка, она же может быть и 30й и 159й, да и окажется после уже сгенерированных (или в них) - тут еще телодвижения надо и последущее зависание программы...
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Зачем такая тьма TEdit-ов?
Не проще ли скинуть все это в один TMemo и читать по строкам? Та же самая тысяча строк и получится, а экономия памяти на порядок-два выше.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
095
Сообщения: 34
Зарегистрирован: 13 авг 2008, 19:15
Контактная информация:

Так требует судьба нашего предприятия ;)
IceFlame
Сообщения: 62
Зарегистрирован: 29 ноя 2009, 03:54

А тег может встречаться много раз или только один?
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

095 писал(а):Так требует судьба нашего предприятия ;)
Кривую судьбу надо менять. Все счастье мира не стоит одной слезинки ребенка, и никакая судьба не стоит того, чтобы делать тысячу эдитов на форме.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
095
Сообщения: 34
Зарегистрирован: 13 авг 2008, 19:15
Контактная информация:

Судя по тому что задействовано имя TEdit - то каждый уникален
А смысла повторений в тексте одних и тех же сведений не вижу
095
Сообщения: 34
Зарегистрирован: 13 авг 2008, 19:15
Контактная информация:

Хыиуду писал(а):Кривую судьбу надо менять. Все счастье мира не стоит одной слезинки ребенка, и никакая судьба не стоит того, чтобы делать тысячу эдитов на форме.

Там не только тип TEdit, есть и другие TMemo, TStringGrid, TComboBox и тд ;)
Ответить