Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.06.03;
Скачать: CL | DM;

Вниз

Как орграничить число вводимых символов в одну строку Memo?   Найти похожие ветки 

 
Axx   (2012-01-28 09:46) [0]

Подскажите, пожалуйста, как заблокировать возможность набирать более 7 символов в одной строке Memo? при вводе последнего (седьмого) символа добавлять новую строку.


 
Омлет ©   (2012-01-28 13:08) [1]

procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 if length(Memo1.Lines[CaretPos.Y]) >= 7 then
   Memo1.Lines.Insert(CaretPos.Y + 1, "");
end;


 
И. Павел ©   (2012-01-30 11:21) [2]

> [1] Омлет ©   (28.01.12 13:08)

Так все равно пользователь сможет ввести. И через Ctrl+V и просто долго держа нажатой одну клавишу.
Лучше что-то типа такого:

procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);
var i: integer;
   s: string;
begin
 i := 0;
 while (Memo1.Lines.Count — 1 >= i) do
 begin
   if length(Memo1.Lines[i]) > 7 then
   begin
     s := Memo1.Lines[i];
     Memo1.Lines.Delete(i);
     while length(s) >= 7 do
     begin
       Memo1.Lines.Insert(i, Copy(s, 1, 7));
       Delete(s, 1, 7);
       inc(i);
     end;
     if length(s) > 0 then Memo1.Lines.Insert(i, s);
   end;
   inc(i);
 end;
end;


 
Dimka Maslov ©   (2012-01-30 14:40) [3]


> И через Ctrl+V


Никто не запрещает перехватывать соотв. сообщение. А вообще решение - разработка доп. компонента с нужным функционалом, можно даже на основе TMemo.


 
oldman ©   (2012-01-31 14:28) [4]


> при вводе последнего (седьмого) символа добавлять новую
> строку.


Ввел я семь символов. Мемо перевел строку. Ввел я еще 5, потом поднялся на строку выше и удалил один символ. Или добавил восьмой. Мемо свихнется...



Страницы: 1 вся ветка

Текущий архив: 2012.06.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
15-1328131486
Псарь
2012-02-02 01:24
2012.06.03
Про цикл.


15-1327780944
wl
2012-01-29 00:02
2012.06.03
фарма


2-1327407726
Nucer
2012-01-24 16:22
2012.06.03
try .. finally внутри try .. except


15-1328100148
Псарь
2012-02-01 16:42
2012.06.03
Dummy, Foo, Bar.


2-1327576110
Сергей
2012-01-26 15:08
2012.06.03
проблема с десятичным разделителем в дробях