Мой DELPHI – Программирование

Всё для программера

Как ограничить длинну текста, вводимого в TEdit

Вопрос:
Как ограничить длинну текста, вводимого в TEdit, так чтобы ширина текста не превышала
ширину TEdit'а?

Ответ:

В примере приведено два
способа ограничить длинну текста в TEdit так чтобы она не превышала ширину клиентской
области окна TEdit’а и не появлялась прокрутка текста. Первый способ устанавливает
свойство TEdit’а MaxLength равным числу букв “W”, которые поместятся в TEdit.
“W” выбрана потому, что является, наверное, самой широкой буквой в любом шрифте.
Этот метод сносно работает для шрифтов с фиксированной шириной букв, но для
шрифтов с переменной шириной букв вряд ли сгодится. Второй способ перхватывает
событие KeyPress TEdit’а и измеряет ширину уже введенного текста и ширину нового
символа. Если ширина больше чем клиентская область TEdit’а новый символ отбрасывается
и вызывается MessageBeep. Прочитать остальную часть записи »

Можно ли изменить вид текстового курсора (каретки) edit’а или другого элемента

Вопрос:

Можно ли изменить вид текстового курсора (каретки) edit'а или другого элемента
управления Windows?

Ответ:

Можно! В примере показано
как создать два цветных “bitmap’а”: “улыбчивый” и “хмурый” и присвоить их курсору
edit’а. Для этого нужно перехватить оконную процедуру edit’а. Чтобы сделать
это заменим адрес оконной процедуры Edit’а нашим собственным, а старую оконную
процедуру будем вызывать по необходимости. Пример показывает “улыбчивый” курсор
при наборе текста и “хмурый” при забое клавишей backspace. Прочитать остальную часть записи »

Можно ли изменить число колонок и их ширину в компоненте TFileListBox?

Вопрос:
Можно ли изменить число колонок и их ширину в компоненте TFileListBox?

Ответ:

В приведенном примере
FileListBox приводится к типу TDirectoryListBox – таким образом можно добавиь
дополнительные колонки.

Пример:
with TDirectoryListBox(FileListBox1) do
begin
	Columns := 2;
	SendMessage(Handle, LB_SETCOLUMNWIDTH, Canvas.TextWidth('WWWWWWWW.WWW'),0);
end;