Forum Replies Created
-
AuthorPosts
-
FeLDMaRShaLParticipant
Как убрать эту рамку у отдельно взятого контрола – это понятно. Например, Ваш пример, или если для баттона нужно убрать то можно в событии онМаусДаун прописать сет фокус на какуюнибуть панель. Но впрограмме довольно много форм, и соответственно компонентов на них и интересует вопрос как это можно сделать централизованно. Т.е. В одном месте прописать, и это применилось во всем проекте и для ВСЕХ контролов. (Именно поэтому я предлагал это свойство запилить на сСкинМанагер… т.к. он в проекте один).
п.с. еще раз посмотьрел на Ваш способ под другим углом, и придумал как его можно применить в моем проекте…
Code:sSkinManager1.ButtonsOptions.ShowFocusRect := bRes;Это мы весим на событие активации скинманагера
А цикл фор для чекбокса и радио баттона весим на создании форму-родителя…. у меня все фыормы проекта наследуются от моей униформы… такчто Ваш способ полностью подходит для моег ослучая… ОГРОМНОЕ спасибо 🙂
FeLDMaRShaLParticipantПовторно выкладываю тотже самый пример, за одним исключением, теперь в нем у скинменеджера отключено свойство “рисованные границы”, ошибки летят как по 1 кнопке, так и повторой. Для наблюдения ошибки нужно нажать на 1(2) кнопку, после чего развернуть появившуюся форму (если на 1 нажали), и поднести мышку к заголовку форму (ну поводить туда-сюда 🙂 ).
Code:Call Stack Information:
———————————————————————————————————–
|Address |Module |Unit |Class |Procedure/Method |Line |
———————————————————————————————————–
|*Exception Thread: ID=3512; Priority=0; Class=; [Main] |
|———————————————————————————————————|
|004F34E7|Project2.exe| | | | |
|0060965E|Project2.exe|acTitleBar.pas | |StartItemAnimation |385[5] |
|006095FC|Project2.exe|acTitleBar.pas | |StartItemAnimation |380[0] |
|00616C17|Project2.exe|sSkinProvider.pas|TsSkinProvider|RepaintButton |2390[201]|
|00615BF0|Project2.exe|sSkinProvider.pas|TsSkinProvider|RepaintButton |2189[0] |
|006222E6|Project2.exe|sSkinProvider.pas|TsSkinProvider|SetHotHT |5178[72] |
|00621E24|Project2.exe|sSkinProvider.pas|TsSkinProvider|SetHotHT |5106[0] |
|0062AA15|Project2.exe|sSkinProvider.pas|TsSkinProvider|AC_NCMouseMove |7113[9] |
|0062A98C|Project2.exe|sSkinProvider.pas|TsSkinProvider|AC_NCMouseMove |7104[0] |
|00619300|Project2.exe|sSkinProvider.pas|TsSkinProvider|NewWndProc |3034[321]|
|7722F810|ntdll.dll | | |ZwWow64CsrCaptureMessageBuffer | |
|77243743|ntdll.dll | | |RtlAllocateHeap | |
|7636AAA1|user32.dll | | |SendMessageW | |
|7636AA54|user32.dll | | |SendMessageW | |
|005D513E|Project2.exe|sVclUtils.pas | |SendAMessage |1378[1] |
|772435B0|ntdll.dll | | |RtlLeaveCriticalSection | |
|74B085B5|KERNEL32.DLL| | |GetCurrentThreadId | |
|7722F810|ntdll.dll | | |ZwWow64CsrCaptureMessageBuffer | |
|7725243D|ntdll.dll | | |RtlDeactivateActivationContextUnsafeFast| |
|7636A206|user32.dll | | |GetPropW | |
|7636A1D7|user32.dll | | |GetPropW | |
|76368A61|user32.dll | | |DispatchMessageW | |
|76368A56|user32.dll | | |DispatchMessageW | |
|00640215|Project2.exe|Project2.dpr | | |16[5] |
|74B0850B|KERNEL32.DLL| | |BaseThreadInitThunk | |
———————————————————————————————————–FeLDMaRShaLParticipantВырвал из свого проекта 2 модуля, из них создал тестовый пример (не судите строго за оформление, торопился, самое главное что баг повторился). Скомпилировал ехе. Для наблюдения бага необходимо:
1) Запускаем проект
2) Максимизируем форму (путем двойного клика по той области за которую мы “тащим” окно по рабочему столу.
3) Наблюдаем что после максимизации верхние кнопки находятся на белом фоне.
Про систему: Windows8, скины 8.18
P.S. на форуме переодически отписываюсь про баги компонентов, как правило с тестовыми примерами, и чтобы точно наблюдались баги, вкладывваю в примеры тяжелые скомпилированные ехе файлы, сейчас вот заметил что: “Used 32.29MB of your 48.83MB global upload quota (Max. single file size: 10M:cool:” скоро у меня уже не будет такой возможности, или тут надо както по особому файлы прикреплять (на пример на какихто сторонних серверах, а тут ссылку только выкладывать), ткните меня носом в то место где про это рассказывается пожалуйста.
FeLDMaRShaLParticipantДА проблема в том что при максимизации приложения, какимто странным образов одна из панелек не отрисовывается, тупо белый квадрат… проверил, и даже репеинтформс не помогает ((( воспроизвести не получается, поэтому и спросил, думал поможет, а оказывается даже репеинт формс не помогло.
FeLDMaRShaLParticipantВопрос немного не по теме, но чтобы не содавать новую ветку задам его тут: как мне перерисовать полностью форму… аналог skinManager.repaintforms(true), только не все а именно одну форму.
FeLDMaRShaLParticipantОтлично, будем ждать.
FeLDMaRShaLParticipantОн нужен, без него ни как не получается реализовать. В программе много окон, со сложными дочерними отношениями в них. В частности как вариант, чтобы в случае появления хинта другая форма, не вылезала на передний план. Убрать это свойство не получится. Т.е. Это из-за него, и ни чего нельзя сделать… или всетаки стоит ожидать улучшения в этом плане?
FeLDMaRShaLParticipant'Support' wrote:Есть вопрос – из-за чего происходит мигание окна? С нею что-то происходит в это время? Многопоточность используется?
Может быть не так выразился. Происходит мигания заголовка окна (flashwindow)
Мигание окна как и смена картинки в происходит в отдельном потоке (JvThreadTimer).
Есть вероятность что в момента смены картинки происходил процесс закрытие вкладки посредством нажатия на крестик у самой вкладки, ну или если не закрытие то по крайней мере вкладка попала под фокус мышки (мы могли щелкнуть как на саму вкалдку так и на садержимое в ней).
К сожелению более точно сказать ни чего не могу.
FeLDMaRShaLParticipantВ версии 8.10 данный баг не исправлен. 🙄
FeLDMaRShaLParticipantНебольшая задержка была в получении компонентов. Только сегодня их получил.
8.04 версия ведет себя хорошо 🙂
п.с. если не сильно сложно, то объясните пожалуйста что Вы в компонентах исправили чтобы ситуация улучшилась, а то меня все таки пугает мысль что у меня в тестовом примере не получилось воспроизвести баг => в своем коде я что-то несознательно сделал чтобы привести к такому багу… хотелось бы исправить этот момент 🙂
FeLDMaRShaLParticipantЗапускаете ехе (скин включен), далее жмакайте по кнопке – ни чего происходить не будет, далее снимаете галочку, скин отключается, жмакайте по кнопочке и кнопка закрыть то появится то исчезнит, как и должно быть.
FeLDMaRShaLParticipant'Support' wrote:В версии 8.02 такого не наблюдалось?
Точно не наблюдалось. Будем ждать с нетерпением новой версии. А то пришлось откатить версию компонентов.
FeLDMaRShaLParticipantПрисоединяюсь к такой проблеме. Иногда такое поведения наблюдается еще и при обычной минимизации, а также если воспользоваться функцией свернуть все окна.
FeLDMaRShaLParticipantСпасибо, будем ждать обновления, после обновления я отпишусь, устранена или нет проблема.
FeLDMaRShaLParticipant'Support' wrote:Если для формы выполняется ShowWindow(Handle, SW_SHOWNORMAL), то свойство Visible остается False и для остального приложения она типа not Visible. Borland специально создала процедуры типа Form.Show, лучше ими пользоваться.
Есть проблема минимизации окна, у которого WndParent = HWND_DESKTOP, но я пока не знаю, что с этим сделать.
На счет Visible я в курсе, я специально сделал так. В программе периодически происходит создание новых компонентов на форме в тот момент когда форма не видна для пользователя (например, создание вкладки у sPageControl), и если visible=false, то там куча проблем с последующим отображением, поэтому я ушел от vcl и сначала вызываю ShowWindow(Handle, SW_HIDE) – в этом случае visible также остается trye, а потом ShowWindow(Handle, SW_SHOWNORMAL) – т.е. visible таже равен true. В этом проблем нету, у меня всегда форма имеет свойство visible=true. С этим по идеи все нормально, но на самом деле у меня проблема в другом а именно, мне нужно в идеале получить красивую рисованную минимизацию без каких либо багов но:
1) Если отвключу рисованную минимизацию, то в этом случае форма сама минимизируется но (очень редко, новсетаки присутсвует баг в программе) на рабочем столе оставляет рамку от формы на которой находятся кнопки (свернуть, развернуть, закрыть) в которой пустота.
2) Если включу рисованную минимизацию, то после того как окно разворачивается оно поверх всех окон.
3) Если отключу рисованные границы и включу рисованную минимизацию то, проблемы как в 1 пункте нету.
Все сложности из-за того что воспроизветси 1 ситуацию на простом примере у меня не получается… а то что воспроизводится (2 пример) – это полумера, но если бы Вы смогли бы это исправить, то было бы просто шикарно.
Надеюсь что Вам всетаки удастся исправить проблему с окном, у которого WndParent = HWND_DESKTOP…
FeLDMaRShaLParticipantWindows7, Aero включена.
FeLDMaRShaLParticipantАксесс виолейшн по адресу 0000000… а после этого запускается форма, но без скинов. Если не изменяет память то там какие то не те параметры в процеду движения мышки по кнопке(или в процедуру маусентер уже не помню точно) входили, изменил их и у меня стало все нормально. По образу и подобию сделал у себя в проекте также. Все работает на ура!.
FeLDMaRShaLParticipantСтолкнулся с крайне неприятным багом. Если включить рисованные границы у скинменеджера, то при восстановлении окна из минимизированного состоянию это окно становится поверх всех остальных окон, даже когда не активное, как будто у формы выставился FormStyle=fsStayOnTop. Демку с скомпилированным ехе прилагаю. На примере необходимо нажать кнопку, в результате чего создастся форма, если ее свернуть а потом развернуть из трея то оно становится поверх всех остальных форм.
Есть ли способ избавиться от этого бага до нового билда компонентов (не меняя свойство у формы FormStyle)
FeLDMaRShaLParticipantШикарно. Большего и желать нельзя. Огромное спасибо.
P.S. пример который Вы мне дали, если его будете выкладывать во все примеры, то перекомпилируйте его, а то ехе с ошибкой запускается.
FeLDMaRShaLParticipantПроверил, минимизация окна появилась. Только не всегда срабатывает рисованная минимизация. Иногда минимизация происходит мгновенно, при чем как сворачивается так и разворачивается просто появлением (ну и иногда это сопровождается морганием. Но все равно это лучше чем ни чего :a3:
-
AuthorPosts