Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Арсенальная башня
  
Содержание



 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  06:22[Войти] | [Зарегистрироваться]

Обсуждение материала
Библиотека EasyCAD library, или контейнер визуальных объектов для практикующих
Полный текст материала


Другие публикации автора: Юрий Спектор

Цитата или краткий комментарий:

«... По своей сути, библиотека представляет собой набор классов, как законченных (для использования), так и базовых (для наследования), предназначенных для разработки приложений работающих с векторной графикой, таких как редакторы диаграмм и различные системы автоматизированного проектирования (САПР или CAD, англ. Computer-Aided Design). Предполагается, что программист, который будет использовать эту библиотеку, сможет максимально сосредоточиться на решении своей конкретной прикладной задачи, не тратя времени на разработку абстрактного "движка". ...»


Важно:
  • Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
  • Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
  • При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
  • Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.



Добавить свое мнение.




Смотрите также материалы по темам:
[GDI, рисование на канве] [Создание собственных компонент]

Комментарии жителей
Отслеживать это обсуждение

Всего сообщений: 10

25-11-2015 06:58
Подскажите где можно скачать документацию для easycad


03-12-2010 13:14
сообщение от автора материала
Это компонент, унаследованный от TCustomControl, довольно сложный, не все там сводится к "рисованию на канве".
Вот его иерархия:
TCustomControl->TECADScrollingControl->TECADObjectInspector, где
TECADScrollingControl и TECADObjectInspector - классы, реализованные в библиотеке.
Он выполняет много задач, от получения списка параметров объекта, доступных для отображения/редактирования, подбора для этих свойств соответствующих редакторов (эдит, список, диалог и т.д.) до непосредственно отображения всего этого на экране. Каждая задача отдельно настраивается - какие параметры и каким образом отображать/редактировать - решает программист.
 Ins


03-12-2010 06:30
Ins, подскажите как Вы сделали инспектор объектов.
Нарисовали на канве? Или это какой-то сторонний компонент?
Расскажите пожалуйста, пару слов об его реализации.
 exo


20-09-2010 12:12
сообщение от автора материала
Есть ещё несколько замечаний и предложений – готов пообщаться, например, почтой.

Конечно, email есть на сайте
 Ins


29-08-2010 14:37
Ещё раз спасибо за проделанную работу (первый раз спасибо – за предыдущую статью :))!

Возможно я когда-нибудь всерьёз займусь написанием программы для составления схем для одного из волнующих меня вопросов... И Ваш вариант пока мне нравится больше других. Именно серьезностью подхода к задаче и абстракции самих данных от способов их представления пользователю. Плагины тоже в плюс. Правда Ваш дизайнер пока ещё "сыроват" с точки зрения юзабилити конечного пользователя...

Чтобы хотелось увидеть в будущем (в дизайнере):
- наклон объектов
- преобразование объектов в многоугольник/набор линий
- свойство: при изменении размеров влево и/или вверх – разрешать изменять, а не ограничивать минимальную ширину и высоту объектов
- вращение – разрешить перемещать центр вращения
- свойство: поворачивать объекты как в последних версиях Visio (не через отдельное состояние, а над центром вращения возводится отрезок за границы объекта, хватаясь за вершину которого, объект можно поворачивать)
- задавать произвольные размеры «холста» (либо бесконечные размеры), при этом при печати делать разбивку холста на несколько листов (во время дизайна – отображать границы листов)... к примеру так, как это делается в Power Designer’е

Замечания:
- ломаные линии и произвольные многоугольники – при их создании фигура не "фиксируется", т.е. её нельзя ни покрутить, не по масштабировать (зато можно свободно двигать промежуточные точки). Сейчас, чтобы покрутить произвольный многоугольник, его надо сначала объединить с другой фигурой, затем, покрутив, разъединить обратно...
- линейки дизайнера не отображают текущее положение курсора.

Ещё бы хотелось сравнить (визуально) способы отрисовки (я так понял, что сейчас визуализировать можно через GDI, GDI+ и DirectX, было бы здорово, если бы в демо проекте можно было переключаться между этими способами).

Есть ещё несколько замечаний и предложений – готов пообщаться, например, почтой.


05-07-2010 14:45
сообщение от автора материала
Действительно вызов DestroyCursors здесь необязателен, поскольку индексы курсоров больше нуля, они будут уничтожены автоматически в деструкторе объекта Screen. Видимо эти строки остались с тех времен, когда индексы были отрицательными, этот код писался по аналогии со стандартным юнитом IMouse.pas
 Ins


03-07-2010 16:15
Здравствуйте, Ins!
изучаю исходники, выложенные на sourceforge.net. В модуле ECADDiagramControls есть такие строки:

const
  IDC_ROTATE = 'ROTATE';
  IDC_SHEAR = 'SHEAR';
  IDC_VERTEXDRAG = 'VERTEXDRAG';
  IDC_AREACROSS = 'AREACROSS';
  IDC_ADD = 'ADD';

  cCursor: array[0..4] of TIdentMapEntry = (
    (Value: crRotate;      Name: IDC_ROTATE),
    (Value: crShear;       Name: IDC_SHEAR),
    (Value: crVertexDrag;  Name: IDC_VERTEXDRAG),
    (Value: crAreaCross;   Name: IDC_AREACROSS),
    (Value: crAdd;         Name: IDC_ADD)
  );

procedure LoadCursors;
var
  i: Integer;
begin
  for i := Low(cCursor) to High(cCursor) do
    Screen.Cursors[cCursor[i].Value] := LoadCursor(HInstance, PChar(cCursor[i].Name));
end;

procedure DestroyCursors;
var
  i: Integer;
begin
  for i := Low(cCursor) to High(cCursor) do
    Screen.Cursors[cCursor[i].Value] := 0;
end;

initialization
  LoadCursors;

finalization
  DestroyCursors;


Не совсем понимаю зачем при финализации модуля всем зарезервированным курсорам приваиваются нули.
Судя по исходникам VCL, список всех курсоров у объекта Screen представляет собой связный список и при уничтожении Screen происходит корректное освобождение всех ресурсов.


21-05-2010 02:26
сообщение от автора материала
А планируется ли релизация операций отмены-повтора? Вещь очень нужная.

В простейшем случае, это можно реализовать сохраняя в истории полное состояние документа. Более эффективное решение, в котором бы сохранялась минимальная информация для отмены/возврата - да, планируется :)
 Ins


18-05-2010 10:55
Да, сильно отличается от первоначального варианта... :-) Автору - моя благодарность и пожелание всяческой удачи!!


18-05-2010 01:28
А планируется ли релизация операций отмены-повтора? Вещь очень нужная.
Ну а в общем, как мне кажется, в этой библиотеке есть все, что нужно тому кто собирается заниматься разработкой какой-либо системы с использованием визуального проектирования.




Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Зимой — белый, летом — серый. Кто?
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.
Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования