Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Практически переписан заново старый плагин по созданию круговых диаграмм. В архиве плагин, файл локализации строк( если кому надо) и небольшой демопроект.
Практически переписан заново старый плагин по созданию круговых диаграмм.
Переписан это дело хорошее. Заново, а ошибки остались:
Такая неприятность возникает при попытке отобразить уже созданный объект во внешнем растягиваемом окне (CustomWindow) при растягивании этого окна. Причем, ошибка одна и та же, но проявляться может по-разному (как правило одно окошко с сообщением об ошибке, но может быть и целая серия, типа как на скрине).. После этого, программу можно только закрыть, порой только через диспетчер задач (убив процесс).. Судя по тексту ошибки тут дело несколько серьезнее, чем я думал вначале, и на мой(!) взгляд решать ее надо, поскольку любой пользователь может проделать то же, что и я, и не ради эксперимента, а по "задумке". Да и неизвестно где еще эта "неприятность" может вылезти Дальше пока сильно не ковырял, но дэмка работает исправно, по крайней мере, в том виде, в каком она существует, но как только я попробовал "шаг в сторону", получилось то, что описано чуть выше.
AS3856, ты не думай, что я придираюсь, но ошибки есть, и смею уверить найти их можно будет немало (это лишь вопрос времени), а указанная мной - только одна из замеченных.. Я "прицепился" к ошибкам лишь из желания видеть действительно хорошие плагины, а не то, чего и так полно (по качеству, а не по назначению). А у тебя дело, вообще, идет "по восходящей", вот только "тарапица" не надо!
Я вчерась решил сделать ревизию своему плагину (готовился к выпуску), мне казалось, что все вылизано до идеала, и осталось только "причесать". Ага! Как же... За голову схватился, когда увидел этот "идеал".! Столько недоделок нашел, что можно сказать надо не причесывать, а чуть ли не переписывать.
Хотя я думаю, что никто бы ничего не заметил, но я-то знаю. Впрочем, не заметить могли бы и просто по причине ненадобности (что скорее всего).
И еще... Больно большой размер у твоего плагина получается (для такого функционала). Над RunTime версией не задумывался? Мне кажется стОит подумать....
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Peter, это не придирки - и я понимаю. Шаг в сторону от дёмки мной не предусмотрен. Понимаю что надо переписать процедуру procedure nbMessage - но незнаю как. ( ошибка тянется давно - пытался её решить - но... Это конечно всё из- за особенностей - прикрепление объекта к прямоугольнику)
ЦитатаPeter ()
И еще... Больно большой размер у твоего плагина получается (для такого функционала). Над RunTime версией не задумывался?
Сам не понимаю почему такое произошло. Уж и модули подключаемые все проверял чтобы лишних не было. Окон пришлось немного больше написать.. Хотя возможно из-за картинки., с левой стороны- в каждом окне - картинка - плюс bmp - видимо и набегает... (Сам компонент-родной семёрочный Chart)
Добавлено (03 Октября 2018, 11:53) --------------------------------------------- Пётр- не мог бы мне скинуть проект с твоими действиями там где вылезает это окно....(понятно что и самому можно это сделать -............)
А у меня противоположная фишка - думаю в первую очередь о "шагах в сторону", вот крышняк и съехал на отладке, похоже...
Все переделываю... переделываю... Потому и "придираюсь", и в плагинах, в первую очередь, ищу ошибки.
ЦитатаAS3856 ()
Понимаю что надо переписать процедуру procedure nbMessage
Это верно, но указанная ошибка не исчезнет, точнее ошибка просто перестанет (возможно) проявляться, но, сама по себе останется, и фиг его знает когда и где она вылезет. Тут многое зависит от тог, как именно ты "конструируешь" визуальные объекты для прикрепления к необушным прямоугольникам, и, думаю, рыть надо в этом направлении.
ЦитатаAS3856 ()
Хотя возможно из-за картинки., с левой стороны- в каждом окне - картинка - плюс bmp - видимо и набегает..
Вполне возможно, особенно, если в каждом окне своя картинка. Сделай проще - запихай картинку в ресурсы, и подгружай ее при создании формы. Будет одна картинка "на всех". Хотя, если честно, то я абсолютно не понимаю что она (картинка) там вообще делает? Балласт...
Ладно, когда картинку запихивают в окно "О программе..." (для красоты)... Впрочем, тебе виднее...
ЦитатаAS3856 ()
Пётр- не мог бы мне скинуть проект с твоими действиями там где вылезает это окно....(
В данный момент не могу, но там все просто - добавь на страничку кнопку, а в ней пропиши команду CustomWindow для прямоугольника, к которому прикреплен объект. Причем окно должно быть растягиваемым. Запусти дэмку, создай объект, а потом нажми на эту "новую" кнопку, и попробуй растянуть мышкой появившееся окно. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Peter, у меня получается что родную процедуру WMNotifyPlugIn( VAR Msg : TMessage ); надо немного переписать - а вот как мыслей нет (вообще) Я ещё не проверял пример из SDK (SpinEdit Example)как он реагирует на такие фокусы с изменением окна....
ЦитатаAS3856 ()
Пётр- не мог бы мне скинуть проект с твоими действиями там где вылезает это окно....(понятно что и самому можно это сделать -............)
у меня такого окна не получается - получается - но немного по другому...
Добавлено (03 Октября 2018, 21:00) --------------------------------------------- Поправил плагин - окна больше не вылезает - но это немного неправильное решение т.к. растяжения тоже нет.. ( и к сожалению решения тоже нет ( вернее его незнаю)
Добавлено (04 Октября 2018, 08:17) ---------------------------------------------
ЦитатаPeter ()
Тут многое зависит от тог, как именно ты "конструируешь" визуальные объекты для прикрепления к необушным прямоугольникам, и, думаю, рыть надо в этом направлении.
-Мне тоже кажется надо рыть туда - но как бы не создавал - делфи гибкий инструмент - должен быть другой путь для процедуры WMNotifyPlugIn( VAR Msg : TMessage ); По SDK визуальные объекты вообще не готовятся заранее а создаются - я применял такой метод в некоторых плагинах - но проще когда он создан и его можно обрабатывать. Не вижу ничего ужасного и в таком методе - видимо надо что то пересмотреть при создании - а сам принцип оставить ( с ним же проще) - и вот тут засада - следуя SDK получается ошибка..
Код
function CreatePieChart( RectangleName, Data1, Data2, Data3, Data4, Data5, Data6, Data7, Data8: STRING): BOOLEAN; VAR Cal : TNeoChart; DSRT : PCHAR; ObjHandle : HWND; R : TRect; Found : INTEGER; List: TStringList; ListStroki : TStringList; ListColor : TStringList; Colorize : TColor; l: Integer;
IF NOT Assigned( ObjList) THEN ObjList := TObjectList.Create; ObjList.Add( Cal ); end;
Основная часть создания и прикрепления к прямоугольнику - ниже идёт другое ( создание в окне демонстрации) хотя конечно тут сложно что либо понять по кусочку- надо весь проект...
Добавлено (04 Октября 2018, 12:02) --------------------------------------------- Нашёл решение. За полтора часа раздумий. Так как создаю объекты сначала на форме - а потом их уже отражаю - написал процедуру " FormResize " и записал как процедуру класса. В ней расписал что должна делать форма при изменении размера -ловить изменение размера прямоугольника и соответственно изменяться с этими размерами. Переписал по новому процедуру " WMNotifyPlugIn " (т.е. вернеее исправил , написал чтоб выполнялась процедура " FormResize " и собственно всё заработало. НО - всё это новое можно удалить - и просто процедуру " WMNotifyPlugIn " переписать чуть по другому. Всё оказалось проще... Немного ещё "потанцую над ней с бубном" проверю, "причешу" и выложу плагин исправленный. Надеюсь " пазлы" все сошлись...
Сообщение отредактировано AS3856 - Чт, 04 Октября 2018, 08:18
По SDK визуальные объекты вообще не готовятся заранее а создаются
Разумеется объекты должны создаваться "по мере необходимости", как и в любой другой программе.
ЦитатаAS3856 ()
но проще когда он создан и его можно обрабатывать. Не вижу ничего ужасного и в таком методе - видимо надо что то пересмотреть при создании - а сам принцип оставить
ЦитатаAS3856 ()
Переписал по новому процедуру " WMNotifyPlugIn " (т.е. вернеее исправил , написал чтоб выполнялась процедура " FormResize " и собственно всё заработало. НО - всё это новое можно удалить - и просто процедуру " WMNotifyPlugIn " переписать чуть по другому. Всё оказалось проще... Немного ещё "потанцую над ней с бубном" проверю, "причешу" и выложу плагин исправленный. Надеюсь " пазлы" все сошлись...
Честно говоря, я с трудом представляю что ты там делаешь... какая-то FormResise.... и вообще - почему формы...
Ладно, подождем конечный результат....
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Ну, коли так, то можно сказать "наконец-то!" Так а решение-то (результат) хде?
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Добавлено (04 Октября 2018, 15:27) --------------------------------------------- Сейчас другой "эффект" появился; после того как запустили проект. затем во внешнем окне отразили его - допустим увеличили (растянули) - затем удаляем его - а диаграмма как была увеличена - так и осталась т.е увеличенная часть показана на прямоугольнике..(естественно обрезана по краям прямоугольникка - но всё работает - вращение, повороты и прочее - опять надо что то думать как вертать взад.... чтобы размер оставался в пределах прямоугольника
Добавлено (04 Октября 2018, 15:29) --------------------------------------------- В сторону уменьшения (сжали окно) - то же самое - только таким же сжатым и осталось .... ( непорядок...)
Добавлено (04 Октября 2018, 15:33) --------------------------------------------- Вообще странно как то - почему в обратную сторону так работает ...
Сообщение отредактировано AS3856 - Чт, 04 Октября 2018, 15:27
Вся конструкция И процедура WMNotifyPlugIn работают если изменять размер прямоугольника. При закрытии подвижного окна созданного в NB - изменение размера прямоугольника таковым НЕ СЧИТАЕТСЯ. Соответственно и разммер не изменяется. Долго разбирался. результатов мало.. "Host rectangle object was resized, so adjust control to match..." - это из SDK - и прямо говориться - если был изменён.. Пока вариантов выхода из положения 2 1) оставить как есть убрав окно которое выскакивает (сейчас так и сделано в выложенном плагине) 2) переписать так чтобы размер можно было изменять - но в этом случае при закрытии окна размер невозвращается в первоначальное состояние ( но и ошибок нет) вот что получается.. в архиве плагин
Добавлено (04 Октября 2018, 16:33) --------------------------------------------- Есть ещё третий вариант - переписать полностью и сделать создание объекта в RunTime.
Есть ещё третий вариант - переписать полностью и сделать создание объекта в RunTime.
А сейчас он (объект), у тебя в DesignTime создается?
Или опять:
ЦитатаAS3856 ()
Да обозвать то можно по - любому - суть не в этом.
Суть именно в этом, т.к. чтобы получать правильные ответы надо правильно задавать вопросы. И я, например, никак не могу понять чего ты там такое "химичишь". Впрочем, у тебя сейчас все работает в точности, как у эсперальты (в подобных случаях), а он утверждает, что у него:
Цитата
best and larger collection of VisualNeo's plugins in the entire world!
Самое главное - best! И не просто "best", а и еще и "in the entire world"
Так-что, получается, можно особо не париться.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
P.S. Я давно заметил, что полезную информацию из тебя мне приходится чуть-ли не "вырывать клещами", а вместо нее идут лишь общие, причем, путанные рассуждения. А в программировании, не видя кода, и не понимая что и как конкретно делается (ведь недаром всегда говорят "ПОКАЖИ КОД"), помочь, как правило, просто невозможно. Одно, в данной конкретной ситуации, обнадеживает - как показывает практика, рано или поздно, ты находишь какое-то (неизвестно правильно или неправильно, но...) работающее решение. А мои подсказки, как тоже показывает практика, все-равно, в большинстве своем, игнорируются.
Уверен, что и в этот раз, благодаря своим пытливости и усердию, ты найдешь правильное (или рабочее) решение. Удачи! - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Вся конструкция И процедура WMNotifyPlugIn работают если изменять размер прямоугольника. При закрытии подвижного окна созданного в NB - изменение размера прямоугольника таковым НЕ СЧИТАЕТСЯ. Соответственно и разммер не изменяется.
Решения не будет. (всмысле решение тут одно - создавать сам объект в размерах прямоугольника. по другому не получится) PS. Я же создаю "заготовку" - форму - на ней размещаю Chart. Эта практика даже не помню откуда у меня пошла - что то делал а что - уж и не помню...)