|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
TEdit. Изменение стандартных возможностей/параметров
Здравствуйте, не знаю как еще более точно назвать тему, но суть в том, что возникла необходимость довольно-таки координально изменить внешний вид и поведение компонента TEdit.
В процессе столкнулся с несколькими вещами, на которые самостоятельно найти ответа не могу. Прошу вашего совета! 1. Реально ли изменить вид курсора при наведении на определенную область TEdit? Есть у меня на краю контрола область, например, 20 на 20 пикселей, как заставить курсор стать дефолтным при наведении на указанную область? 2. Реально ли ограничить отображение текста, вводимого в edit на определенную длину. например, если длина контрола 120, то можно ли сделать так, чтобы прокрутка текста начиналась не после того, как текст займет все 120 точек окна, а после 100 точек? |
#2
|
||||
|
||||
1. Изменить вид курсора для TEdit несложно, там для этого есть свойство Cursor. Изменять вид курсора в зависимости от положения в самом TEdit уже сложнее, но тоже можно:
Код:
procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if (X in [Edit1.ClientRect.Left..Edit1.ClientRect.Left+20]) and (Y in [Edit1.ClientRect.Top..Edit1.ClientRect.Top+20]) then Edit1.Cursor := crHandPoint else Edit1.Cursor := crDefault end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
За ограничение длины вводимого текста отвечает свойство MaxLength
|
#4
|
|||
|
|||
Цитата:
Если включить телепатию, то автор хочет не ограничение длины вводимого текста, а ограничение области внутри контрола, в которой будет отображаться текст. Я прав? |
#5
|
||||
|
||||
icWasya, да, прав. а в оставшейся области нарисовать updown кнопки, потому что готовые решения не красивые по мнению автора.
еще курсор на кнопках должен быть в виде 3D стрелки) я так думаю, что скоро мы увидим первый в мире Control для анаглифных очков))) сорри за оффтоп Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 20.10.2011 в 10:52. |
#6
|
|||
|
|||
или сделать borderstyle-none и расположить на image в котором нарисовать чо хочешь
|
#7
|
||||
|
||||
Вообще делают несколько проще. К стандартному едиту еще прицепляют кнопку и уже работают с парой контролов
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#8
|
|||
|
|||
Спасибо за ответы!!
Страдалецъ, а что значит "прицепить к эдиту"? Создать компонент, на котором расположить эдит и кнопку? Pyro, в моем случае вариант составного компонента непригоден, за основу берется один компонент, в данном случае tedit, и переделывается |
#9
|
|||
|
|||
Цитата:
|
#10
|
|||
|
|||
t116, про MaxLength я знаю, но это не то. Длина текста у меня не ограничена, ограничена область отображения.
|
#11
|
|||
|
|||
Цитата:
|
#12
|
|||
|
|||
Цитата:
интересно, получится ли переопределив Createparams, сделать из singleline multiline? |
#13
|
||||
|
||||
Не пойму почему нельзя сделать составной компонент? Комбобокс пример такого составного компонента. Вполне удобно. Вы что в итоге хотите получить-то? Картинку хотя-бы покажите, что должно получится.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#14
|
|||
|
|||
я делаю поле для ввода чисел со встроенным UpDown.
поле для ввода чисел уже готово, сейчас прикручиваю туда кнопки. делать составной компонент нехорошо в плане производительности. перед тем как начать делать свои компоненты просматривали платные библиотеки, иногда доходило до абсурда - компонент медленно работал на i5. и вот даже в этом случае, пусть это маленький компонент, но если их на форме будет 50 штук, а такое вполне допустимо, то на старых компьютерах могут быть проблемы с работой. |
#15
|
|||
|
|||
сейчас застопорился на том, как повоторить реализацию свойства WrapText у TMemo. Не пойму какой стиль окна за это отвечает, пробую ES_AUTOHSCROLL - не срабатывает =\
|