Проблема с добавлением сборки SmallBasicLibrary.dll


#23

Спасибо всем кто откликнулся, но у меня не получается приступить к упражнениям по книге В.Рубанцева “PascalABC . NET Программирование графики на примерах ” . Я не разбираюсь в программировании, поэтому ещё раз извиняюсь если мои вопросы вызовут недоумение.

Я начал с того что у меня не получалось добавить сборку SmallBasicLibrary.dll в программу PascalABC.NET .

Возможно что следующий способ разрешает эту проблему.

Но у меня что-то не получается. После выполнения инструкций из "книги В.Рубанцева” на стр. 21

и стр.22 я запустил программу. В книге сказано что на данном этапе программа ничего не сделает, но я получил следующую ошибку:

После некоторых попыток, я так и не сумел создать т.н. графическое окно как показано в низу страницы 24 (Рис. 1.21.)

Подскажите пожалуйста в чём проблема.


#24

Может быть, с этим вопросом Вам лучше обращаться к автору книги? Давайте не будем сбрасывать со счетов, что книга эта была написана не сегодня и даже не вчера: с тех пор произошли определенные изменения и в языке, и в среде программирования, и в .NET-библиотеках, и в операционных системах… Вряд ли остальное сообщество будет в состоянии пытаться прорешать каждую задачу, с которой у Вас возникли (и еще могут возникнуть в дальнейшем) проблемы. Хотя… кто знает?

Не нужно вызывать никаких проектов. Создайте новую программу и поместите в нее следующий код:

unit DrawUnit;
{$reference SmallBasicLibrary.dll}

uses Microsoft.SmallBasic.Library;

type
  Draw = class
  public
    class procedure Prepare();
    begin
    
    end;
    
    class procedure Draw();
    begin
      // GraphicsWindow.Show();
      GraphicsWindow.DrawText(10, 10, 'Hello, World!');
      GraphicsWindow.DrawText(10, 30, 'Здравствуй, Мир!');
    end;
  end;

end.

Сохраните программу под именем DrawUnit.pas. Теперь снова откройте окно для ввода новой программы и наберите там:

uses DrawUnit;

begin
  Draw.DRaw
end.

Запустите программу на выполнение.

Еще раз: не надо делать никакого проекта!


#25

Нет, это не способ решения. Это попытка найти минимальный код с которым ошибка воспроизводится. Это необходимо чтоб найти причину ошибки, чтоб её можно было исправить и было понятно как обходить.

Не “что то” а симптомы во всех подробностях.

Разумеется, вы не написали begin перед end. можно только в файлах модулей и библиотек, а вы это делаете в основной программе.

begin-end. программы это точка входа, то - откуда начнётся выполнение. Без неё программа невозможна.

А в книге - этот класс описывается в модуле, вы были невнимательны.


Кстати, чтоб загрузить скриншот - достаточно нажать Ctrl+V в окне ответа, скопировав изображение. Ну или если у вас файл - его можно потянуть и кинуть на окно ответа.


#26

В том .pdf всё делалось через проект. Но вообще да, проекты не очень удобно реализованы, лучше делать всё отдельными файлами.


#27

Благодарю за отклики, постараюсь учесть все замечания.

Дело в том что эта и другие похожие книги Рубанцева выложены на сайте PascalABC . net , в самом начале этого года, по согласованию с автором. Исходя из этого я подумал что именно тут надо обратить внимание на проблему и это как раз то самое место где можно получить подсказку.

Без условно, мне никто ничего не должен, но мир не без добрых людей Не сочтите за лесть, но Вы же откликнулись :slight_smile:


#28

Спасибо, в будущем постараюсь выражаться суше. Что касается этого раза, то все детали изложил, по моему подробно и без излишеств.

Я просто скопировал код из книги


#29

Написал автору тоже и пригласил его сюда обсудить этот вопрос. Эта книга, кстати, у него на сайте стоит всего 160 руб, обязательно куплю, когда прояснится эта проблема.


#30

Он присутствует на форуме под ником Valery и часто читает написанное.

Сейчас получилось так, что в теме “Проблема с добавлением сборки…” начинается обсуждение совсем уже других вопросов. Это не совсем хорошо, потому что другие люди, у которых может возникнуть аналогичная проблема с классами, могут сюда не зайти, ориентируясь на заголовок. Возможно, @Admin сочтет нужным эту тему переименовать или куда-то перенести.


#31

Вчера установил последнюю сборку паскаля и проверил книжные проекты. Всё работает. Здесь нет проблем ни с ОС, ни с паскалем, ни с библиотекой, ни с книгой. Просто человек решил написать код не так, как в книге а по-своему. Отсюда и ошибки.

Да, книга не новая, но с тех времён ничего принципиально не изменилось.