Главная страница
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-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.


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


15-1327771468
Хаус
2012-01-28 21:24
2012.06.03
Как повысить скорость чтения?


15-1328085629
Faceless
2012-02-01 12:40
2012.06.03
Настройки Delphi7