Вопрос № 50218: Здравствуйте уважаемые эксперты!
Delphi 7. Есть такой код:
program Project2;
{$APPTYPE CONSOLE}
uses
Windows, Messages, SysUtils, Variants, Classes,
OleCtrls,ComObj,ActiveX, StdCtrls, SHDocVw ;
var
wb: TWebBrow...Вопрос № 50231: Здравствуйте!
1)Возможно ли на Дельфи програмировать ПЗУ, микроконтроллеры?
2)Если возможно програмировать на Дельфи ПЗУ, микроконтроллеры где взять документацию по этому направлению?
3)Есть ли компоненты для програмирования ПЗУ и микроко...Вопрос № 50239: Здравствуйте Уважаемые Эксперты! У меня к вам несколько вопросов. 1) Почему при компиляции проекта, пустой формы, Delphi .Net, получается такой большой (1,26 МБ) размер исполняемого файла? 2) Как, неиспользуя ActiveX, открыть файлы pdf, например в Ri...
Вопрос
№ 50.218
Здравствуйте уважаемые эксперты!
Delphi 7. Есть такой код:
program Project2;
{$APPTYPE CONSOLE}
uses
Windows, Messages, SysUtils, Variants, Classes,
OleCtrls,ComObj,ActiveX, StdCtrls, SHDocVw ;
var
wb: TWebBrowser;
begin
wb := TWebBrowser.Create(nil);
wb.Navigate('http://site.ru/');
end.
После запуска (из под Delphi) вылетает такая ошибка: "Project Project2.exe raised exeption class EOleSysError with message 'Не был произведен вызов CoInitialize'. ...", если запускать из под винды, то просто "программа выполнила недопустимую ...". Писал еще такой код (см прил), но эффект тот же. Если писать данный код в обычно приложении (с "формой"), то все работает. Подскажите, как побороть??
Приложение:
Отправлен: 26.07.2006, 08:14
Вопрос задал: Koven (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, Koven!
Ответ у Вас в самом первом сообщении об ошибке лежит. :)
Прежде чем обращаться к любым COM-объектам, Вам нужно инициализировать библиотеку с помощью функции CoInitialize или CoInitializeEx. Если Вы делаете стандартное оконное приложение с VCL, то в какой-то из VCL-ек вызов этой функции происходит автоматически.
При обращении к OLE-объектам необхадимо предварительно вызывать функцию инициализации OLE-библиотеки OleInitialize().
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 26.07.2006, 08:33 Оценка за ответ: 5
Отвечает: Проходящий Мимо
Здравствуйте, Koven!
В дополнение к ответу sir henry добавлю, что функция CoInitialize(nil) вызывается автоматически из метода Application.Initialize(). Так как у Вас консольное приложение, метод Initialize не вызывается. Завершать роботу с библиотекой нужно функцией CoUninitialize(nil), которая в приложении выполняется при завершении работы модуля ComObj.
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 6-ой класс)
Ответ отправлен: 26.07.2006, 09:10 Оценка за ответ: 5
Вопрос № 50.231
Здравствуйте!
1)Возможно ли на Дельфи програмировать ПЗУ, микроконтроллеры?
2)Если возможно програмировать на Дельфи ПЗУ, микроконтроллеры где взять документацию по этому направлению?
3)Есть ли компоненты для програмирования ПЗУ и микроконтроллеров?
4)Если есть, где их взять?
5)Спасибо, что откликнулись!
Отправлен: 26.07.2006, 12:14
Вопрос задал: KuchumHan (статус: Студент)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Dr.Alex
Здравствуйте, KuchumHan!
Я думаю, что это вряд-ли. Сам много лет занимаюсь программирование микроконтроллеров, но такого не всречал. Ведь для исполнения программы на дельфине нужно, что бы на контроллере стояла винда, или ДОС для консольных приложений.
Ответ отправил: Dr.Alex (статус: 10-ый класс)
Ответ отправлен: 26.07.2006, 12:41
Вопрос № 50.239
Здравствуйте Уважаемые Эксперты! У меня к вам несколько вопросов. 1) Почему при компиляции проекта, пустой формы, Delphi .Net, получается такой большой (1,26 МБ) размер исполняемого файла? 2) Как, неиспользуя ActiveX, открыть файлы pdf, например в RichEdit? 3) Как можно раелизовать режим чтения, как в Office 2003? 4) Не вопрос, а как бы мысли в слух, при компиляции с включёной функцией "Включить пакеты для выполнения" исполняемый файл как в Delphi так и в C++ Builder получается около 20 кб, и вот я
думаю, почему бы Borland не создать технологию подобную Net Framevork только для VCL? Тогда программы написанный на Delphi и C++ Builder были бы не несколько мегабайт, а несколько сотен или десятков килобайт. Помоему программисты Borland не хуже программистов Microsoft и такую технологию могли бы рализовать если не для BDS 2006 так для будующих. Как вам такая идея и можно ли её притворить в жизнь? Заранее Спасибо.
Отвечает: sir henry
Здравствуйте, Шишкин М.А.!
1) Этот вопрос обсуждается уже второе десятилетие, поверьте. :) И относится это не только к Delphi .NET, но и ко всем старым версиям Delphi.
Дело в том, что и в приложениях для WinAPI и для .NET, все равно включаются многочисленные функции из VCL, в надежде, что Вы их может быть используете. Такой размер программы дает возможность программисту не писать свой код для обработки тех или иных событий, за Вас это сделали программисты Борланд.
2) Никак. Вы же сами должны понимать, что для парсинга документа pdf нужен соответствующий движок, который в RitchEdit отсутствует, поскольку RicthEdit всего лишь паразитирует на соответствующей библиотеке для разбора rtf.
3) А что Вы имеете в виду?
4) А вот пакеты это и есть как раз Борландовская разработка, аналогичная Net FrameWork, выполняющая теже функции, т.е. пакеты хранят общий для всех приложений код. Аналогичным образом строятся программы на VB, которые в обязательном порядке сопровождаются несколькими библиотеками стандартных функций.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 26.07.2006, 13:20
Отвечает: Проходящий Мимо
Здравствуйте, Шишкин М.А.!
3) Накинул Вам формочку в приложении, на ней лежат Memo1 и Memo2, Button и Panel. Для простоты Memo1 и Memo2 одного размера. Далее, создаем объект TStringList, в него загружаем текстовый файл. Потом построчно перебрасываем текст в Memo1, пересовываемся на колличество строчек в Memo1 и бросаем текст на Memo2. Возможно, эксперты подскажут более оптимальный вариант.
Приложение:
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 6-ой класс)
Ответ отправлен: 28.07.2006, 10:55 Оценка за ответ: 5 Комментарий оценки: Спасибо за наводку.