powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не работает пример
12 сообщений из 12, страница 1 из 1
Не работает пример
    #35636424
ННовичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть форма, на ней грид, тип формы модальный, всё стандартно
Есть программа которая запускает эту форму...

set deleted on
set multilocks on
close databases all

local lcDBC
lcDBC = 'C:\FOX\VFP9\SAMPLES\NORTHWIND\NORTHWIND.DBC'
open database (lcDBC)
oMyCAD = createobject('CursorAdapter')
with oMyCAD
.Alias = 'Myalias'
.DataSourceType = 'Native'
.SelectCmd = 'select ADDRESS, CITY, COMPANYNAME, CONTACTNAME'
.CursorSchema = 'ADDRESS C(60), CITY C(15), COMPANYNAME C(40), CONTACTNAME C(30)'
.Tables = 'CUSTOMERS'
.keyFieldList = 'CUSTOMERID'
.UpdatableFieldList = 'ADDRESS, CITY, COMPANYNAME, CONTACTNAME'
.updateNameList = 'ADDRESS CUSTOMERS.ADDRESS, CITY CUSTOMERS.CITY, COMPANYNAME CUSTOMERS.COMPANYNAME, CONTACTNAME CUSTOMERS.CONTACTNAME'
.cursorfill(.t.)
endwith
DO form form4
Форма запускается и грид показывает записи....
Но если я этот код полностью(кроме последней строчки) переношу в Load этой формы....то грид остаётся пустым...почему?
Почему в статусной строке показывается время выбора записей, а в окне "DataSession" видна только таблица CUSTOMERS, а курсора нет
...
Рейтинг: 0 / 0
Не работает пример
    #35636464
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переменная oMyCAD разрушается при завершении события load - соответственно
разрушается объект КА, т.е. срабатывает деструктор класса, который и
подчищает за собой весь "мусор", к которому относится, в том числе, связаный
курсор.

Вариант - создать у формы пропертю oMyCAD и обращаться к ней как
ThisForm.oMyCAD. ...


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Не работает пример
    #35636474
ННовичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, спасибо, я объявил её в Public и всё заработало...
...
Рейтинг: 0 / 0
Не работает пример
    #35636486
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ННовичокБлин, спасибо, я объявил её в Public и всё заработало...
А вот это напрасно.. Лучше последуйте совету Рината.
С уважением, Алексей
...
Рейтинг: 0 / 0
Не работает пример
    #35636533
ННовичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почему?.. например :-)), если в unload после того как отработало можно поставить release oMyCAD..
...
Рейтинг: 0 / 0
Не работает пример
    #35636548
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ННовичокпочему?.. например :-)), если в unload после того как отработало можно поставить release oMyCAD..
Почему?!
Ну, например, вы захотите несколько форм таких заускать одновременно (DataSession = 2).
С уважением, Алексей.
...
Рейтинг: 0 / 0
Не работает пример
    #35636550
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я что-то говорил про PUBLIC ???

Да, действительно, в этом случае область видимости переменной не ограничена
методом load формы.

Но во первых это дурной тон - гадить туда, где нет необходимости.

А во вторых представим себе ситуцию, что запускаем дважды эту форму. У
каждой свои условия для КАДа. Что в итоге получим???

Или в первом unload делаем release этой переменной и вторая форма теряет
свой источник ???


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Не работает пример
    #35636601
ННовичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял, спасибо..:-)
...
Рейтинг: 0 / 0
Не работает пример
    #35636902
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторБлин, спасибо, я объявил её в Public и всё заработало...

Вам необходимо добавить форме новое свойство, к примеру
oCadCUSTOMERS

в лоаде написать к примеру
this.oCadCUSTOMERS = createobject('CursorAdapter')

подъем курсорадаптера
createobject('CursorAdapter')
лучше вынести в метод кастом класса и в методе кастом класса поднимать кады и проверять
успешность и т.д. ...

в реальном проекте Вам необходимо пронаследовать базовый класс
и создать собственный визуальный класс и использовать уже только этот класс.
...
Рейтинг: 0 / 0
Не работает пример
    #35637033
ННовичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извините, но что то сленг не догоняю....а что такое "касты", и ещё вопрос конечно полемический насчёт классов...но так сложился стиль, что сдал задачу и забыл, могут позвонить и через год и через два, попросят добавить кнопку или ещё что..., но если класс вдруг изменён, если на него будут ссылаться другие проекты, то явно вероятность его изменения не равна нулю...и он потянет за собой цепочку ошибок, т.е. проект после сдачи закрывается наглухо, без всяких внешних ссылок на библиотеки...классы удобно наверное когда много программистов ведут одну задачу...а тут например поднять кад есть же и другте варианты...например в prg-шном файле(я и стараюсь выносить по возможности всё из формы, оставляя только наобходимое для интерфейса, ведь мемо поля scx этой формы, гораздо тяжелее востановить чем prg)...но конечно же класс можно писать и в prg файле, только это те же процедуры...а наследование, полиморфизм и т.д....я могу вызвать PRG-файлом...конечно же я буду делать так как предлагают многие через классы...но интуитивно как-то не проникся ещё...:-((...да отвлёкся..что такое "касты"
...
Рейтинг: 0 / 0
Не работает пример
    #35637262
homik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ННовичокно если класс вдруг изменён, если на него будут ссылаться другие проекты, то явно вероятность его изменения не равна нулю...и он потянет за собой цепочку ошибок

По этому поводу почитайте "Совершенный код" Макконела.

ННовичок...да отвлёкся..что такое "касты"
"кастом класс" - это класс, который Вы создатите на основе базового класса CUSTOM.
...
Рейтинг: 0 / 0
Не работает пример
    #35638984
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего-то я не улавливаю связь между "Проект закрывается наглухо" и "Этот
класс может быть модифицированн".

Для каждого проекта есть свой набор классов. Каждый проект ссылается на свои
библиотеки классов. Как только проект закончен, заливаешь все prg, формы,
классы в архив и ждешь до лу... худших времен, когда потребуются какие то
изменения.

В чем проблема?


PS Гордится тем, что при наличии грузовика ты картошку возишь в спортивном
порше с открытым верхом и оправдывать это тем, что ты ни разу не сидел за
рулем грузовика. И по хрену, что днищем ты по дороге скребешь...

ХМ В данном случае, наверное, лучше день потерять, потом за пять минут
долететь!


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не работает пример
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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