Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.116.24.105] |
|
Прикр. сообщ.
#1
,
|
|
|
Наконец-то я выкладываю новую версию своей библиотеки компонентов.
Что нового в этой версии? 1. Добавлен компонент TTexturePanel. 2. В TCustomScrollingImage добавлено масштабирование, а также автоматическое масштабирование по размеру компонента. 3. Изменена иерархия компонентов для скроллинга, теперь TFastScrollingImage наследуется от TScrollingImage. 4. Наследники TCustomScrollingImage, а также компоненты TBitmapContainer и TBitmapPanel теперь имеют свойство Transparent, позволяющее делать компонент прозрачным. 5. Добавлена возможность нестандартной отрисовки изображения в компонентах для скроллинга. 6. Добавлено изменение курсоров для скроллинга в design-time с помощью свойств ImageCanScrollCursor, ImageDragCursor, ImageScrollDisabled. 7. В TCustomScrollingImage добавлены свойства RealImagePos, RealImageLeft, RealImageTop, по которым можно узнать настоящие координаты изображения в компоненте, учитывая то, что оно может неполностью заполнять компонент. 8. Добавлено в TCustomScrollingImage свойство CanScrollWithMouse, позволяющее запретить скроллинг с помощью мыши. 9. Исправлен глюк в навигаторе при щелчке в нем правой кнопкой мыши. 10. В модуль ImgCtrlUtils добавлена процедура LoadGraphicToBitmap и немного подправлена функция IsEmptyPicture. 11. Добавлен модуль ImgCtrlsSkins. 12. Устранены другие небольшие баги и ошибки. Жду ваших пожеланий и оценок! Обновления: 2.1 - http://forum.sources.ru/index.php?act=Atta...=post&id=677520 2.1.1 - http://forum.sources.ru/index.php?act=Atta...=post&id=755480 (только модуль ScrollingImageAddons) Прикреплённый файлImgCtrls.zip (159.8 Кбайт, скачиваний: 842) |
Сообщ.
#1
,
|
|
|
Правда, релиз этот во второй версии еще не последний, у меня еще есть идеи по усовершенствованию компонентов.
|
Сообщ.
#2
,
|
|
|
s-mike, сразу же мелкое пожелание
ImageCanScrollCursor и ImageScrollDisabled свойства взаимосвязанные, но разработчику будет трудно их в связке запомнить. Желательно назвать их одинаково, типа ScrollEnabledCursor и ScrollDisabledCursor. Ну и не знаю, насколько правильно еще вот такое: RealImagePos и иже с ними, может быть лучше обозвать OffsetImagePos, OffsetImageTop, Left... По крайней мере, таковы названия свойств объектов в javascript по отношению к таблицам стилей. В общем хотелось бы иметь некоторое соответствие в терминах с общепринятыми... Но тут тебе лучше судить. Это что касается твоей презентации в первом сообщении. Саму новую версию щас смотреть некогда, на неделе еще что-нибудь напишу. Успехов! |
Сообщ.
#3
,
|
|
|
Цитата Mischka @ Но тут тебе лучше судить. Ну почему только мне. Вполне согласен, что некоторые свойства следует переименовать, потому что названы они были в спешке и не всегда понятно. Спасибо за рекомендации. |
Сообщ.
#4
,
|
|
|
У меня не пошло.
Но судя по сообщениям компилятора, на моём 5-ом Delphi и не может пойти: класс Types и куча других мелочей. Есть старая версия для 5-го Delphi? |
Сообщ.
#5
,
|
|
|
Цитата Stevendall @ У меня не пошло. Но судя по сообщениям компилятора, на моём 5-ом Delphi и не может пойти: класс Types и куча других мелочей. Есть старая версия для 5-го Delphi? Компонент разрабатывался под и для Дельфи 7. Когда будет время возможно подумаю и про порт для Дельфи более ранних версий. |
Сообщ.
#6
,
|
|
|
Цитата Stevendall @ моём 5-ом Delphi и не может пойти: класс Types types - это модуль. а не класс. Закоментируй всякие Types, Variants и тд. Добавлено да, Майк, у тя в исходниках в обилии встречаются такие вещи {@exclude} { @abstract и тд.. Что то похожее на html теги.. Есть предположение. что их генерирует какой то эксперт, для состовления документации - это так? |
Сообщ.
#7
,
|
|
|
Цитата jack128 @ Есть предположение. что их генерирует какой то эксперт, для состовления документации - это так? DIPasDoc Добавлено Делает документацию из комментариев к исходникам, удобная вещь. |
Сообщ.
#8
,
|
|
|
Цитата jack128 @ Цитата Stevendall @ моём 5-ом Delphi и не может пойти: класс Types types - это модуль. а не класс. Да уж, опечатался... Хотел исправить, но не стал этого делать, когда и так уже это другие прочитали. |
Сообщ.
#9
,
|
|
|
Почему лицензия только на буржуйском? :-(
|
Сообщ.
#10
,
|
|
|
Цитата MrZ @ Почему лицензия только на буржуйском? :-( Программист должен знать язык врага |
Сообщ.
#11
,
|
|
|
Я ваще-то CYB, тока пароль пасеял, а служба восстановления - глючит.
Но пишу не про это. Компоненты афигена харошие. Желаю тебе чувак успеха в последующих разработках. |
Сообщ.
#12
,
|
|
|
Пожалуй пришло время выложить обещанный апдейт до версии 2.1.
Цитата 1. По свежим следам исправлен глюк с GetFitImageScale при пустом изображении. 2. Немного усовершенствована процедура отрисовки, в частности отрисовки с прозрачностью TScrollingImage. 3. Исправлены баги в отрисовке TFastScrollingImage и TSBScrollingImage при включенной прозрачности (мерцание фона). 4. Устранены глюки свойства FitImage в design-time в компонентах для скроллинга. 5. Переименованы свойства ImageCanScrollCursor -> CanScrollCursor ImageDragCursor -> DragImageCursor ImageScrollDisabled -> ScrollDisabledCursor RealImagePos -> ImageOffset RealImageLeft -> ImageOffsetLeft RealImageTop -> ImageOffsetTop 6. Свойство FitImage поделено на два свойства - AutoZoomImage и AutoShrinkImage. 7. Удален модуль MiniMath потому что Math все равно используется в модуле Forms, а значит выгоды в использовании MiniMath нет. 8. Добавлено событие OnPaint в навигаторе и для рамки навигатора. Соответственно опубликовано свойство Canvas. 9. Устранен глюк, при котором при увеличении размера компонента TSBScrollingImage не перерисовывалась область спрятавшегося скроллбара. 10. ScrollButton теперь добавлено у всех наследников TCustomScrollingImage. Исправлена неправильная работа этого свойства в TFastScrollingImage и TSBScrollingImage. 11. В TCustomScrollingImage добавлено свойство StretchMode, позволяющее выбрать качество масштабирования изображения в компоненте. Названия значений свойства аналогичны значениям констант для WinAPI-функции SetStretchBltMode. К сожелению на данный момент остаются еще некоторые проблемы с работой компонента в design-time. Прикреплённый файлImgCtrls21.zip (157.53 Кбайт, скачиваний: 999) |
Сообщ.
#13
,
|
|
|
На сегодняшний день версию 2.0 скачали 42 раза, 2.1 - 10. Но топик практически пустой. Неужели там все так идеально, что и сказать нечего. Хотелось бы более активного обсуждения.
|
Сообщ.
#14
,
|
|
|
Pass! Пока не установлю себе Delphi-7.
|
Сообщ.
#15
,
|
|
|
Скачал, установил.
теперь при компиляции и запуске ооочень долго думает (и очень сильно думает - почти 100% проца) Дельфя почему? |
Сообщ.
#16
,
|
|
|
Версия Дельфи (хотя в принципе думаю 7), комп (проц, оператива), винда? И единственный ли мой компонент так долго ставится?
|
Сообщ.
#17
,
|
|
|
Дельфи 7 - для 8ой заломало качать Framework SDK
проц p4 2.8, оперативка 512. вобщем-то вот что я скажу тормозят (естествнно) тока проекты где юзается хоть одна твоя компонента при чем у меня складывается устойчивое впечателние, что Дельфи заново перекомпиливает твои модули при компиляции. мб я как-то криво устанваливал? точнее не так - дайте плз сцылку на мануал по установке компоонент и я скажу криво или нет Добавлено нет..... тормозит, когда заранее подгружаешь бмпшку (1536*1024) картинку очистил - стало ок |
Сообщ.
#18
,
|
|
|
Цитата Zomb1e @ нет..... тормозит, когда заранее подгружаешь бмпшку (1536*1024) картинку очистил - стало ок Фух, а я уже беспокоится стал. А как устанавливать в хелпе написано. |
Сообщ.
#19
,
|
|
|
А почему только bmp поддерживат?? Jpg в студию (и gif по возможности)
|
Сообщ.
#20
,
|
|
|
Цитата Алексей @ А почему только bmp поддерживат?? Jpg в студию (и gif по возможности) Метод LoadGraphic. А также ImgCtrlUtils.LoadGraphicToBitmap. |
Сообщ.
#21
,
|
|
|
У меня вот какой вопрос: почему бы у компонента ScrollingImageNavigator1 не добавить такое замечательное свойство как StretchMode, ведь он используется для навигации по Bitmap, а сам должен быть маленький, но при таких размерах качество картинки очень снижается. Спасибо.
|
Сообщ.
#22
,
|
|
|
GreySkil, я просто не догадался сам, спасибо за предложение. Хотя с другой стороны есть событие на масштабирование навигатора. Но и это свойство можно добавить.
|
Сообщ.
#23
,
|
|
|
s-mike, если сделаешь это свойство, кинь мне ссылку на новый компонент.
|
Сообщ.
#24
,
|
|
|
Цитата GreySkil @ s-mike, если сделаешь это свойство, кинь мне ссылку на новый компонент. Да я его сюда приаттачу. Я сейчас делаю потоковою загрузку (вроде как в ACDSee), ну заодно и это свойство сделаю. Выложу с этими нововведениями. И я уже думаю над новой версии, в которой я запланировал сделать много интересных новшеств (даже не знаю, получится ли все реализовать ). |
Сообщ.
#25
,
|
|
|
s-mike, как появиться новая версия, сообщи мне на GreySkil@kemtel.ru, с удовльствием попользуюсь, еще и идей тебе мож каких придумаю.
|
Сообщ.
#26
,
|
|
|
s-mike, еще подскажи можно ли скопировать из Scrollingimage изображение которое в нем показывается, а то если
Image1.picture.bitmap:=scrollingimage1.picture; то картинка копируется не та которая показана, а вся. |
Сообщ.
#27
,
|
|
|
Выкладываю апдейт навигатора. Потому что долизывать новые функции пока нет времени. Так что наверно они все появятся уже в следующей версии.
Прикреплённый файлScrollingImageAddons.zip (4.6 Кбайт, скачиваний: 688) |
Сообщ.
#28
,
|
|
|
Цитата GreySkil @ s-mike, еще подскажи можно ли скопировать из Scrollingimage изображение которое в нем показывается, а то если Image1.picture.bitmap:=scrollingimage1.picture; то картинка копируется не та которая показана, а вся. Сорри, только сейчас вопрос заметил. CopyRect'ом естественно. Хотя может есть смысл и метод соответствующий сделать? Буду рассматривать как предложение. |
Сообщ.
#29
,
|
|
|
А планов у меня много, в частности:
1) сделать виртуальный компонент-контейнер, инкапсулирующий все свойства TScrollingImage, но не хранящий никаких данных, вся отрисовка - по событиям; 2) на основе предыдущего компонента сделать классы TVectorImage для отображения и редактирования (если сил и желания хватит) векторных данных, а также компонент для скроллинга, базирующийся на GDI+; 3) ну естественно побольше событий собственной отрисовки, а также компоненты-рисовалки (ну как скины в тулбарах обычно делают). Для этого, кстати, мне потребуются добровольцы, которые будут создавать компоненты-рисовальщики и они будут включены в релиз компонентов. Кто желает? 4) компонент(ы), позволяющие настраивать клавиши перемещения изображения в TScrollingImage, скейлинг... 5) hot spot areas, то есть ссылки внутри компонента, с соответствующими событиями и собственной отрисовкой 6) выделение с собственной отрисовкой 7) загрузка файлов в потоке, что даст возможность показывать прогресс загрузки и прерывать его досрочно 8) анимированный зум/изменение изображения (возможно, в последнюю очередь, потому как сам не люблю особо такие вещи, но дань моде) Запланировал, как видите, немало. Думаю, что работа предстоит серьезная, так что было бы неплохо, если бы нашлись желающие стать бета-тестерами моей библиотеки компонентов. |
Сообщ.
#30
,
|
|
|
Цитата s-mike @ мне потребуются добровольцы, которые будут создавать компоненты-рисовальщики хочу-хочу-хочу!!! Аську мою ты знаешь. Давай обсудим, когда освободишься. |
Сообщ.
#31
,
|
|
|
Цитата Miscђka @ хочу-хочу-хочу!!! Аську мою ты знаешь. Давай обсудим, когда освободишься. Отлично |
Сообщ.
#32
,
|
|
|
Сделай события OnMouseWheelUp и OnMouseWheelDown и цены компоненту не будет!
|
Сообщ.
#33
,
|
|
|
Выдаёт ошибку после компиляции и обращения к функции:
Цитата Project Project.exe raised exception class EInvalidGraphic with message 'Bitmap image is not valid'. Process stopped. Use Step or Run to continue. Указывает сюда: procedure TCustomBitmap.LoadFromFile(const Filename: string); var OldOnChange: TNotifyEvent; begin OldOnChange := OnChange; try OnChange := nil; inherited LoadFromFile(FileName); finally OnChange := OldOnChange; end; NewImage; end; А ниже: Цитата [Hint] Main.pas(49): Private symbol 'OnJpegProgress' declared but never used Мой код. Странно, что при использовании диалога открытия и указания вместо 'C:\спец2.jpg' тот путь, который переходит из диалога открытия, всё работает нормально, иначе ошибка появляется. procedure TTMainForm.FileOpenClick(Sender: TObject); var Picture: TPicture; begin Picture := TPicture.Create; Picture.LoadFromFile('C:\сцеп2.jpg'); SI.LoadGraphic(Picture.Graphic); Picture.Free; SI.Picture.LoadFromFile('C:\сцеп2.jpg'); StatusBar.SimpleText := 'C:\сцеп2.jpg'; end; |
Сообщ.
#34
,
|
|
|
s-mikeПривет, извини что беспокою. Твой компонент очень крутой. Но мне понадобилось на FastScrollingImage1 рисовать линии. Рисую по нажатию мышки, но дело в том что линия сразу не отрисовывается, отрисовывается только после того если проскролить изображение. Как правильно рисовать на даном компоненте?
|