[DELPHI] Звук при ограниченых символов в edit

Статус
В этой теме нельзя размещать новые ответы.

Ser Frood

Заблокирован
Регистрация
12 Дек 2006
Сообщения
515
Реакции
397
Народ кто шарит на дельфи) подскажите как убрать глухой звук когда все символы в edit набраны!!!?
 
DimaD, например, обработав событие OnKeyPress, используя такой код в обработчике ...

{...}
if (length((Sender as TEdit).Text) = ((Sender as TEdit).MaxLength)) and
((Sender as TEdit).MaxLength > 0) then Key:=#0
{...}

при этом данный обработчик будет работать для любого ограничения длины вводимого текста ...

из форума наисходниках:
 
из форума наисходниках:
*** скрытое содержание ***

Да на соце ету тему мой друг создавал, то что ответили не катит(идиоты тему закрыли) так как при достижении символов перестают ваше работать все клавиши в едит!
 
Ну сделай до этого проверку на key = буква или служебный символ.
Тогда блокироваться будут только "правильные" кнопки.

а какие кнопик блокируются?
я только backspace увидел, а стрелки и del работают по прежнему

чтобы backspace тоже заработал надо добавить Key <> 8
Код:
if (length((Sender as TEdit).Text) = ((Sender as TEdit).MaxLength)) and
((Sender as TEdit).MaxLength > 0) and (Key <> 8) then Key:=#0
 
Да на соце ету тему мой друг создавал, то что ответили не катит(идиоты тему закрыли) так как при достижении символов перестают ваше работать все клавиши в едит!

Вот что набрасал на DelphI:
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
   if Length(Edit1.text) > [B]10[/B] Then
   begin
    Key := #0;
    Windows.Beep(2000,100);
   end;
end;
Где 10 это максимальное кол-во сиволов в поле Edit1.


А что ты имеешь ввиду под "убрать глухой звук"? :nezn:
 
можно не заморачиваться с кнопками, а резать строку в OnChange:
Код:
procedure TForm1.Edit1Change(Sender: TObject);
const
   MAX_LENGTH: Integer = 4;
begin
   if Length(Edit1.Text)>MAX_LENGTH then begin
      Edit1.Text := Copy(Edit1.Text, 1, MAX_LENGTH);
      Edit1.SelStart := MAX_LENGTH;
   end;
end;
 
Виллен а потом если выделить весь текст и нажать любой символ то клавишы не пашут)))))))))

OnArs Cоздай едит поставь ограничение 10 а набери 12 символов услышиш глухой звук! твой пример не канает так как опять же клавишы отрубаются после того как набрато 10 символв!

tonsils твой пример неочём ваше)))
 
tonsils твой пример неочём ваше)))
В смысле "неочём"? Пример работает, символов в edit вводится сколько надо. Если их больше чем надо, то не вводятся, звука нет.

Разве что глюк есть, если поставить курсор посередине строки и еще символов подобавлять. Надо подумать...
 
Специально заинсталил Делфи, код tonsils рабочий. Если не хотите ограничивать строку константой, можете сделать так:

Код:
var
  Form1: TForm1;
  MAX_LENGTH: Integer;

implementation

{$R *.dfm}

procedure TForm1.Edit1Change(Sender: TObject);
begin
  if Length(Edit1.Text)>MAX_LENGTH then begin
    Edit1.Text := Copy(Edit1.Text, 1, MAX_LENGTH);
    Edit1.SelStart := MAX_LENGTH;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MAX_LENGTH:=Edit1.MaxLength;
  Edit1.MaxLength:=Edit1.MaxLength+1;
end;

все отлично работает, никаких глухих звуков.
 
Ratko если по середите поставить карету то текст продолжает набираться гг
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху