Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Текстовый редактор на основе TMemo или RichEdit


Fynjisx ©   (2009-09-24 23:21:00) 

Привет Всем!
Хочу сделать что-то наподобие текстового редактора. в котором должно быть осуществлено следующее:

Каждая строка логически должна быть разделена на две колонки. Значения в первой колонке(или иными словами в первой части строки) формирует программа. А текст "второй колонки" (второй части строки), формируется пользователем. При этом он(пользователь) не имеет права редактировать текст в первой колонке(а в лучше случае не имеет туда доступа).
После того как пользователь напишет свой текст в разрешенном для него месте, а это как я уже объяснил -вторая часть строки, он нажимает на Enter. При это программа переходит на вторую строку, также формирует её начальную часть и переводит курсор на свою вторую часть, в которой может писать пользователь...
Подскажите как сделать. Использовал CaretPos но он как то двояко показывает позиции.
Заранее благодарю..


Vitaliy_____   (2009-09-28 09:34:00) [1]

Если использовать 2 мемо, то там будет сложность с синхронной прокруткой (хотя как это сделать темы были).
Как вариант, чем не устраивает СтрингГрид? Запретить редактирование 1-го столбца и писать во втором... Можно и с оформлением поиграться и прокрутка будет. Перекинуть фокус тоже не так сложно при нажатии enter...


Германн   (2009-09-28 04:07:00) [2]


> Каждая строка логически должна быть разделена на две колонки.
>  Значения в первой колонке(или иными словами в первой части
> строки) формирует программа. А текст "второй колонки" (второй
> части строки), формируется пользователем. При этом он(пользователь)
> не имеет права редактировать текст в первой колонке(а в
> лучше случае не имеет туда доступа).

Что-то это мне напоминает...
TValueListEditor may be?


Сергей М.   (2009-09-27 18:05:00) [3]

А где и в каком виде все это редактируемое хозяйство будет храниться после завершения работы программы ?


Fynjisx   (2009-09-26 23:08:00) [4]


> В столбце каждой строки не более 1 мбайта ?И все эти мегабайты
> должны быть одновременно видны редактирующему ?

ладно, примерно около 20строк будет видеть редактирующий, а всего строк думаю не более 50. Будет предусмотрен для этих целей скролл.


Омлет   (2009-09-25 19:39:00) [5]

> Fynjisx   (25.09.09 17:29) [5]

http://www.soft-gems.net/index.php?option=com_content&task=view&id=12&Itemid=33


Сергей М.   (2009-09-25 18:35:00) [6]


> Максимальная длина текста у меня не более 1МегаБайт


В столбце каждой строки не более 1 мбайта ?
И все эти мегабайты должны быть одновременно видны редактирующему ?
Чума)


Fynjisx   (2009-09-25 17:30:00) [7]


> И какова должна быть максимально допустимая длина текста
> в записях в каждой из колонок

Максимальная длина текста у меня не более 1МегаБайт


Fynjisx   (2009-09-25 17:29:00) [8]


> А не проще ли взять нормальный VTV и не мучиться?


А что такое VTV???


Anatoly Podgoretsky   (2009-09-25 13:12:00) [9]

2 гига строк и 2 гб в сумме на все


Сергей М.   (2009-09-25 11:19:00) [10]

И какова должна быть максимально допустимая длина текста в записях в каждой из колонок ?


Омлет   (2009-09-25 11:00:00) [11]

А не проще ли взять нормальный VTV и не мучиться?


{RASkov}   (2009-09-25 00:26:00) [12]

Использовать два ТМемо левый заполнять программно ридонли ему тру, а правый пользователю...
что бы убрать границу между ними можно сделать примерно так:
object Panel1: TPanel
 Left = 16
 Top = 16
 Width = 300
 Height = 200
 BevelOuter = bvLowered
 BevelWidth = 2
 Caption = 'Panel1'
 TabOrder = 0
 object Memo1: TMemo
   Left = 2
   Top = 2
   Width = 59
   Height = 196
   Align = alLeft
   BorderStyle = bsNone
   Lines.Strings = (
     'Memo1')
   ReadOnly = True
   TabOrder = 0
 end
 object Memo2: TMemo
   Left = 61
   Top = 2
   Width = 237
   Height = 196
   Align = alClient
   BorderStyle = bsNone
   Lines.Strings = (
     'Memo2')
   TabOrder = 1
 end
end


Наверх

Титульная страница Поиск, карта сайта Написать письмо