Главная страница
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.008 c
2-1327834792
Ксения
2012-01-29 14:59
2012.06.03
Вычисление возраста


15-1328455559
uzer
2012-02-05 19:25
2012.06.03
Вопрос по N-кодеру/валкодеру и программы к нему


15-1328418683
upc
2012-02-05 09:11
2012.06.03
Unable to insert a line.


15-1327490966
xayam
2012-01-25 15:29
2012.06.03
Формат для чтения двух книг одновременно


15-1328291750
Dimka Maslov
2012-02-03 21:55
2012.06.03
Про синхронизацию