Foxpro клуб VFP като оле-сървър

DataToClip ([nWorkArea | cTableAlias] [, nRecords] [, nClipFormat])

nWorkArea, cTabieAlias ​​- работно място или псевдоним източник на данни.

nRecords - броят на записите копира. uClipFormat подразбиране е 1, и полетата за данни са разделени с интервали. Ако параметърът е 3, данни е разделен от раздели.

Копия записване в клипборда като текст, в който всеки запис заема един ред.

cCommand - израз ще представя отбора VFP.

Позволява Visual FoxPro команда от приложение, което OLE- # 234, # 238, # 237, # 242, # 240, # 238, # 235, # 235, # 229, # 240, # 238, # 236;.

cExpression - изразът трябва да се преобразува.

Преобразува изразяване и го връща към Visual FoxPro.

Помощ ([cFileName] [, nContexId] [, cHelpTopic])

cFileName - името и пътя до онлайн помощта. NcontextID - дял ID. cHelpTopic - раздел тема.

Тя се отваря прозорец с контекстно-зависима помощ.

Затваря използвате копие на Visual FoxPro заявлението.

RequestData ([nWorkArea | cTableAlias] [, nRecords])

nWorkArea, cTableAlias ​​- работно място или псевдоним източник на данни. nRecords - броят на записите копира.

Той създава масив с данни от източник на данни Visual FoxPro.

За да се отнасят до обекта за кандидатстване, можете да използвате променливата _VFP система.

Visual FoxPro 5.0 има следните колекции, които са свързани с прилагането на обект:

  • Контроли - контрол;

    В този случай, имайте предвид, че тези колекции са колекции изключително OLE- # 238; # 225; # 250; # 229; # 234; # 242; # 238; # 226; и може да се използва само с прилагането на предмета. За тези колекции не могат да бъдат достъпни с помощта на променливи, свързани с обектите, включени в тях. Трябва да използвате имота за кандидатстване. както е показано по-долу:

    OFRM = CreateObject ( "Форма")
    . oFrm.Application.Forms [1] .Controls.Count

    Ако сте го направили програма в Visual FoxPro 3.0, декларацията може да предизвика известна изненада даден по-горе. Тези колекции бяха представени и в третата версия, е в действителност. Но тъй като Visual FoxPro 3. 0 може да послужи като OLE- сървър, тези колекции не отговарят на общоприетите стандарти на OLE. Главно поради факта, че техните свойства са на разположение за модификация. Това е полезно, когато ние работим само с едно приложение. Както и преди, ние никой не си прави труда да продължите да използвате тези функции. Но веднага след като ние започваме да използвате приложението като OLE-сървър, който е обърнат към него от друго приложение, трябва да използвате Visual FoxPro обекти като OLE- # 234; .. # 238; # 235; # 235; # 229; # 234 ; # 246, # 232, # 232.

    Например, нищо не ни пречи да се създаде форма в Visual FoxPro пишат следния код:

    FRM = CreateObject ( "Форма")
    . oFrm.ControlCount Броят на контрол на формата

    За OLE -server брой контрол на формата трябва да се определят, както е показано в предишния пример, като се използват свойствата граф.

    Създаване на OLE-сървър Visual FoxPro

    Използване на Visual FoxPro 5.0, можете да създадете функционалност на OLE-сървър, който ще се използва от няколко приложения.

    За създаване на OLE-сървър и да се използва в часовете трябва да бъде описан като OLE Public, т. Е. Предлага се за OLE Automation. За да направите това, да определи КЛАС команда включва нова опция OLEPUBLIC. Ако даден клас е създаден в конструктора на класа, трябва да използвате подходящ ключ в независимата диалоговия прозорец Class Info. Маркиране на класа като OLE Public позволява Ръководител на проекта за изграждането на заявление за създаване и регистриране на класа като О Л Е сървър, на който е да бъдат достъпни OLE- # 234; # 238; # 237; # 242; # 240; # 238; # 235; # 235; # 229; # 240;.

    В Visual FoxPro, можете да създадете като сървър на In-Process (DLL), и Извън процес сървър (EXE). И двата типа сървъри работят с помощта на Visual FoxPro библиотека за поддръжка на приложения (по време на работа), но по същество гласове в използването на паметта.

    EXE сървъра има още едно предимство. Тя може да служи като OLE сървър и един обикновен Visual FoxPro приложение. По този начин, ако приложението използва сървъра контролер за изпълнение на процес, който може да бъде много-много ресурси, но тя се изпълнява локално на сървъра, ще получите обезщетение производителност.

    Покажи по-прост пример за създаване на Visual FoxPro OLE-сървър. Създаване на нова Ole_serv проект, който ще бъде един единствен файл на програмата със следния код:

    DEFINE КЛАС OLE_SERV като персонализирани OLEPUBLIC
    ПРОЦЕДУРА INIT
    Me SSAGEBOX (ПРОГРАМА (), "Работното ми ПЪРВО OLE-сървър")
    ENDDEFINE

    Изграждане и натиснете създаде EXE- или бутон DLL- # 244; # 224, # 233, # 235;. Ако следите внимателно съобщението се появява в процеса на изграждане на даден файл, вероятно сте разбрали посланието "Създаване на библиотека и регистриране на OLE сървър", Koto # 240; ри показва създаването и регистрацията на нашата програма като OLE- # 241; # 229; # 240; # 226; # 229; па. Спомнете си, че това се дължи на наличието на опции в OLEPUBLIC описания клас екип.

    При изграждането на OLE-сървър (OLE_SER.EXE или OLE_SER.DLL) файлове са създадени и OLE_SERV.TLB OLE_SERV.VBR.

    Tep Еф можете да напишете в командния прозорец на следния ред:

    След кратко изчакване, необходимо за зареждане на сървъра, ще видите прозорец със заглавие "Моята първа Works OLE сървър!" И посланието с името на текущо изпълнение процедури - Init.

    Въпреки, че нашата OLE -server не извършва никаква полезна работа, доказателство за своята дейност, са следните в trochki.

    Обърнете внимание на последния ред на пример. Той записа в клипборда на пътя към OLE сървър # 243; с три функции. Например, може да е низ: D \ РАБОТИ \ VFP5_SAMPLE \. В нашия пример, това ще се повтори три пъти. Това показва, че сървърът OLE започва да търси с ndows изъм OS Wi.

    По този начин, за размножаване и App ен а и инсталирането на сървър на различни компютри в различен atalogah, т е м и може да се изправи пред проблема с което показва начин на мен като на сървъра, и да ги използва за компоненти (файлове с бази данни, формуляри, ДОКЛАД, и така нататък. г.). Лу chshee Решението на - е използването на функция за EXE сървър Windows API GetM odul EFI leName (), която връща пълния път до главната EXE файл на текущия процес, ако първият параметър е нула. За сървъра DLL, можете да използвате GetModuleHandleQ име на функция DLL файл като параметър, за да се върне указател към сървъра. Този показалец може да се използва функция GetModuleFileName (), за да получите пълния път до сървъра на DLL.

    Instancing падащия списък ви позволява да определите как сървърът ще тече Извън процес. Възможни настройки са показани в таблица. 3.

    Възможни начини на Visual FoxPro OLE- сървъра