Підказка при введенні 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 ) ;