Տուն
Top.Mail.Ru Moscow
Ֆորում: «Գլխավոր»;
Ընթացիկ արխիվը `2004.12.12;
Բեռնել: [xml.tar.bz2];

Down

Չհաջողվեց TFont- ին տալ TFont- ին Գտնել նմանատիպ մասնաճյուղեր


Pupkov ©   (2004-11-28 23:20) [0]

Ես այստեղ մեկ խնդիր ունեմ:
Եկեղեցին օրեցօր մի ծրագիր է, որը աշխատում է պլագիններով: The plugin- ը նախատեսված է որպես DLL: Դիմումի եւ պլլիգի հաղորդակցման ինտերֆեյսները կազմակերպելու համար ես նախագծել եմ երկու դաս:
1. TESPluginAppInterface = դաս
հանրային
PluginType: 1..3;
ընթացակարգ AddControl (AControl: TControl), վիրտուալ, stdcall;
վերջ
Ինտերֆեյսի պլոմբի կազմակերպման համար `> դիմում: Դրա մեթոդները կիրառվում են կիրառական մոդուլում, եւ plug-in մոդուլի մեջ նրա մեթոդները նկարագրվում են որպես վերացական

2. TESAppPluginInterface = դաս
հանրային
ընթացակարգ LoadFromFile (FileName: String; WinCtrl: TWinControl), վիրտուալ, stdcall, վերացական;
վերջ
Ինտերֆեյսը կազմակերպելու համար դիմումը -> plugin- ը: Դրա մեթոդները կիրառվում են plug-in մոդուլի մեջ, իսկ կիրառման մոդուլի մեջ նրա մեթոդները նկարագրվում են որպես վերացական:

Դե, այդպես: Երբ հայտը պետք է բացել ֆայլ, այն կոչվում է plug-in, օգտագործելով TAFPluginInterface դասի LoadFromFile մեթոդը, ֆայլի անունը եւ պատուհանը կառավարումը փոխանցվում են որպես պարամետրեր: Մեթոդն իրականացվում է այսպիսի պլագինի ներսում:

ընթացակարգ TESAppPluginInterface.LoadFromFile (FileName: String;
WinCtrl: TWinControl), վիրտուալ, stdcall, վերացական;
էր
Control: TControl
սկսել
Control: = TControl.Create (WinCtrl);
PluginAppInterface.AddControl (Վերահսկիչ);
վերջը.

Ահա, եթե plugin- ն անհրաժեշտ է ստեղծել որոշակի վերահսկողություն եւ տեղադրել այն կիրառման մեջ, ապա այն ստեղծում է այն եւ օգտագործելով TPluginAppInterface դասի AddControl մեթոդը այն անցնում է դիմումին: Այս մեթոդը կիրառվում է կիրառման ներսում, ինչպես այսպես.

ընթացակարգ TESPluginAppInterface.AddControl (AControl: TControl), վիրտուալ, stdcall;
սկսեք
Control.Parent: = Panel1;
վերջ

Այսինքն, վերահսկողությունը ստանալը, դիմումը ինքն է որոշում, թե որտեղ է այն ծալել եւ կտրել (մասնավորապես, այն պակասում է Panel1- ում):
Այսպիսով line Control.Parent: = Panel1- ի գործարկման ժամանակ առաջացնում է սխալ: «Չի կարող TFont- ին փոխանցել TFont- ին»:. Մանրադիտակի տակ սերտորեն ուսումնասիրելուց հետո պարզվեց, որ Control.InsertControl մեթոդը սխալ է կոչում: Ամբողջ երեկոն պայքարում էր սխալի պատճառի բացահայտման հետ կապված, բայց դա չի դադարեցրել այն, ինչու դա տեղի է ունենում:



jack128 ©   (2004-11-29 00:23) [1]

Դուք պետք է կազմեք հավելվածը եւ պլագինները `վազքի ժամանակի փաթեթներով:



Игорь Шевченко ©   (2004-11-29 01:30) [2]


Ամբողջ երեկոն պայքարում էր սխալի պատճառը բացահայտելու համար


Exe- ի TFont- ում տեղադրված է մեկ հասցեով, DLL- ով: IS- ի գործողությունները համեմատում են հասցեները, եթե դրանք չեն համապատասխանում, ապա TFont- ը տարբերվում է:



REA   (2004-11-29 10:10) [3]

Եթե ​​դուք պլանավորում եք դասեր օգտագործել պլյուսի մեջ, ապա ավելի լավ է օգտագործել DLL- ի կամ COM- տեխնոլոգիայի փոխարեն փաթեթներ: Բոլոր մեթոդները, սակայն, ունեն իրենց առավելություններն ու թերությունները:



Amoeba ©   (2004-11-29 10:51) [4]

Http://www.delphikingdom.com- ում («Corner Delphi») առկա են պակասի ստեղծման եւ օգտագործման վերաբերյալ երկու լուրջ հոդվածներ: Բարձր խորհուրդ.



Էջեր: 1 ամբողջ ճյուղը

Ֆորում: «Գլխավոր»;
Ընթացիկ արխիվը `2004.12.12;
Բեռնել: [xml.tar.bz2];

Up





Հիշողություն `0.56 ՄԲ
Ժամանակը `0.053 գ
14-1101305407
Կլկկ
2004-11-24 17:10
2004.12.12
Վկայագրեր


8-1095497609
Վասրոգ
2004-09-18 12:53
2004.12.12
Ամենապարզ արտադրանքի նկարները


8-1094651546
SNV888
2004-09-08 17:52
2004.12.12
խաղալ MOD ֆայլեր


3-1100598443
Հետազոտող
2004-11-16 12:47
2004.12.12
Աշխատանքային գրքերով աշխատելը


3-1100246373
a_tereshin
2004-11-12 10:59
2004.12.12
Ինչպես ստանալ մատչելի կեղծանունների ցանկ





afrikaans ալբանական արաբական հայերեն ադրբեջանական Բասկերի Բելառուսի Բուլղարիայի catalan Չինարեն (պարզեցված) Չինարեն (ավանդական) Խորվաթիայի չեխ դանիերեն հոլանդական Անգլերեն
Էստոնիայի filipino ֆիններեն ֆրանսերեն
galician վրացական գերմանական հունարեն haitian Creole եբրայերեն հինդի հունգարերեն icelandic հայերեն իռլանդական իտալական ճապոնացի Կորեայի Լատվիայի Լիտվայի մակեդոներեն Մալայերեն մալթերեն նորվեգական
պարսկական Լեհաստանի պորտուգալացի ռումինական ռուսական սերբերեն Սլովակիայի Սլովենիայի իսպաներեն սուահիլի շվեդերեն թայերեն թուրքական ուկրաինական ուրդու վիետնամերեն ուելսերեն հայերեն bengali բոսնիերեն
Cebuano Esperanto գուջարաթի հաուսա Hmong Igbo ճավաերեն kannada Khmer Lao լատիներեն մաորի մարաթի մոնղոլական նեպալերեն Punjabi Somali tamil telugu յորուբա
զուլուսերեն
Անգլերեն Французский Немецкий Итальянский Португальский Русский Испанский