![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]
> выдается ошибка о несовпадении типов
На какой строчке ?