Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];

Вниз

1C и Delphi 7   Найти похожие ветки 

 
Allizar ©   (2009-02-05 15:54) [0]

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

Код
Код:

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;


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


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


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


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


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


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


 
Jeer ©   (2009-02-05 16:21) [3]


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


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


 
tesseract ©   (2009-02-05 16:22) [4]

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


 
Anatoly Podgoretsky ©   (2009-02-05 16:23) [5]


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

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


 
Anatoly Podgoretsky ©   (2009-02-05 16:28) [6]

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

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


 
Anatoly Podgoretsky ©   (2009-02-05 16:34) [7]

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


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


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


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

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


 
Allizar ©   (2009-02-05 16:40) [9]

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


 
tesseract ©   (2009-02-05 16:43) [10]


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


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


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


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


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


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

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


 
Allizar ©   (2009-02-05 16:52) [12]

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

На строчке:

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


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


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


А так

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

?


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

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

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


 
tesseract ©   (2009-02-05 17:19) [15]


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


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


 
Allizar ©   (2009-02-05 17:23) [16]


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


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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.076 c
4-1207322584
engine
2008-04-04 19:23
2009.03.29
TerminateProcess


2-1233618168
koha!
2009-02-03 02:42
2009.03.29
Вопрос по функции API Openfile()


4-1207054578
Андрей
2008-04-01 16:56
2009.03.29
Аналог функции GetWindowsDirectory


15-1232594173
Slider007
2009-01-22 06:16
2009.03.29
С днем рождения ! 22 января 2009 четверг


15-1232655714
Городской Шаман
2009-01-22 23:21
2009.03.29
А можно ли вообще при проектировании драйверов использовать ООП?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский