МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Лабораторна робота № 5
На тему:
“ Розробка MDI застосування для роботи з декількома документами у середовищі візуального програмування Delphi, з використанням компонентів головного меню, та діалогових вікон”
Мета роботи: Вивчити класи і компоненти Delphi, призначені для створення компонентів головного меню, та діалогових вікон. Навчитися створювати просте MDI (Multiple Document Interface – інтерфейс для одночасной роботи з декількома документами) застосування (текстовий редактор).
Теоретичні відомості
MDI - це скорочено від Multiple Document Interface (інтерфейс для одночасної роботи з декількома документами). В MDI - застосуваннях два або більше вікон можуть одночасно бути активними. Поряд з MDI є застосування SDI (Single Document Interface – інтефейс для роботи з одним документом). У SDI – застосуваннях в кожний мометн часу можуть бути активними тільки одне вікно. MDI - застосування є зручним засобом для одночасного виводу на екрантексту або даних, які зберігаються в файлах. Таку структуру побудови вікон можна використовувати для редагування тексту, відкриття та виводу на екран одночасно декількох документів.
Щоб викликати конструктор для розміщеного у формі компонента головного меню (MainMenu), можно або два рази клікнути мишкою на ньому або два рази клікнути мишкоюпо властивості Items в Шнспекторі об’єктів.
Для зміни, додавання або видалення пунктів у конструкторі меню, необхідно використовувати праву клавішу мишки, яка викликає контекстне меню та вибрати необхідну дію.
Щоб під час роботи застосування усі дочірні вікна відображалися списком в меню Вікна, необхідно вибрати пункт меню Вікна та змінити його у вікні Інспектора об’єктів WindowMenu. Потім вибравши у вікні Інспектора об’єктів форму MainForm, та у властивості WindowMenu вибрати з розкриваючого списку пункт меню WindowMenu.
Компонент TRichEdit представляє собою багатофункціональний засіб редагування текстів, та дозволяє працювати з форматом *.rtf, вибирати різні атрибути форматування для різних фрагментів тексту. В цьому основні відмінності TRichEdit від більш простого компонента Tmemo, в якому атрибути форматування однакові для всього тексту. Вікно редагування має багато функцій, що властиві багатьом редакторам. Наприклад, в ньому передбачені типові комбінації клавіш оперативного доступу: Ctrl+C- копіювання виділеного тексту в буфер обміну, Ctrl+X – вирізка виділеного тексту в буфер обміну, Ctrl+V – вставка тексту з буферу обміну в позицію курсора, Ctrl+Z – відміна останьої команді редагування.
Виконання роботи
Варіант 4
Написати процедуру яка реалізує: підрахунок кількості приголосних букв в стрічці.
procedure TMainForm.StatusBar1Click(Sender: TObject);
var
a : string;
k, l, nw, n, i, j, Consonant_number : byte;
begin
l := 0; nw := 0;
a := ChildForm.RichEdit1.Lines[ChildForm.RichEdit1.Perform(EM_LINEFROMCHAR,
ChildForm.RichEdit1.SelStart, 0)];
Consonant_number := 0;
for i := 0 to length(a) do
if (a[i] = 'b') or (a[i] = 'c') or (a[i] = 'd') or (a[i] = 'f') or (a[i] = 'g') or (a[i] = 'h') or (a[i] = 'j') or (a[i] = 'k') or (a[i] = 'l') or (a[i] = 'm') or (a[i] = 'n') or (a[i] = 'p') or (a[i] = 'q') or (a[i] = 'r') or (a[i] = 's') or (a[i] = 't') or (a[i] = 'v') or (a[i] = 'w') or (a[i] = 'x') or (a[i] = 'z') then
Inc(Consonant_number);
StatusBar1.Panels[2].Text := ' String ' + IntToStr(ChildForm.RichEdit1.Perform(EM_LINEFROMCHAR,
ChildForm.RichEdit1.SelStart, 0) + 1) + ' from ' +
IntToStr(ChildForm.RichEdit1.Perform(EM_GETLINECOUNT, 0, 0)) + ' Кількість приголосних ' + IntToStr(Consonant_number);
a := ChildForm.RichEdit1.Lines[0]; // Нульова стрічка
k := ChildForm.RichEdit1.Lines.Count; // Кількість стрічок в компоненті RichEdit1
for j := 0 to k - 1 do begin // Зовнішній цикл по кількості стрічок RichEdit1
n := Length(ChildForm.RichEdit1.Lines[j]);
for i := 1 to n do // Внутрішній цикл по підрахунку кількості слів в стрічці
if a[i] = ' ' then
begin
if l > 0 then
begin
inc(nw);
l := 0
end;
end
else
inc(l);
if l > 0 then
inc(nw);
StatusBar1.Panels[1].Text := 'Кількість слів ' + IntToStr(nw); // Вивід кількості слів в
//компоненту StatusBar1
end;
end;
Висновок:
В даній лабораторній роботі я навчилася створювати програму, багатовіконний текстовий редактор, який має наступні можливості: редагування тексту в декількох вікнах, зміна шрифта текста, вирівнювання стрічок в абзаці, пошук та заміна фрагментів тексту, виділення, копіювання і вставка фрагментів тексту, збереження тексту та вивід на друк.