Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

1C и Delphi 7 [D7]


Allizar ©   (2009-02-05 15:54:00) 

Штудирую пособие о совместной работе указанных приложений. Создал учебный пример: запускается рабочая база и считывается значения справочника. Код компилируется, но при запуске приложения и выполнении следующей процедуры выдается ошибка о несовпадении типов. Причем у автора книги приложение работает, но, когда я пытаюсь скомпилировать им же созданные файлы, компиляция не проходит из-за синтаксической ошибки. Может, его приложение написано в более старой версии? Вообщем, не знаю.

Код
Код:

procedure TForm1.Button2Click(Sender: TObject);
var OleSklad: OleVariant;
begin OleSklad:=Unassigned;
ListBox1.Items.Clear;
if not VarIsEmpty(Ole1C) then begin OleSklad:=Ole1C.CreateObject('Справочник.'+Edit3.Text);
if not VarIsEmpty(OleSklad) then begin
if OleSklad.ВыбратьЭлементы()>0 then begin
while OleSklad.ПолучитьЭлемент()>0 do begin ListBox1.Items.Add(Trim(OleSklad.Код)+' '+Trim(OleSklad.Наименование)); Application.ProcessMessages;
end;
end;
end;
end;
OleSklad:=Unassigned;
end;


Allizar   (2009-02-05 17:23:00) [1]


> А так
>
> OleSklad.ВыбратьЭлементы(0); // <--
> while OleSklad.ПолучитьЭлемент()>0 do
> ..
>
> ?


Получилось!!!Ну и OleSklad.ПолучитьЭлемент(0) вместо соответствующей строчки.
Спасибо!!!


tesseract   (2009-02-05 17:19:00) [2]


> У меня нет под рукой одноэсины, гадать нет желания


Там по умолчанию значение. Насколько я помню вызывать такие функции желательно не напрямую, а через EvalExpr.


Сергей М.   (2009-02-05 17:13:00) [3]

Вообще процитируй сюда фрагмент стандартной одноэсной справки к методу ВыбратьЭлементы..

У меня нет под рукой одноэсины, гадать нет желания


Сергей М.   (2009-02-05 17:08:00) [4]


> Allizar ©   (05.02.09 16:52) [12]


А так

OleSklad.ВыбратьЭлементы( 0); // <--
while OleSklad.ПолучитьЭлемент()>0 do
..

?


Allizar   (2009-02-05 16:52:00) [5]

>На вопрос в [1] когда сподобишься ответить ?

На строчке:

if OleSklad.ВыбратьЭлементы()>0 then begin


Сергей М.   (2009-02-05 16:45:00) [6]


> Allizar ©   (05.02.09 16:40) [9]


> А вот приложение не работает


Это мы уже поняли и охотно верим. Долго ты еще будешь нас в этом убеждать ?)

На вопрос в [1] когда сподобишься ответить ?


tesseract   (2009-02-05 16:43:00) [7]


> Это не может компилировать в Д7 - русские буквы в идентификаторах
> недопустимы.


И компилируется и работает под XP. Где-то у меня был пример перебора метаданных в D7. Там всё равно выходит скрытый вызов iDispatch - а ему сугубо побарабану какие там символы.


Allizar   (2009-02-05 16:40:00) [8]

>И пусть радуется, а вот когда испортит базу, то будет не до радости.
Я работаю с копией.
>Это не может компилировать в Д7 - русские буквы в идентификаторах недопустимы.
Код компилируется. А вот приложение не работает.


Сергей М.   (2009-02-05 16:38:00) [9]


> Anatoly Podgoretsky ©   (05.02.09 16:34) [7]


Это-то как раз будет успешно скомпилировано.

А вот что там у автора книги творится - одним авторам (книги и этого топика) только и известно.


Anatoly Podgoretsky   (2009-02-05 16:34:00) [10]

Это не может компилировать в Д7 - русские буквы в идентификаторах недопустимы.


Anatoly Podgoretsky   (2009-02-05 16:28:00) [11]

> Jeer  (05.02.2009 16:21:03)  [3]

У Архангельского тоже потоки работаю, но сколько горя у читателей.


Anatoly Podgoretsky   (2009-02-05 16:23:00) [12]


> И не узнаешь никогда - ты же даже не почесался выяснить
> причину

И пусть радуется, а вот когда испортит базу, то будет не до радости.


tesseract   (2009-02-05 16:22:00) [13]

У тебя tStringList  - ANSI строка, а 1С возвращает WideString (в XP по крайней мере под 98 не смотрел).


Jeer   (2009-02-05 16:21:00) [14]


> Причем у автора книги приложение работает,


Вот к нему и вопросы.


Сергей М.   (2009-02-05 15:59:00) [15]


> я пытаюсь скомпилировать им же созданные файлы, компиляция
> не проходит из-за синтаксической ошибки. Может, его приложение
> написано в более старой версии? Вообщем, не знаю


И не узнаешь никогда - ты же даже не почесался выяснить причину


Сергей М.   (2009-02-05 15:57:00) [16]


> выдается ошибка о несовпадении типов


На какой строчке ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо