Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Розробка програми, динамічно підсвічує ключові слова з завантажуваного користувачем словника

Реферат Розробка програми, динамічно підсвічує ключові слова з завантажуваного користувачем словника





нього символу для пошуку (cpMax: = cpMin + Length). Потім встановлюється прапор пошуку. Далі встановлюється посилання на Pchar рядок-зразок. І, нарешті, надсилається повідомлення EM_FINDTEXT самому собі .. Add додає рядок у кінець тексту

Клас TRichEdit успадковує метод Add від класу TStrings, тому що саме такий тип має властивість Lines. З файлу Source VCL classes.pas:


function TStrings.Add (const S: string): Integer;: = GetCount; (Result, S);

end;


запитувані кількість рядків у тексті і викликаємо метод Insert для вставки рядка в кінець тексту. Обидві використовувані функції описані там же, як:

= class (TPersistent)

protectedGetCount: Integer; virtual; abstract; Insert (Index: Integer; const S: string); virtual; abstract;


Тобто, абстрактні і віртуальні, а значить, в обов'язковому порядку повинні бути перевизначені в нащадках. Таким нащадком є ​​клас TRichEditStrings, конструктор якого і викликається для створення властивості Lines в конструкторі TCustomRichEdit, найближчому батьку TRichEdit. p align="justify"> З файлу Source VCL comctrls.pas = class (TStrings) GetCount: Integer; override; Insert (Index: Integer; const S: string); override; TRichEditStrings.GetCount: Integer;: = SendMessage (RichEdit.Handle, EM_GETLINECOUNT, 0, 0); SendMessage (RichEdit.Handle, EM_LINELENGTH, SendMessage (RichEdit.Handle, EM_LINEINDEX, Result - 1, 0), 0) = 0 then Dec (Result);

end;


запитувані кількість рядків у тексті і зберігаємо його у службовій змінної Result. Якщо довжина останнього рядка дорівнює нулю (тобто порожній) віднімаємо її з результату (Result). br/>

procedure TRichEditStrings.Insert (Index: Integer; const S: string);: Integer;: TCharRange;: PChar;: string; Index> = 0 then.cpMin: = SendMessage (RichEdit.Handle , EM_LINEINDEX, Index, 0); Selection.cpMin> = 0 then Fmt: = '% s' # 13 # 10begin.cpMin: = SendMessage (RichEdit.Handle, EM_LINEINDEX, Index - 1, 0); Selection.cpMin < ; 0 then Exit;: = SendMessage (RichEdit.Handle, EM_LINELENGTH, Selection.cpMin, 0), L = 0 then Exit; (Selection.cpMin, L);: = # 13 # 10 '% s';;. cpMax : = Selection.cpMin; (RichEdit.Handle, EM_EXSETSEL, 0, Longint (@ Selection));: = Format (Fmt, [S]); (RichEdit.Handle, EM_REPLACESEL, 0, LongInt (PChar (Str))) ; RichEdit.SelStart <> (Selection.cpMax + Length (Str)) thenEOutOfResources.Create (sRichEditInsertError);;

end;


Використовуючи номер рядка, перед якою ми збираємося провести вставку, визначаємо номер символу, з якого починається рядок, і зберігаємо його в змінної Selection.cpMin. Якщо номер символу не негативний, то це означає, що рядок з таким номером існує і в кінець додається рядка необхідно включити ознака к...


Назад | сторінка 6 з 11 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Recruitment and selection
  • Реферат на тему: Створення базового класу &Рядок&, рядки ідентифікатора і десяткової рядка. ...
  • Реферат на тему: Розробка програми перекладу введеного рядка тексту в послідовність кодів аб ...
  • Реферат на тему: Розробка програми для підрахунку хеш-суми файлу і тексту з графічним інтерф ...
  • Реферат на тему: Розробка програм по створенню бази даних приладів і додавання першого рядка ...