purebasic.info

PureBasic forum
Текущее время: Сб ноя 17, 2018 3:35 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 114 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пт ноя 21, 2008 9:07 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11325
Благодарил (а): 4 раз.
Поблагодарили: 440 раз.
Да там больше API знать нужно, 90% на чистом API написанно.
А вот с API у меня проблемы, поэтому и так долго (2 недели) писал.


Да и рисование происходит по контексту экрана, а не окна.
Я просто ошибся и переменная содержала не хендл окна а ноль, и поэтому функции GetWindowDC и GetWindowRect работали с экраном, а не окном.
Но это в принципе ошибкой назвать нельзя.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 22, 2008 8:46 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11325
Благодарил (а): 4 раз.
Поблагодарили: 440 раз.
Библиотека в архиве
Произошли довольно сощественые изменения во внутреней структуре библиотеки. Это нужно было для добавления новых возможностей.
Появилось пару примочек, запустите пример, сами увидите.
Скрины не выкладываю, кому интересно, можете здесь посмотреть http://www.purebasic.fr/english/viewtopic.php?p=268134#268134 или запустить пример в библиотеке.


Вложения:
XP_Menu_Lib_1.8.rar [149.1 KiB]
Скачиваний: 235

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)
Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 22, 2008 11:47 pm 
Не в сети
GameC@Soft
Аватар пользователя

Зарегистрирован: Сб сен 22, 2007 12:45 pm
Сообщений: 1084
Откуда: Я из лесу вышел, и сразу зашел, в босоножках дырявых и взлядом ночным.
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
Классно! Я скачал. Пока придержу, нет программ, для нее...

_________________
"Самый большой глюк в PureBasic - это твоя голова...." (с) Артем
Мой сайт: http://feelzone.org.ua/


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 23, 2008 12:11 am 
Не в сети
BackupUser
Аватар пользователя

Зарегистрирован: Ср ноя 29, 2006 9:29 pm
Сообщений: 1492
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Артём писал(а):
Классно!

Мне тоже понравилось.
Чётко работает.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 23, 2008 1:34 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб авг 18, 2007 6:26 pm
Сообщений: 605
Откуда: Северодвинск/Питер
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Здорово, Петр!!! Спасибо за компонент! =)

Люди, и не надо спорить о том, хорошо или плохо регистрироваться на оф. форуме и указыавать свою национальность честно. Как правильно было сказано, люди везде одновременно одинаковые и разные, и зачастую принимают в штыки чужих. Но вообще-то, всегда работало правило "относись к другим так, как хочешь, чтобы относились к тебе", это - многовековая и проверенно работающая практика. Открытого и доброжелательного человека примут в любом нормальном месте. (Тем более, на форуме кодеров, всё-таки там нет всяких "гопников") Хотя в настоящее время это немного сложнее, всё-таки после истории с Грузией и информационной войны...

(кстати, один пурик на весь форум это действительно нечестно, тут они правы =) С другой стороны, в основном мы пишем Freeware, а это более-менее справедливо: зачем платить за то, что не приносит прибыли?)

ЗЫ:Жалко, не хватает знания английского, чтобы эту самую доброжелательность проявлять...

_________________
http://www.youtube.com/watch?v=XHosLhPEN3k


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 23, 2008 6:20 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11325
Благодарил (а): 4 раз.
Поблагодарили: 440 раз.
Работа над ощибками.
В самой библиотеке пока ошибок не обнаружено, но есть одна при инициализации стиля "Офис 200".
Если при этом не заблокировано изменение стиля заголовка меню, то внизу заголовка остаётся синяя полоса при выборе пунктов.
Лечится это просто, достаточно добавить после строки
Код:
1
XP_SetMenuStyle(#XP_StyleNormal) ; Стиль "Офис 200"

такой код
Код:
1
2
3
4
StyleMenu.xp_menudata ; Объявляем структуру
XP_GetMenuStructure(StyleMenu) ; Читаем данные из библиотеки
StyleMenu\TitleFrameState=0    ; Стандартное обрамление заголовка главного меню
XP_SetMenuStructure(StyleMenu) ; Возвращаем данные в библиотеку



В следующей версии библиотеки это исправлю.


PS.
Я вот одного понять не могу. Почему в большенстве офисных надстроек над меню есть утечка ресурсов (короче памяти).
"Страдает", этим, скажем, знакомая нам прога ApiViewer2004, PB библиотека ProGUI (за которую буржуй 40$ просит :shock: ), код, который Fdisk выложил в теме про офисное меню.

Чтобы понаблюдать такую утечку запустите диспетчер задач и начните открывать и закрывать меню у тестируемой проги одновременно наблюдая за количеством требуемой памяти для приложения. Так вот, размер памяти будет постоянно расти...

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 23, 2008 9:29 pm 
Не в сети
профессор

Зарегистрирован: Чт фев 07, 2008 4:35 pm
Сообщений: 238
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Может это из-за инициализации памяти внутри процедур?
Что происходит, когда делается AllocateMemory в процедуре и память при выходе из процедуры не освобождается FreeMemory...
Возможно инициализированная память остаётся, а указатель при выходе из процедуры теряется. при повторной инициализации - новый участок памяти, и предыдущий тоже занят. Так по кругу - может причина в этом?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 23, 2008 9:40 pm 
Не в сети
профессор

Зарегистрирован: Чт фев 07, 2008 4:35 pm
Сообщений: 238
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Создал EXE-шник вот к этому коду:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Procedure.l Any(MemRazmer)
*TempMem=AllocateMemory(MemRazmer)
Rez.l=*TempMem
ProcedureReturn Rez.l
EndProcedure
 
For k=0 To 100000
Rez=Any(1000)
Debug Str(Rez)
Delay(100)
Next k
 



Посмотрел в диспетчере задач - эффект похожий.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 23, 2008 11:09 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11325
Благодарил (а): 4 раз.
Поблагодарили: 440 раз.
Да это понятно, вопрос в том, почему они память не освобождают, ведь ApiViewer2004 писали не дилетанты!
Кстати, там скорее всего не освобождаются контексты, созданные с помощью API функций GetDC, CreateCompatibleDC или других аналогичных.
Кисти и перья созданные с помощью CreateSolidBrush, CreatePen тоже освобождать нужно, а иначе нименуемо будет утечка памяти.
Если хоть один объект не закрыть, то будет полная Изображение
Могут возникнуть глюки из-за исчерпания лимита объектов для данного приложения. Видел уже такое, что происходило из-за этой надстойки меню http://www.purebasic.fr/english/viewtopic.php?t=27233&highlight=office+menu
Всё окно чернело и пропадали гаджеты! :shock: :shock:

Поэтому я уделил особое внимание этому вопросу в своей библиотеке, т. е. надёжность прежде всего. :)


Вот скрин проги до глюка.
Изображение


Вот после глюка. Тут ещё открыто окно "О программе".
Изображение


А вот как заглючил OpenFileRequester :shock:
Изображение



Саму прогу можете здесь http://www.ikarab.narod.ru/KS0108.html качнуть (торопитесь, скоро её заменю, нужно этот глюк "прибить").

Для возникновения подобного глюка просто открывайте и закрывайте меню и водите мышкой по открытому меню. В общем делайте так, чтобы работал код, модифицирующий меню.
Через пару минут глюк появися. :?

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 29, 2008 1:26 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11325
Благодарил (а): 4 раз.
Поблагодарили: 440 раз.
Fdisk писал(а):
Для них неважно, как именно, но, русского уколоть им надо, просто будут молчанием обходить, как будто тебя нет

Задал им вопрос http://www.purebasic.fr/english/viewtopic.php?t=35347, а они молчат - партизаны.
Хотя может вопрос не простой.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 29, 2008 1:39 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн окт 13, 2008 4:43 pm
Сообщений: 342
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Петр, твой английский оставляет желать лучшего...:) Я сам не понял, что ты хотел спросить, а они уж и подавно... И кликуху свою лучше переделай не User_Russian а Crazy_Russian - они так тебя быстрее поймут...:) А что ты вообще хотел спросить у них?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 29, 2008 1:41 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн окт 13, 2008 4:43 pm
Сообщений: 342
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
е-мое, я уже профессор!!!!!!!!!!!!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 29, 2008 2:01 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11325
Благодарил (а): 4 раз.
Поблагодарили: 440 раз.
Morganolla писал(а):
А что ты вообще хотел спросить у них?
Как скопировать текст в формате RTF из редактора Scintilla.dll

Morganolla писал(а):
Петр, твой английский оставляет желать лучшего
Да я его вообще не знаю, перевожу "Сократом".

Morganolla писал(а):
Crazy_Russian

:D :D Сам ходи под таким ником :D :D

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 29, 2008 2:20 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн окт 13, 2008 4:43 pm
Сообщений: 342
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
А Scintilla.dll поддерживает RTF??? И куда ты его хочешь скопировать? И как т.е., типа программно??? Твой вопрос выглядит абстрактно и совершенно неопределенно :shock:
Твой вопрос должен звучать примерно так: How can I copy RTF text from Scintilla...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 29, 2008 2:41 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11325
Благодарил (а): 4 раз.
Поблагодарили: 440 раз.
Morganolla писал(а):
А Scintilla.dll поддерживает RTF
Официально у неё нет такой функции (по крайней мере я не нашёл в описании), но в одной проге я такое видел

Morganolla писал(а):
Твой вопрос должен звучать примерно так

Спасибо, сейчас отредактирую пост.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 114 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB