Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2013, 09:43   #1
voverrr
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 62
По умолчанию Undeclared identifier 'cells' или 'text' при работе с Экселем

Здравствуйте.
Вот такая программа. Из экселя перекидывает данные в табличку или в комбобоксы. Сама программа работает нормально, компилится, но при этом висят сообщения об ошибках и в тексте они подчёркнуты. Несмотря на то, что всё работает, чувствую, что что-то происходит не так.

Как считаете? Надо починить, или не стоит в него лезть, если оно и так работает нормально?
Comobj как и положено, в Uses добавлено.

Последний раз редактировалось voverrr; 24.02.2013 в 09:58.
voverrr вне форума Ответить с цитированием
Старый 24.02.2013, 10:34   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

1. про локальные переменные не слышал? распихай глобальные по процедурам.
2. попробуй так xl.sheets(1).Cells(i,10) т.е. () вместо []
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 24.02.2013, 10:56   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не обращай внимания. Делфи не умеет определять свойства СОМ объектов, потому и возмущается. В ходе работы программы все срастется если имена свойств верные.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.02.2013, 11:52   #4
voverrr
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 62
По умолчанию

Цитата:
Сообщение от Slym Посмотреть сообщение
1. про локальные переменные не слышал? распихай глобальные по процедурам.
да пробовал эти переменные уже объявлять по-разному. И локально и глобально. Никакого эффекта.Сначала обнаружил, что я их два раза объявляю, поудалял сначала из глобальных - ни фига, потом вернул в глобальные, а поудалял из локальных - ноль эффекта.

Цитата:
Сообщение от Slym Посмотреть сообщение
2. попробуй так xl.sheets(1).Cells(i,10) т.е. () вместо []
скобки поменял на круглые, ошибки-то исчезли, но запускаться теперь не желает, ругается вообще какими-то страшными, практически нецензурными словами:
во:

и во:

а если не найден - какой смысл жить?
Цитата:
Сообщение от Stilet Посмотреть сообщение
Не обращай внимания.
вся штука в том, что ранее на пробной форме я делал эти обращения к Экселю и у меня всё вставлялось и никаких ошибок не было. Я ещё удивился, мол, "надо же, все Uses и свойства компонентов по умолчанию, а ошибок не выдаёт". А когда перенёс эти строчки в настоящий проект - оказалось ошибка.

а вот подскажите такой ещё вещь. К данной теме оно не относится, но не флудить же темами.

как экономнее объявлять цикл?
for i:=0 to sg1.RowCount-1 do - SG1 - это таблица, в ней 30 строк. Количество строк не меняется.
или
for i:=0 to 29 do

на какую операцию затрачивается больше памяти и ресурсов? Или это настолько маленькие затраты, что нет смысла экономить на данном отрезке?

Последний раз редактировалось voverrr; 24.02.2013 в 12:27.
voverrr вне форума Ответить с цитированием
Старый 24.02.2013, 15:21   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
скобки поменял на круглые
Ну и зря. В СОМ технологии обращения к элементам коллекций (а именно с коллекцией ты ведешь работу) идут через свойства, которые являются функциями.
Цитата:
А когда перенёс эти строчки в настоящий проект - оказалось ошибка.
Ошибка во время выполнения или только в дизайне?
Цитата:
Или это настолько маленькие затраты
Это настолько маленькие затраты. sg1.RowCount-1 скорее всего запихнется в регистр ЕСХ, который будет внутри процессора уменьшатся командой loop, если внутри цикла нет изменения sg1.RowCount.
Соответственно писать константу получается не только не эффективнее но и опаснее - забудешь ее поменять, поменяв кол-во колонок, и получишь ошибку.
К тому же современные процессоры такие вещи даже не замечают.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.02.2013, 15:33   #6
voverrr
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 62
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну и зря. В СОМ технологии обращения к элементам коллекций (а именно с коллекцией ты ведешь работу) идут через свойства, которые являются функциями.

Ошибка во время выполнения или только в дизайне?
скобки вернул прямоугольные.
ошибки только в дизайне. Компиляется всё нормуль.
voverrr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Undeclared identifier OkBottomDlg Damik Общие вопросы Delphi 8 11.02.2013 01:02
undeclared identifier eatlant Общие вопросы Delphi 1 03.05.2011 23:12
'cout' : undeclared identifier Alt_Shift Помощь студентам 10 15.04.2011 07:54
Undeclared identifier. Neroaz Помощь студентам 4 07.04.2010 20:29
Нестандартное использование Cells.FormulaR1C1 и Cells.Text Lokkie Microsoft Office Excel 3 21.01.2009 17:41