Жоспар №6380

CASE-технологиялары мен компонент құру: Баркер әдісі, объектіге бағытталған CASE және COM/CoClass

Сұрақ-жауап

Сұрағыңызға жасанды интеллект жауап береді

МАЗМҰНЫ КІРІСПЕ 4 1.Негізгі бөлім 5 1.1 Баркер әдісі 5 1.2 CASE - технологиясы 8 1.3 Объектілі - бағытталған CASE - технологиясы 12 1.4 CASE – технологиясының мінездемесі 14 2. ТЕОРИЯЛЫҚ БӨЛІМ 19 2.1 COM-объектсі 19 2.2 СОМ-интерфейсі 19 2.3 CoClass-класы 21 3. ПРАКТИКАЛЫҚ БӨЛІМ 23 3.1 Өз компонентті жасаудың алдында арғы атасын таңдау 3.2 Рrivate, protected, public және published секциялары 23 3.3 Модуль компонентін құру 25 ҚОРЫТЫНДЫ 33 Пайдаланылған әдебиеттер 34 Қосымша А 35 КІРІСПЕ Аспаптар – ол жұмысты орындау үшін арналған құралдар, Негізінен бағдарламаны әзірлеудің құрал – жабдықтары компьютерге программаларды Программалық өнімді (ПӨ) өңдеу көптеген бір-бірімен байланысқан әрекеттерден - деректер моделін құру және есептеу әдістемесі; - есептеуді қамтамасыздандыратын, функциональдық сипаттамасы; - деректер құрылымын анықтау – компьютерде және алгоритмде - есепті тарату әдістерін сипаттау және анықтау - пайдаланушы интерфейсін сипаттау және анықтау; - ПӨ қолдау құралдарын анықтау; - есеп спецификациясы; - тестілеу программасын қоса отырып, программа мәтінін жазу; - программаның тестіленуі, трансляциясы және жөнделуі; - қолдау кітапханаларын қосу және байланыстыру; - орындау ортасын құру; орындамалық модулді орналастыру және - орнатылған көмекті құру және өңдеуді құжаттау; - орнатылатын (инсталляциялық) ПӨ пакетін құру. Rational Unified Process (RUP) аймағында программаларды өңдеуге арналған - талаптарды анықтау; - жобалау; - программалау; - тестілеу; - ендіру. Көрсетілген жұмыстарды орындау үшін көптеген программалар жиынтығы үнемі 1.Негізгі бөлім 1.1 Баркер әдісі Модельдің көмегімен біз керегі жоқ детальдарды қарастырмай-ақ бар Маңызы (Entity) – нақты немесе ойластырылған объект. (1.1-сурет). 1.1-сурет Графикалық суреттер 1.2-сурет Бұл режим сол жақ басқыш басқа да бір 1.3-сурет Сипаттама бергенде берілетін түзулер. 1.4-сурет Соңғы моделдеу идентификация атрибуты болып табылады. Атрибуттар – «сабақты өткізетін орын», «сабақты өткізетін уақыт», 1.5 - сурет Типтер және супертиптер: Бір маңызды ұқсас маңыздардың тобына Өзара шығарып тастайтын байланыстың: Тек қана маңызы әрбір 1.6-сур. 1.7-сурет Рекурсивті байланыс: сущность может быть связана сама с Ауыстырылмайтын (non-transferrable) байланыс: көшірме бір орыннан екіншіге ауыстырылмайды 1.8-сурет Ауыстырылмайтын байланыс 1.2 CASE - технологиясы Алдыңғы технологиялардың қарастырылуына сәйкес (Survey of Advanced Technology), CASE - құралдары әсерді тез емес қайсыбір CASE - құралдардың енгізуіне нақты шығындар олардың тауып CASE – құралдары сәтті аяқталған кезде ғана қамтамасыз Каскадты пайдалану келесі түрде көрсетілген: әрбір этапта құжаттың жобалық түрі қалыптасады; логикалық жүйеліліктің этаптары жолдардың барлық жұмысын аяқтайды. 1.9- сурет ПО Каскадтық схема ортасы Енгізуінің басқа салыстырмалы нақты қанағаттандыруы сөзсіз бекітулері қандай Сапаның әр түрлілігі және CASE – құралдарының мүмкіндіктері; Әртүрлі ұйымдарда CASE – құралдарының пайдалануы; Әртүрлі ұйымдардың енгізу тәжірибесіндегі кең әр түрлілік; Толық метрикалардың жоқ болуы; Жобаның аймақтық мысалдағы кең диапазоны; Әртүрлі жобадағы CASE – құралдарының интиграциялауы. Бұл қиындықтар нәтижесінде ақпаратқа қол жеткізу құрал типіне, Нәтижесінде ПО құру процесі келесі түрге ие болды 1.10- сурет Каскадтық схемедағы ПО өндеу Қазіргі заманғы CASE – құралдары АЖ жобалық технологияның АЖ еңбекті талап ететің этап анализ және жобалау CASE – құралының разрядына персональді компьютерлердің шектелген мүмкіншіліктері детте CASE – құралдарына кез – келген бағдарламалық АЖ графикалық құралдары үшін сипаттау және құжаттау; интеграция отдельных компонент CASE – құралын жеке интеграциялау; арнай тәсілмен қолдану (репозитория). CASE – құралын интеграциялау; CASE – құралын көрсеткіш компоненттің үстінде пайда болды; dsDragLeave — көрсеткіш компонентті тастап кетті; dsDragMove — көрсеткіш компонент үстімен жылжып барады. Қабылдаушы кейбір жағдайларды ескеру керек, егер қабылдаушы жұмысын type TDragDropEvent = procedure(Sender, Source: TObject; X, Y: property OnDragDrop: TDragDropEvent; Ол маустың сол жақ басқышын жіберген кезде шақырылады. type TEndDragEvent = procedure(Sender, Target: TObject; X, Y: property OnEndDrag: TEndDragEvent; конфигурациялық басқару құралы; құжаттау құралы; тестілеу құралы; жобаны басқару құралы; реинжиниринг құралы. CASE моделі жүйенің функциясына немесе оның объектісіне дайын CASE – құралын -да блоктар кері номерленген болуы CASE – құралын диаграммасы бір-бірімен 3-6 дейінгі блоктардан CASE – құралын диаграммасы белгіленген объектілер декомпозициясы ICOM кодтары , ұрпақ диаграммамен ата-аналық диаграммаларды Түйін номері берілген диаграмманың сатысын иерархиялық Егер модельде диаграммаларды оқу үшін өте қиын CASE – құралын келесі қасиеттермен классификациялау: ұйымдық өнімнің нақты бағасын анықтау; тапсырыс берушіні ұстап тұру үшін бағаны анықтау; Бірінші кезекте көңіл бөлу керек жұмыстарды анықтау және Бағалақ талдау кең Design/IDEF ((Meta Software), BPwin (Logic (Middle CASE) әдістемесі келесі негізгі сипаттамалардан тұрады, шығын MS Visio беттері және олардың қолданылуы. Дұрыс құрылған класс тек бір ғана абстракцияны бере Қосымша типтері: жобалау және басқару құралы (SE Companion, Microsoft Project конфигурациялық басқару құралы (PVCS (Intersolv)); тестілеу құралы (Quality Works (Segue Software)); құжаттау құралы (SoDA (Rational Software)). Қазіргі таңда бағдарламалық қамтамсыз ету CASE – құралдарға Vantage Team Builder (Westmount I-CASE); Designer/2000; Silverrun; ERwin+BPwin; S-Designor; CASE Аналитика. Бұдан басқа, жаңадан жүйелік қолданушы шығады (мысал, CASE 1.3 Объектілі - бағытталған CASE - технологиясы Логикалық жобалау автоматизациясының – артықшылықтары мен кемшіділктері. RR “CASE – құралдарына байланысты ақпараттар біздің ойымызша кәдімгі Rational Software Rational Rose 98 компаниясының CASE - Мысалы, қарапайым - Rose 98 Modeler Edition пакетіне Айталық, Rose жүйесі - визуальды моделдеу жүйесінде жақсы Rational Rose 98-дің артықшылықтары: Қосымшаның өңделу циклын қысқарту. Программист жұмысының өнімділігін арттыру. Бизнес және пайдаланушыларға байланысты тапсырыс берушілердің программа құрудағы Үлкен жобалар және жобалар тобын құруа алу мүмкіндіктері. Бұрын құрылған ПҚ қолдана алу және олардың құрылымы UML тілі әртүрлі бөлімдер мен өндірушілер арасындағы әмбебеп Жүйенің кемшілігі, басқа да бөліктеп жинау жүйелері сияқты 1.4 CASE – технологиясының мінездемесі Silverrun CASE - құралы Silverrun америкалық фирма Сomputer Systems 1.11-сурет Спиральді модель ЖЦ Компьютер үшін программа – бұл программалау тілінде құрылған Жүйеде дайын методология бар: DATARUN (негізгі методология, Silverrun), Құрылым және функциялар Silverrun модульдік құрылымға ие және төрт модульден тұрады. Командалық (атомарлы), құрылымдық, модульдік программалау – категориялары, (BPM «Құрылымдық программалау – программалау методологиясы, жүйелік түрдегі талдауға Есепте қолданылатын, басқарылатын құрылымның қарапайымдылығы және атомарлығы. Бұл, Модуль - модулдік программалау (ERX - Entity-Relationship eXpert) Тип диаграммы Обозначение Vantage Team Builder for ORACLE Сущность-связь ERD + + + Потоков данных DFD + + + Структур данных DSD + + + Архитектуры системы SAD + + + Потоков управления CSD + + + Типов данных DTD + + + Структуры меню MSD + Последовательности блоков BSD + Последовательности форм FSD + + Содержимого форм FCD + + Переходов состояний STD + + + Структурных схем SCD + + + Таратылатын шешімдер қарапйым және түсінікті болуы керек. Егер Модулдің барлық айнымалыларның қызметі комментерилердің көмегімен анықталуы және Объектілі-бағыттылған парадигма. ОБП идеясы негізінен осы деректерді өңдейтін процедураларды бір Басқа құрылымдармен байланыс Silverrun көп таралған СУБД: Oracle, Informix, DB2, Ingres, Ratіonal Rose өнімдерінің сериясы құрастырушыны нақты уақыт жүйелерінде Келесі қолданылатын RR – мен берілген диаграммаларға, - Атрибуттарды, әдістерді, қасиеттерді, уақиғаларды, класстарды анықтау. Класстар диаграммасы Топтық жұмыс Топтық жұмыс Silverrun жүйесінде екі тәсілмен сипатталады: Қиын есептер кішірек бөліктерге бөлінеді, функциональды түрде негізінен Есепте қолданылатын, басқарылатын құрылымның қарапайымдылығы және атомарлығы. Бұл, Функционионалдау ортасы Silverrun реализациясының үш платформасы бар - MS Windows, Windows ортасында функционирлеу үшін в среде i486 кем 1.12-сурет Vantage Team Builder және Uniface сәйкестенуі Vantage Team Builder негізгі барлық UNIX - платформада Vantage Team Builder "клиент-сервер" кофигурациясын қолдануға болады, жоба 2. ТЕОРИЯЛЫҚ БӨЛІМ 2.1 COM-объектсі COM-объектісін мынандай объектілермен салыстыруға болады С++, VB немесе 2.2 СОМ-интерфейсі COM анықталған интерфейс және оның реализациясы арасында фундаментальды СОМ интерфейс түсінігі бойынша– бұл контракт, ол функция Интерфейс реализациясы (interface implementation) – бұл код, оны «Интерфейс» сөзі COM-да С++-тағыдай мағынада емес, басқа CORBA-да бүгінгі күнге дейін бір объектімен көптеген интерфейстер COM-да интерфейсті бейнелеу үшін, CORBA-дағы сияқты, IDL тілі COM объектісінде интерфейстің кілттік аспектісі мыналар болып есептеледі: Ø болашақта баспаға шыққанда, интерфейс ешқандай жағдайларға байланысты Ø келісім бойынша, интерфейстің аты дауысты дыбыс I Ø интерфейс GUID идентификаторына ие (Globally Unique Identifier), Ø интерфейстер тәуелсіз тілдерге ие болады. Интерфейсті реализациялау Ø өзінен-өзі интерфейстер объект болып есептелмейді, тек қана Ø кез келген интерфейс IUnknown базалық интерфейсінің мұрагері Ø интерфейске жүгіну ағындар арасына бағыттауға, процессормен жүйелік 2.3 CoClass-класы CoClass – бұл класс, тәсілдер жинағын және қасиеттерін Әр бір CoClass екі идентификаторға ие – оның CLSID дүние жүзілік идентификатор болып саналады (GUID). GUID CLSID, IID немесе басқа кез келген GUID жолға 3. ПРАКТИКАЛЫҚ БӨЛІМ 3.1 Өз компонентті жасаудың алдында арғы атасын таңдау Ереже сияқты, түрінде қолданылады, сонымен қатар барлық компоненттердің TOpenDialog компонентін үлгі үшін аламыз, компоненттердің палитра Dialogs Файл үшін, біз арқасында ашуға тырысамыз мынаның диалогтық Тапсырма үшін өзінді біз таңдады, қалдық үшін компонент Компонентті келешек біздің үлгі көрінді Ok және бізде Конструкторды қайтадан анықтаймыз мына компонентті, public секциясында. жолды Ctrl басу мына жолында + Shift + мына Назарды ықылас білдіріңіздер: Ctrl пернелерінің қиыстырулары + Shift Құру жасалғанды Component компоненттісі | Install Component ... Сіздерге ұнамайды, не біздің компонентті сондай кішкене икон Үшін мынаның бізге қажетті Tools деп атау | Resource суретін оған саламыз | New | Bitmap. Назарды ықылас білдіріңіздер: нүктелердің түсі, нүкте түсімен сәйкес Сіздер өз суретіңіз жасады соң , Bitmap оның Пакеттен компонентті қашықтатыңыздар және қайтадан оның орнатыңыздар ( 3.2 Рrivate, protected, public және published секциялары Барлық не private секциясында жариланған, модуль қолайлы тек Барлық не protected секциясында жариланған, қалай және private Қасиеттердің мағыналарына рұқсат әдістері жариялауға осында болады ( Осында жарияланады, ереже сияқты әдістер. Қасиеттің және оқиға Олар қосымша жобалауы уақытына қолайлы ( жобалау кезең Default спецификаторы түр файлында қасиет мағынасын сақтауға көрсетеді Қасиет мағынасы үндемеумен берілген nodefault спецификаторы өзгереді . Мысалы : property AutoSize nodefault ; Қасиет мағынасы түр файлында сақтау қашан stored спецификаторы Property OneProp : integer read FOneProp Write SetOneProp Stored False ; Property TwoProp : integer read FTwoProp Write SetTwoProp Stored True ; Property ThreeProp : integer read FThreeProp Write SetThreeProp Stored Fuct ; Және соңғы : Керек компоненттердің панелінде демострацияға арналған компонентке суретті қосу 3.3 Модуль компонентін құру Жасау - компонентті начинается Delphi модулі жасауынан ( Компоненттердің құру эксперті қолмен істелетін немесе арқасында модуль Біріншімен адындап , - қолданылатын әдістен , компонентті Соңғы тәсілден бастаймыз , ең жиі қолданылатынды сияқты 3.1 - Сурет Эксперт (3.1 -сурет) шақырылады. Component/New Component/IDE Delphi ішінде. Ancestor type : жасалынушы әке-шешелік сынып компонентті . Class Name : жасалынушы сынып аты компонентті . Palette Page : сала бастау , қайсыда компонент UnitFileName : модуль атысы , қайсыда негізгі мәтін Search Path : жолдар , қайсыларды керек Delphi Біздің компонент үшін ең таяу функционалдылықпен TLabel сыныбы Ескерту: Ереже сияқты , негізгі код модульдері , , Сала бастауда болады ол TmgCoolLabel . компоненттісі орналасып Эксперт терезесінде ОК бүркеншектегі шегесін басып , біз Эксперт компонентті ең аз қажетті каркасты синтаксистік дұрыс Болады , ақырғы , қолмен істелетін барлық мынау Назарды ықылас білдіріңіздер , не сынып декларациясы басқа Өңдеуде келесі кезеңмен компонентті қасиеттердің жасау , әдістердің Мен келтірілген өз жұмысымда қолданамын келісім төмен туралы Сынып ат компонентті қажет бастау , дәл осылай Префикспен сынып атысы өте қажет ескертіп қою . Модуль атысы мен u префиксімен ескертіп қоямын ( Сіздер көз алдына келтіру тіпті жасай алмаcыздар , Компонентті конструктор шақыруынан кейін қосымша әрекеттер қандай болмасын Объекті әдістерінің шақыру реті туралы жорамалдарды талаптануға істемеу Қасиеттерді жариялауға қымсынбаңыздар . Қасиеттің – жылдам және Қосымша иілгіштік OnChange оқиғалары , Before және After Код компонентті Сондықтан біздің компонентіміз алғы атадан тек - құйып Негізгі жұмыс қасиеттердің жаңа бастапқы мағыналарының құруымен выполняется Тәжірибеліде жобалау кезеңі және кодтаудың компонентті біреумен ғанамен Компоненттердің күй-жағдай сақтауы 3.2 – Сурет – Компоненттердің күйін сақтау Қасиеттердің күй-жағдай түрлері Delphi файлға сақтауды автоматты өндіреді Мына мақалада түр файлына компоненттердің қасиеттердің мағыналардың сақтау Суретте файлға түр қасиеттерінің сақтаулары 1 жүйелі процес Бірінші параметр – файл атысы , қайсы түрді Әдіс файлдық селді жасайды ( TFileStream ) және Қандай көрінетін , TWriter объектісі жасалады және сайып Объекті селіне жазылушы TWriter сыныбы қасиеттер туралы хабарды Көбірек толық TFiler сыныбын қарап шығамыз . Қасиеттердің Сынып декларациясы келесі бейнемен көрінеді : TFiler = Root қасиеті компонентке көрсеткішті асырайды , қасиеттермен қайсыны Ancestor қасиеті анықтауға рұқсат етеді , қандай қасиеттердің IgnoreChildren қасиеті көрсетеді , керек , қасиеттер басқа LookupRoot қасиеті көрсетеді жергілікті тамыр ( жазылушы | Әдіс синхронизация FlushBuffer - абстракты әдісі селмен , DefineProperty – оқуға арналған әдіс | жазудың қасиет DefineBinaryProperty – оқу әдісі | бинарлық тап осы TFiler сыныбы TWriter екі мұрагерінің және TWriter TReader Мұрагерлерді оқу әдістері және тап осы әртүрлі үлгілердің Жазу процесіне ұқсас қасиеттердің мағыналардың тиеуі болады . (6,7) үндемеумен мәтіндік формат файлдарында қасиеттерді сақтайды Delphi Компоненттердің қасиет үндемеуімен , агрегируемые компонентпен , аман Механизм бірдей жұмыс істейді және арналған , және Қазір , жазу жалпы механизмы суреттеп айтып | Run - time түр тиеуі. Тиеу механизмы қолдануы қызықты әдістерінен біреумен ғанамен | File менюі пункті арқасында жаңа жобаны жасаймыз | 3.3 – сурет – Форманың негізгі терезесі Негізгі жұмысты түр тиеуімен ReadFormProperties әдісі орындайды , Қосымшаны жібереміз . LoadForm бүркеншектегі шегесіне басу жанында Компоненттердің жарияланушысыз немесе - қасиеттердің сақтауы Жарияланушысыз мағына сақтау үлгісін қарап шығамыз ( published Компонент, өзгертулерді тарих сақтаушы Text қасиеттері. Жарияланушысыз қасиеттердің сақтауы демонстрация жасайды. Сонымен , өзгертулердің тарих сақтауына арналған жобалау кезеңінде SetText әдісі , Text қасиеттері мағына құруының артынан TextHistory қасиеттері Delphi ортасы сақтау қажеттілігі туралы білді Көрсету үшін , қандай әдістер тиеу үшін қажетті Компонентті ReadTextHistory әдісі қасиеттердің тиеу жүруінде шақырылады . TextHistory . қасиеттері WriteTextHisory әдісі сақтаудың артынан жауап Тек қана қалады скомпилировать және пакет тіркеп алу Тестілеуге арналған қасиет сақтаулары жаңа қосымшаны жасаңыздар . ҚОРЫТЫНДЫ Borland Delphi бағдарламалау ортасында өз компоненттерін жасау ХХІ ғасырдың басталуы жаппай ақпараттық қоғамға көшумен сипатталады. Қорыта келген кезде бұл тақырыптан менің алған мәліметтерім Бүгiнгi күнде елiмiздегi iрi мекемелердiң бәрi өзiнiң жұмысында Деректер базасымен жұмыс жасау қазіргі заманда ең ыңғайлы Бұл курстық жұмыстың студентке берген пайдасы көп. Студенттің Қорыта келе, автоматтандырылған жүйелер адамзат өмірінің бөлшегіне айналғандығына Пайдаланылған әдебиеттер Горев А.И. и др. Эффективная работа с СУБД. Четвериков В.Н. и др. Базы данных и знаний. Тиори Т., Фрай Дж. Проектирование структур баз данных. Саймон А. Стратегические технологии баз данных: менеджмент на Когаловский М.Р. Энциклопедия технологий баз данных. –М.:Финансы и Галицына О.Л. и др. Базы данных. Уч. Пособие Атре Ш. Структурный подход к организации баз данных. Дейт К. Введение в системы данных. М.: Наука, Мартин Дж. Организация баз данных вычислительных системах. М.: Ульман Д., Уидом Дж. Введение в системы баз Неверова Е.Г. Исследование проблем создания баз данных для Неверова Е.Г. Технология проектирования баз данных и знаний, Мартин Дж. “Организация баз данных в вычислительных системах”, Федоров А.Г. Создание Windows –приложений в среде Орлик С.В. Секреты Delphi на примерах. - Дарахвелидзе П.Г., Марков Е.П. Delphi – среда Джон Матчо, Дэвид Р.Фолкнер. Delphi Пер. с Орлик С.В. Секреты Delphi на примерах. - Дейт, К. «Введение в системы баз данных».-М.:Наука, Диалектика. Д.Л.Вескес, М.Гандерлоу,М.Чипмен «Access и SQL Server», Москва, «Лори», Р.Ахаян и др. «Эффективная работа с СУБД», Санкт-Петербург, Кодд, Е.Ф. «Реляционная модель данных». Пер с англ. Қосымша А program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}, {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); end. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DBCtrls, ExtCtrls; Type TOurOpenDialog = class ( TOpenDialog ) Private { Private declarations } Protected { Protected declarations } public { Public declarations } constructor Create(AOwner: TComponent); override; published { Published declarations } end; procedure register; implementation procedure register; begin RegisterComponents('Samples', [TOurOpenDialog]); end; { TOurOpenDialog } constructor TOurOpenDialog.Create(AOwner: TComponent); begin inherited Create(AOwner); Options := Options + [ofFileMustExist, ofPathMustExist]; end; end. Type TOurComponent = class ( TComponent ) Private { Private declarations } FArrayProp : array [0..9] of integer ; Function GetArrayProp ( aIndex : integer ): integer Procedure SetArrayProp ( aIndex : integer ; const Value : integer ); Protected { Protected declarations } Public { Public declarations } Property ArrayProp [ aIndex : integer ]: integer GetArrayProp Write SetArrayProp ; Published { Published declarations } End ; Type TOurComponent = class ( TComponent ) Private { Private declarations } FMyInteger : Integer ; Protected { Protected declarations } Public { Public declarations } Constructor Create ( AOwner : TComponent ); override Published { Published declarations } Property MyInteger : Integer read FMyInteger Write FMyInteger default 10; End ; Procedure Register ; Begin Interface Uses SysUtils , Classes , Controls , StdCtrls ; Type TmgCoolLabel = class ( TLabel ) Private { Private declarations } Protected { Protected declarations } Public { Public declarations } Published { Published declarations } End ; Procedure Register ; Implementation End ; End . Implementation Create constructor TOurComponent . ( AOwner : TComponent Begin Inherited Create ( AOwner ); FInteger :=10; End ; End . Interface Uses SysUtils , Classes , Controls , StdCtrls ; type TmgCoolLabel = class(TLabel) private { Private declarations } protected { Protected declarations } public { Public declarations } constructor Create(AOwner:TComponent);override; published { Published declarations } property Height default 30; property Width default 85; end; procedure Register; implementation uses Graphics; procedure Register; begin RegisterComponents('Our components', [TmgCoolLabel]); end; { TmgCoolLabel } constructor TmgCoolLabel.Create(AOwner: TComponent); begin inherited Create(AOwner); AutoSize:=false; Height:=30; Width:=120; Font.Color:=clBlue; Font.Style:=[fsBold]; Font.Height:=16; Font.Size:=12; end; end. RegisterComponents (' Our components ',[ TmgCoolLabel ]); Var Stream : TStream ; Begin Stream := Create TFileStream . ( FileName , Try WriteComponentRes Stream . ( ClassName Instance . , Finally Free Stream . ; End ; End ; Private FStream : TStream ; FBuffer : Pointer ; FBufSize : Integer ; FBufPos : Integer ; FBufEnd : Integer ; FRoot : TComponent ; FLookupRoot : TComponent ; FAncestor : TPersistent ; FIgnoreChildren : Boolean ; Protected Procedure SetRoot ( Value : TComponent ); virtual Public Constructor Create ( Stream : TStream ; BufSize Destructor Destroy ; override ; Procedure DefineProperty ( const Name : string ; ReadData : TReaderProc ; WriteData : TWriterProc ; HasData : Boolean ); virtual ; abstract ; Procedure DefineBinaryProperty ( const Name : string ; ReadData , WriteData : TStreamProc ; HasData : Boolean ); virtual ; abstract ; Procedure FlushBuffer ; virtual ; abstract ; Property Root : TComponent read FRoot write SetRoot Property LookupRoot : TComponent read FLookupRoot ; Property Ancestor : TPersistent read FAncestor write FAncestor Property IgnoreChildren : Boolean read FIgnoreChildren write FIgnoreChildren End ; Type TForm 1= class ( TForm ) Button 1: TButton ; OpenDialog 1: TOpenDialog ; Button 2: TButton ; Procedure Button 1 Click ( Sender : TObject Procedure Button 2 Click ( Sender : TObject Private { Private declarations } Procedure ReadFormProperties ( DfmName : String ; Form Procedure WriteFormProperties ( DfmName : String ; Form Public { Public declarations } End ; Var Form 1: TForm 1; Implementation {$ R dfm } Procedure TForm 1. Button 1 Click ( Sender Var RunTimeForm : TForm ; Begin RunTimeForm := TForm 1. CreateNew ( Self ); With RunTimeForm do try If OpenDialog 1. Execute then Begin ReadFormProperties ( OpenDialog 1. FileName , RunTimeForm ); ShowModal ; End ; Finally Free RunTimeForm . ; End ; End ; Procedure TForm 1. ReadFormProperties ( DfmName : String Var FileStream : TFileStream ; BinStream : TMemoryStream ; Begin FileStream := Create TFileStream . ( DfmName , Try BinStream := Create TMemoryStream . ; Try ObjectTextToBinary ( FileStream , BinStream ); Seek BinStream . (0, soFromBeginning ); ReadComponent BinStream . ( Form ); Finally Free BinStream . ; End ; Finally Free FileStream . ; End ; End ; Procedure TForm 1. WriteFormProperties ( DfmName : String Var BinStream : TMemoryStream ; FileStream : TFileStream ; Begin BinStream := Create TMemoryStream . ; Try FileStream := Create TFileStream . ( DfmName , Try WriteComponent BinStream . ( Form ); Seek BinStream . (0, soFromBeginning ); ObjectBinaryToText ( BinStream , FileStream ); Finally Free FileStream . ; End ; Finally Free BinStream . End ; End ; Procedure TForm 1. Button 2 Click ( Sender Begin If OpenDialog 1. Execute then Begin WriteFormProperties ( OpenDialog 1. FileName , Self ); ShowModal ; End ; End ; Left =192 Top =114 Width =870 Height =640 Caption =' Form 1' Color = clBtnFace А Color Font . = clWindowText Height Font . =-11 Name Font . =' MS Sans Serif ' Style Font . =[] OldCreateOrder = False PixelsPerInch =96 TextHeight =13 Object TextLogger 1: TTextLogger Text ='678' Left =368 Top =160 TextHistory =( End End. 35 

Мәтінді көшіру үшін белсенді жазылым қажет.

Пайдаланушы ID: 261470

Жарияланған күні: