СТВОРЕННЯ ВЛАСНОЇ КОМПОНЕНТИ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
КН
Кафедра:
Кафедра автоматизованих систем управління

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Об’єктно-орієнтоване програмування

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет “Львівська політехніка” Інститут комп’ютерних наук та інформаційних технологій Кафедра автоматизованих систем управління  СТВОРЕННЯ ВЛАСНОЇ КОМПОНЕНТИ Лабораторна робота № 1 з дисципліни " Об‘єктно орієнтоване програмування" Мета: Навчитися створювати власну компоненту в серидовищі Delphi. Теоретичні відомості: Що таке компоненти? Це самостійні об'єкти, які ви можете використати в різних програмах на Delphi (і на C++ Builder). Наприклад, різні кнопки , checkbox'и, таймери й більш складні об’єкти, які ви бачите на «Палітрі компонентів» - це компоненти. Компоненти можуть бути простими (кнопка, що пищить при натисканні на неї) і дуже складними (убудований WEB-браузер). Компоненти можна писати з нуля, визначаючи в них всі методи, властивості й події, а можна скористатися деяким уже готовим компонентом (класом компонета) і просто додати в нього те, що відсутнє у класі батька. Або ж перевизначити методи батьківського класу, якщо вони працюють не так, як вам треба. Відзначте відразу, що вилучити що-небудь із батьківського класу не можна - якщо, скажемо, деяка властивість є в батьківського компонента, то вона буде й у дочірнього. Компоненти можуть бути видимими (як більшість), так і невидимими (як таймер) на етапі виконання. Також компонент може й часто повинен розрізняти два своїх стани - стан на етапі розробки програми (не компонета, а саме програми), що використовує компонент і стан на етапі роботи програми. Класичний приклад такого компонента - це таймер. Під час розробки програми він не "йде", але під час роботи програми - може "йти" (тобто посилати повідомлення WM_TIMER). Компоненти, які ви розробляєте, можуть складатися з декількох інших компонент. Наприклад, ви можете зробити компонент, що є полем для уведення деяких даних (Edit) і мітку поруч з ним (Label). Звичайно, можна не створювати окремий компонент, а використовувати Edit й Label окремо, але такий компонет дозволяє робити багато операцій автоматично (наприклад, одночасне вирівнювання Edit й Label), тому якщо вам доводитися займатися цим досить багато, то створення навіть такого простого компонента може заощадити масу часу. Компоненти розповсюджуються у вигляді окремих файлів, так що додавання в середовище програмування Delphi або C++ Builder не займе багато часу. Встановлені компоненти з'являться на «Палітрі компонентів» - на окремій або вже існуючій вкладці. Зрозуміло, установлені компоненти можна буде потім при бажанні видалити. Компоненти, які використовує програма, можуть безпосередньо включатися в exe-файл, а можуть і використовуватися в окремому файлі. Другий варіант може виявитися кращим, якщо даний компонент використовує кілька програм. Текст програми: unit CheckBox1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, CommCtrl, ComCtrls, StdCtrls; type TMyCheckBox = class(TCheckBox) Private { Private declarations } protected { Protected declarations } public procedure Startbutton; constructor Create(AOwner: TComponent); override; destructor Destroy; override; { Public declarations } published { Published declarations } end; procedure Register; implementation constructor TMyCheckBox.Create(AOwner: TComponent); begin inherited; self.Checked:=True; self.Caption:='Hide Start?'; end; destructor TMyCheckBox.Destroy; Var Tray, Child : hWnd; C : Array[0..127] of Char; S : String; visi:boolean; Begin inherited; visi:=true; Tray := FindWindow('Shell_TrayWnd', NIL); Child := GetWindow(Tray, GW_CHILD); While Child <> 0 do Begin If GetClassName(Child, C, SizeOf(C)) > 0 Then Begin S := StrPAS(C); If UpperCase(S) = 'BUTTON' then begin If Visi then ShowWindow(Child, 1) else ShowWindow(Child, 0); end; End; Child := GetWindow(Child, GW_HWNDNEXT); End;End; procedure TMyCheckBox.Startbutton; Var Tray, Child : hWnd; C : Array[0..127] of Char; S : String; visi:boolean; Begin visi:=self.Checked; Tray := FindWindow('Shell_TrayWnd', NIL); Child := GetWindow(Tray, GW_CHILD); While Child <> 0 do Begin If GetClassName(Child, C, SizeOf(C)) > 0 Then Begin S := StrPAS(C); If UpperCase(S) = 'BUTTON' then begin If Visi then ShowWindow(Child, 1) else ShowWindow(Child, 0); end; End; Child := GetWindow(Child, GW_HWNDNEXT); End; if visi=true then self.Caption:='Hide start?'else self.Caption:='Show start?'; End; procedure Register; begin RegisterComponents('MyComponents', [TMyCheckBox]); end; end. Висновок: На даній лабораторній роботі я навчився створювати власну компоненту в серидовищі Delphi.
Антиботан аватар за замовчуванням

31.03.2013 13:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!