Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / фундаментальные классы / 22 сообщений из 22, страница 1 из 1
13.08.2010, 10:15
    #36790011
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Для кого-то этот вопрос покажется простым, но меня он поставил в тупик.
Как программно добавить на форму фундаментальные классы в моем случае используется Navigation Toolbar. Или создать
Если его сразу же добавить на форму, то все работает
но при перезапуске этой формы выходят ошибки несоответствия типов. Поэтому хочу его донастроить под себя.
Помогите
...
Рейтинг: 0 / 0
13.08.2010, 11:12
    #36790181
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Alexandr29,

С этими инструментами знакомы?
AddObject Method
PEMSTATUS( ) Function
VARTYPE( ) Function
...
Рейтинг: 0 / 0
13.08.2010, 11:59
    #36790342
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Знаком на начальном уровне
...
Рейтинг: 0 / 0
13.08.2010, 12:10
    #36790383
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Alexandr29Знаком на начальном уровне
Для PEMSTATUS обратить внимание на nAttribute = 5
MSDNDefined property, event, method, or object.

If the property, event, method, or object exists for oObjectName or cClassName, PEMSTATUS( ) returns a logical True (.T.). Otherwise, or for hidden native properties, PEMSTATUS( ) returns a logical False (.F.).
...
Рейтинг: 0 / 0
13.08.2010, 12:51
    #36790511
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Пока не совсем понял, разбираюсь

На основании Фунд класса Navigation Toolbar создал свой класс
и пытаюсь его запустить(добавить на форму).

pfGrid.AddObject('navigatormy', 'navigatormy.vcx')
oNavToolbarClass1 =Newobject('navigatormy', 'navigatormy.vcx')

но выдаёт ошибку «определение класса не найдено»
Что-то я делаю не так.
...
Рейтинг: 0 / 0
13.08.2010, 12:58
    #36790535
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
SET CLASSLIB TO "C:\Путь\ИмяФайла.vcx" additive
...
Рейтинг: 0 / 0
13.08.2010, 13:00
    #36790536
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Alexandr29
Код: plaintext
pfGrid.AddObject('navigatormy', 'navigatormy.vcx')

И все-таки не надо путать класс и библиотеку, даже если в библиотеке один класс.
...
Рейтинг: 0 / 0
13.08.2010, 14:31
    #36790858
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
FfffffffffffffffSET CLASSLIB TO "C:\Путь\ИмяФайла.vcx" additive

Я Исправил SET CLASSLIB TO
но терерь ошибка - псевдоним уже используется.
Привожу весь код запуска формы.
Parameters dataAdres, nameform

Close Databases
Do Form fGrid Name pfGrid With dataAdres Linked

_Screen.Caption ='реализация '+nameform
pfGrid.GridDataT.Width=pfGrid.Width-5
pfGrid.GridDataT.Height=pfGrid.Height-30
SET CLASSLIB TO "C:\sevasever\FoxPro\trade8\class\navigatormy.vcx" additive
pfGrid.AddObject('navigatormy', 'navigatormy.vcx')
...
Рейтинг: 0 / 0
13.08.2010, 15:01
    #36790941
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
AmKadAlexandr29
Код: plaintext
pfGrid.AddObject('navigatormy', 'navigatormy.vcx')

И все-таки не надо путать класс и библиотеку, даже если в библиотеке один класс.
Согласен
но как программа узнает откуда и какой класс добавить.
исправил на pfGrid.AddObject('navigatormy', 'container')- не правильно а как должно быть
...
Рейтинг: 0 / 0
13.08.2010, 15:27
    #36791012
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Метод AddObject() предполагает, что нужная библиотека классов (файл VCX) предварительно подключена через настройку SET CLASSLIB

Метод NewObject() в качестве 3 параметра может явно указать имя библиотеки классов (файла VCX) из которого надо взять определение указанного класса.
...
Рейтинг: 0 / 0
13.08.2010, 16:16
    #36791166
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Я исправил в соответствии с полученными рекомендациями,

SET CLASSLIB TO "C:\sevasever\FoxPro\trade8\class\navigatormy.vcx" additive
pfGrid.AddObject('navigatormy1', 'navigatormy', )

но теперь ошибка "Определение класса не найдено"

Всем большое спасибо за помощь, а то ковыряюсь в этой проблеме а единой цельной картины так и нет.
...
Рейтинг: 0 / 0
13.08.2010, 16:21
    #36791178
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Alexandr29Я исправил в соответствии с полученными рекомендациями,

SET CLASSLIB TO "C:\sevasever\FoxPro\trade8\class\navigatormy.vcx" additive
pfGrid.AddObject('navigatormy1', 'navigatormy', )

но теперь ошибка "Определение класса не найдено"

Всем большое спасибо за помощь, а то ковыряюсь в этой проблеме а единой цельной картины так и нет.
А теперь вопрос на засыпку, есть ли класс navigatormy в библиотеке navigatormy.vcx?
...
Рейтинг: 0 / 0
13.08.2010, 23:23
    #36791671
FoxSoftware
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Alexandr29Для кого-то этот вопрос покажется простым, но меня он поставил в тупик.
Как программно добавить на форму фундаментальные классы в моем случае используется Navigation Toolbar. Или создать
Если его сразу же добавить на форму, то все работает
но при перезапуске этой формы выходят ошибки несоответствия типов. Поэтому хочу его донастроить под себя.
Помогите
Да блин вопрос яйца Ломаного не стоит.
Метод AddObject() конечно же.
...
Рейтинг: 0 / 0
16.08.2010, 09:07
    #36792882
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
AmKadAlexandr29Я исправил в соответствии с полученными рекомендациями,

SET CLASSLIB TO "C:\sevasever\FoxPro\trade8\class\navigatormy.vcx" additive
pfGrid.AddObject('navigatormy1', 'navigatormy', )

но теперь ошибка "Определение класса не найдено"

Всем большое спасибо за помощь, а то ковыряюсь в этой проблеме а единой цельной картины так и нет.
А теперь вопрос на засыпку, есть ли класс navigatormy в библиотеке navigatormy.vcx?

Почему нет, если в окне проекта в группе Classes есть класс с именем navigatormy и путем C:\sevasever\FoxPro\trade8\class\navigatormy.vcx
...
Рейтинг: 0 / 0
16.08.2010, 12:40
    #36793302
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Код
SET CLASSLIB TO "C:\Program Files\Microsoft Visual FoxPro 9\Ffc\_table2.vcx" additive
pfGrid.AddObject('navigatormy1', '_navtoolbarclass')

работает.
И если скопировать файлы _table2.vcx и _base.vcx в проект, соответственно переписав пути в коде - работает.

Но почему не работает если я, через Галерею компонентов, добавляю в проект. На вопрос как отвечаю - создать новый класс. и к нему соответственно обращаюсь.
...
Рейтинг: 0 / 0
16.08.2010, 14:35
    #36793600
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Alexandr29Но почему не работает если я, через Галерею компонентов, добавляю в проект
По той причине, что пути доступа к файлу, записанные в проекте "не видны" при выполнении программы. Эти пути доступа надо указать явно . Либо через SET PATH, либо (что хуже) через полный путь в команде SET CLASSLIB

Как правило, используют файл конфигурации Config.FPW для того, чтобы указать пути доступа. Причем файл конфигурации делается один на этап разработки и другой для готового EXE.
...
Рейтинг: 0 / 0
16.08.2010, 15:43
    #36793840
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Использую и
SET PATH
и
SET CLASSLIB
но не работает, сейчас повторно обыграл ситуацию
Ошибка Определение класса _TBRNavigation не найдено

Решение проблемы -скопировать в ручную, в папку проекта необходимые библиотеки
И уже их править.
...
Рейтинг: 0 / 0
16.08.2010, 19:04
    #36794306
фундаментальные классы
Alexandr29Использую и
SET PATH
и
SET CLASSLIB
но не работает, Это такое сообщение об ошибке?сейчас повторно обыграл ситуацию
Ошибка Определение класса _TBRNavigation не найдено

Решение проблемы -скопировать в ручную, в папку проекта необходимые библиотеки
И уже их править.Это очень плохое решение. Set classlib выставлен? Или надеетесь без него обойтись?
...
Рейтинг: 0 / 0
18.08.2010, 12:33
    #36797532
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
проходящий.Alexandr29Использую и
SET PATH
и
SET CLASSLIB
но не работает, Это такое сообщение об ошибке?


Извиняюсь за столь долгие ответы

В коде основного файла прописал
Set Path To Dbf,User,Forms,Reports,Info,CLASS,GRAPHICS,PROGS

А при запуске формы
SET CLASSLIB TO "C:\sevasever\FoxPro\trade8\class\navigatormy.vcx" additive
pfGrid.AddObject('navigatormy1', 'navigatormy')
проходящий.Alexandr29
Решение проблемы -скопировать в ручную, в папку проекта необходимые библиотеки
И уже их править.Это очень плохое решение. Set classlib выставлен? Или надеетесь без него обойтись?
У меня работает, но решение не правильное а как правильно не знаю
Да и исправить ошибку не получается

ошибка- при повторном запуске pfGrid.
В классе _table2.vcx В _navtoolbarclass объект tmrCheck Toolbar на процедуру Timer
при исполнении строк
THIS.Parent.oToolbar.Top = THIS.Parent.nLastTop
THIS.Parent.oToolbar.Left = THIS.Parent.nLastLeft
Пытается присвоить логические значения вместо числовых.

Но добавить условие проверки свойства значения у меня не получилось
От сюда вопрос: Как редактировать класс?

Я понимаю вопрос пространственный, но поэтому и расписываю ситуацию.

Если что не так объяснил не обижайтесь, задавайте вопросы.
...
Рейтинг: 0 / 0
18.08.2010, 12:53
    #36797594
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Alexandr29
Но добавить условие проверки свойства значения у меня не получилось

Выше я приводил функцию Vartype, которую ты видимо проигнорировал.
...
Рейтинг: 0 / 0
18.08.2010, 13:09
    #36797630
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Ага - PEMStatus и GetPem уже в хелпе замазали синим фломастером
...
Рейтинг: 0 / 0
18.08.2010, 14:35
    #36797858
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фундаментальные классы
Ура, разобрался программа подхватывала библиотеку _table2.vcx из проекта
а я оказывается правил C:\Program Files\Microsoft Visual FoxPro 9\Ffc\_table2.vcx

Всем огромное спасибо.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / фундаментальные классы / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]