for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  

Список Форумов  :: Архив конференции по VFP до 2005 года
   :: Помощь сайту :: 

Ошибка 1575 на ровном месте.
Бураков Сергей
Автор

Сообщений: 280
Откуда: Calgary
Дата: 21.03.05 08:07:00ОтветитьЦитировать
Изменяю контрол в колонке:
ThisForm.Tgrid.Column37.RemoveObject("Text1")
SET CLASSLIB TO MyLib
ThisForm.Tgrid.Column37.AddObject("Text1","Cmdwarning")
И тут возникает ошибка 1575- Object name is invalid
Изменяю имя Text1 на любое другое - ошибка исчезает. Но для нормальной работы моей программы имя контролов во всех колонках должно быть одинаковым.
Сколько раз использовал RemoveObject и AddObject - всегда проходило нормально.
Ratings: 0 negative/0 positive

Re: Ошибка 1575 на ровном месте.
Бураков Сергей
Автор

Сообщений: 280
Откуда: Calgary
Дата: 21.03.05 08:22:48ОтветитьЦитировать
И еще одно наблюдение:
После RemoveObject смотрю в дебагере, в коллекции Controls колонки Text1 отсутствует, а в списке вложенных обьектов остается.
Ratings: 0 negative/0 positive

Re: Ошибка 1575 на ровном месте.
Aries

Сообщений: 4349
Откуда: Николаев
Дата: 21.03.05 09:11:42ОтветитьЦитировать
ThisForm.Tgrid.Column37.AddObject("oMyText","Cmdwarning")




------------------
Я бы переписал жизнь, но Бог не дает мне исходники (с)
==============================
Злостный линуксоид!
Ratings: 0 negative/0 positive

Re: Ошибка 1575 на ровном месте.
Бураков Сергей
Автор

Сообщений: 280
Откуда: Calgary
Дата: 21.03.05 09:49:34ОтветитьЦитировать
Так, конечно, работает, но в программе используется то, что элементы управления во всех столбцах именуются одинаково - Text1.
Ratings: 0 negative/0 positive

Re: Ошибка 1575 на ровном месте.
KDanylo

Сообщений: 139
Откуда: Welland ON
Дата: 21.03.05 10:08:55ОтветитьЦитировать
Здраствуйте,
в инит грида работает на ура (в место чекбокса может быть текстбокс, метка):

this.Columns[1].RemoveObject ("Text1")
this.Columns[1].AddObject ("Text1", "checkbox")
this.Columns[1].CurrentControl = "Text1"




------------------
Ще в нашому лісі запалає ватра...
Ratings: 0 negative/0 positive

Re: Ошибка 1575 на ровном месте.
Igor Korolyov

Сообщений: 31351
Дата: 21.03.05 21:32:27ОтветитьЦитировать
Hi Сергей!

1) То что ты привязался к имени не очень хорошо - в принципе можно сделать процедурку (а лучше метод класса - того-же грида скажем) которая для заданной колонки найдёт первый подходящий внутренний объект и вернёт ссылку на него - т.е. можно найти скажем первый объект у которого BaseClass=Textbox в колонке.
2) Странно что у тебя возникает ошибка - обычно такое наблюдается с Header-ом - ибо колонка это "особый" класс - он автоматом добавляет в себя хедер - если его нету, или если его попытаться удалить... Вот текстбокс он НЕ добавляет. Ну да это не суть важно - проблема решается через добавление объекта с другим именем и потом заменой его Name на желаемый.
3) Может быть беда, если объект является членом класса - от таких объектов практически невозможно полностью избавиться (как-то в FIDO обсуждалась проблема возникающих в подобных случаях объектов-покойников если интересно поищи через Google Groups) - поэтому лучше всё-же прислушайся к первому совету, и измени код везде где есть "прямые" обращения к Text1, на обращения через метод поиска подходящего объекта.




------------------
WBR, Igor
Ratings: 0 negative/0 positive



Извините, но у вас нет прав для того, чтобы писать в этом форуме.

On-line: 43 and Guests: 43


© 2000-2018 Fox Club 
Яндекс.Метрика