Підказка при введенні Edit, DelphiSite
Найбільш читане
Підказка під час введення в Edit
Сьогодні поговоримо про те, як допомогти користувачеві ввести текст у поле введення. Для цього комп'ютер повинен за першими літерами слова здогадатися, що хоче написати користувач, і запропонувати йому цей варіант. Один із способів це зробити - дописувати літери, що не вистачають до слова, але виділяти їх. Потрібно розв'язати три завдання: 1. визначити символи, що вводяться, 2. знайти слово, що починається із цих символів, 3. додати символи, що бракують, і виділити їх. Для вирішення першого завдання достатньо знайти перший символ, що не є літерою. Для вирішення другого завдання можна використовувати пошук у StringList. Вставити відсутні символи зручно у спеціальній змінної типу String. У цьому прикладі словник складається з назв чисел (англійською): від 1 до 10. Іноді словник можна поповнювати, додаючи туди незнайомі слова, які користувач вводить.
procedure TForm1. FormCreate (Sender: TObject);
words := TStringList. Create;
words. Sorted: = true;
words. Add ('four');
words. Add ('five');
words. Add ('seven');
words. Add ( 'eight');
words. Add ( 'nine');
procedure TForm1. Edit1KeyUp (Sender: TObject; var Key: Word;
chars: set of char = [ 'A' .. 'Z' , 'a' .. 'z' , 'А' .. 'Я' , 'а' .. 'я' ] ;
якщо Key = 13 then begin
Edit1. SelStart: = Edit1. SelStart + Edit1. SelLength;
Edit1. SelLength := 0;
SelSt: = Edit1. SelStart;
if ( length ( s ) & gt ; i ) and ( s [ i +1 ] in chars ) then Exit ;
while ( i & gt; = 1 ) and ( s [ i ] in chars ) do begin
if length (w) 0 then Exit;
words. Find (w, i);
Edit1. SelStart: = SelSt;
Edit1. SelLength : = length ( full ) - length ( w ) ;