p>
У обробнику цієї кнопки передбачимо перевірку на те, щоб відповідне поле при натисканні кнопки було не порожнім. Для цього використовуємо таку перевірку:
if Memo1.Text <>'' then
begin
.................................................................... ('Не введений список!', mtWarning, [mbOK], 0);
Якщо ж полі непорожнє, то зробимо зчитування даних до спеціального масив і розблокуємо всі елементи. Для цього використовуємо наступний фрагмент коду:
for i: = 1 to Memo1.Lines.Count do
mas [i]: = Memo1.Lines [i-1];: = Memo1.Lines.Count;. Enabled: = true;. Enabled: = true;. Enabled: = true;. Enabled: = true;. Enabled: = true;. Enabled: = true;. Enabled: = true;. Enabled: = true; _Shablon.Enabled: = true; 1.Enabled: = true;
Оброблювачі всіх кнопок, призначених для сортування, мають практично ідентичну структуру, яка відрізняється тільки реалізацією алгоритму сортування. Типова структура обробника наведена нижче:
QueryPerformanceFrequency (iCounterPerSec);
QueryPerformanceCounter (T1);
// реалізація використовуваного алгоритму сортування
QueryPerformanceCounter (T2); CheckBox1.Checked = true then ('Час сортування' + FormatFloat ('0 .00000000000 ', (T2 - T1)/iCounterPerSec) +' сек. ', mtInformation, [mbOK] , 0);. Lines.Clear; i: = 1 to kol do.Lines.Add (mas [i]);
У програмі передбачена можливість відображати час, за який була виконана сортування. Для цього призначені функції QueryPerformanceFrequency і QueryPerformanceCounter і функція MessageDlg, яка виводить ці дані на екран (якщо користувач поставив відповідну галочку). p align="justify"> Наведемо код одного з використовуваних алгоритмів сортування (сортування вставками):
for i: = 1 to kol do: = mas [i];: = i-1; (j> = 0) and (mas [j]> temp) do [j + 1]: = mas [j];: = j-1; [j +1]: = temp;;
Структура обробників на кожен з алгоритмів пошуку відмінна один від одного, тому розглянемо їх більш докладно.
При послідовному пошуку використовуються дані з лівої частини форми, передбачені перевірки на наявність списку і на наявність ключа пошуку:
if Memo1.Text <>'' then
.......................................... ('Не введений список!', mtWarning, [mbOK], 0); LE_Shablon.Text ='' then ('Не заданий шаблон пошуку ', mtWarning, [mbOK], 0)
Потім зчитується шаблон і проводиться пошук. Для цього використовується наступний код:
str: = LE_Shablon.Text; i: = 1 to kol dotemp [i] = str then;
Перевірка на результат пошуку проводиться шля...