Forum Replies Created
-
AuthorPosts
-
TCountParticipant'Support' wrote:
Как это сделать? Если есть идеи, буду за них благодарен.
Конечно, код я не могу написать, так как не в курсе, как организована работа BlendOnMoving.
Как я понимаю, BlendOnMoving активируется при событии WM_ncHitTest.
В таком случае можно было бы расширить реакцию и на событие WM_MOVING в определенных условиях.
Хотя я понимаю, что нужна “точка отправления”, когда нужно активировать начало операции BlendOnMoving.
Но в таком случае можно предоставить пользователю просто двумя процедурами (например, StartMoving и EndMoving) включать и отключать эту функцию, а BlendOnMoving отключать.
Или это невозможно?
Кстати, в BlendOnMoving непонятно работает свойство BlendValue – если установить его в 254, то окно все равно полупрозрачное, а по идее оно должно быть практически непрозрачным.
TCountParticipant'Support' wrote:TCount, сожалею, просто нехватка времени из-за всей этой активности Кремля, но здесь не будем о политике..
Я понимаю Вас как никто, таже самая ситуация…
TCountParticipant'Stertor' wrote:Отлично, вы продублировали мой пост
Досадная ошибка в диалоге выбора изображений
Тем лучше, может, хоть сейчас на это обратят внимание.
Все равно поддержка как будто заморозилась. Это печально.
У многих проекты уже написаны под AC и никаких продвижений)
TCountParticipant'Support' wrote:Я скачал и проверил редактор, ошибки не получается.
Возможно какой-то старый испорченный скин попался?
Сейчас все нормально.
TCountParticipant'kotyara' wrote:Хотел скачать версию 9,0 Delphi XE5, но везде триал. Где искать?
Триал? 😕
TCountParticipant'Albert' wrote:При переходе на версию 9 на всех кнопках проекта (TsSpeedButton…) в ДИЗАЙНЕРЕ исчезли (т.е., они не видны в дизайнере) иконки, указанные в свойствах кнопки Images и ImageIndex, причем при компиляции и запуске проекта кнопки снова с иконками. Другие кнопки (TRzToolButton и др.) ведут себя нормально. Пришлось вернуться к предыдущей версии.
Даже не знаю, что и сказать. Псть лучше скрин скажет (Delphi XE).
TCountParticipant'DetSimen' wrote:Ну а у меня вот так:
Вот мой вариант (EXE)
TCountParticipant'DetSimen' wrote:А скины включены были?
Да, конечно.
TCountParticipant'DetSimen' wrote:Понадобилось мне как-то вручную создать вкладки в TsPageControl. Хых. Результат, вместе с исходниками – во вложении.
Ведет себя так в 8.53 и 9.0.
Можно сразу запустить приложенный ехе и паматреть, а можно перекомпилить сначала.
Забыл написать, запускалось на Delphi XE5 + Windows 7 x32
Ваш проект я так и не смог открыть в Delphi XE, с которым я работаю, но я в точности воссоздал все, что у Вас было (фактически, заменил просто юнит).
Но у меня все работает.
TCountParticipantВобщем, накидал пример. Там многое можно убрать, многое оптимизировать. Просто для понятия смысла, что я хотел показать.
TCountParticipant'SatDaNTe' wrote:и размере PaintBox 300×300 все летает))
А если текста больше чем 300 по верт.? Я имею ввиду что сколько текста неизвестно, а высоту PaintBox соответственно нужно увеличивать до размера текста,я делал так:
Code:procedure TForm3.PaintBox1Paint(Sender: TObject);
var
r:TRect;
vFormat : TTextFormat;
vStr : string;
m:TStringList;
begin
m:=TStringList.Create;
m.LoadFromFile('C:UsersВладимирDesktop1.txt');
vStr:=m.Text;
r:=Rect(0,0,sScrollBox1.Width,3000);
vFormat := [tfEditControl];
PaintBox1.Canvas.Brush.Style := bsClear;
PaintBox1.Canvas.TextRect(r,vStr,vFormat);
PaintBox1.Height:=PaintBox1.Canvas.TextHeight(vStr)*m.Count;
end;но так текст не переносится,а если делать с переносом (vFormat := [tfEditControl,tfWordBreak]) то кол-во строк неизвестно! Может ты мне скинешь пример твоей реализации буду очень признателен!
Выводить текст нужно с помощью функции WinAPI DrawText с флагом переноса слов, с помощью нее же можно предварительно расчитать высоту всех строк, которые будут в дальнейшем выведены:
SetRect(Rect,0,0,PBox.width, PBox.Height);
htxt:=DrawText(canvas.Handle,m.Text,length(m.Text),Rect,DT_CALCRECT or DT_WORDBREAK);
Есть некоторые сложности при выводе всего. Вобщем, сейчас накидаю небольшой пример и в личку скину.
TCountParticipant'SatDaNTe' wrote:Если не секрет то как ты подсчитываешь количество строк в PainBoxe, при tfWordBreak?
Я так понимаю, тебе нужно просто выводить инфу, поэтому подсчитывать количество строк и не нужно, только нужно знать общую высоту контента в пикселях, чтобы определиться с ScrollBar'ом.
А потом уже, зная высоту контента, настраиваем Scroll:
SBar.Max:=Content.Height;
SBar.PageSize:=PBox.Height;
Здесь:
Content – это картинка, на которой все прорисовано. Можно прорисовывать и постепенно, но в таком случае нужно все равно знать максимальную высоту всего прокручиваемого.
Sbar – ScrollBar
PBox – PaintBox, в котором выводится контент
Конечно же, чтобы не мигало, нужно при создании формы указать Doublebuffered:=true. Остальные процедуры, думаю, ты без труда напишешь.
При моей видюхе 128 Mb, проце 1,9 Ггц и размере PaintBox 300×300 все летает))
P.S. Выводить все добро, конечно же, с помощью WinAPI:
BitBlt(PBox.Canvas.handle,0,0,PBox.Width,PBox.Height,Content.Canvas.Handle,0,SBar.Position,srccopy);
TCountParticipant'SatDaNTe' wrote:Спасибо, делаю для себя, смотрится менее читаемо и вообще плохо, потому что я специально выбрал скин чтобы было более наглядно то чего я хочу добиться. Просто в некоторых местах это выглядело бы красивее! И очень бы пригодилось в других случаях, может гуру включит поддержку в 9 версии? Ведь дело не в конкретном случае, а в том что в некоторых случаях это будет очень полезно и современно! Тоже касается и ListView, если это сделать будет просто лучший пакет компонентов(хотя он и сейчас такой))))!
Теперь понятно, что имелось ввиду. Я для своего проекта немного уделил временени и слепил свой компонент на основе TsScrollBar+PaintBox. В PaintBox выводится все, что захочу и все это прокручивается. Работает быстрее ListView+фон)
TCountParticipant'SatDaNTe' wrote:Допустим у скина фон формы картинка, то есть варианты с ParentColor, убрать края (свойство BorderStyle установить в BSnone) не работают, я беру ScrollBox и ложу в него Label(Align=Top, AutoSize=true), всё хорошо только при ресайзе и добавлении текста в реал тайме появляются глюки и долго не прорисовывается текст!
С трудом понимаю Вашу технику создания приложений)
TCountParticipant'Support' wrote:BordersMode нужно в редакторе выставить в “Replace existing borders”
Но все равно придется в программе активировать ExtendedBorders, иначе тень не появится.
TCountParticipant'SatDaNTe' wrote:На счёт ExtendedBorders у меня с ними наоборот все стабильнее и быстрее!
У ExtendedBorders есть один неприятный момент – им нужно отрисовываться.
Причем сначала отрисовывается форма, а потом уже бордюры. Хотелось бы, конечно, чтобы это происходило в какому-нибудь буфере сразу, а потом уже выводилось)
TCountParticipant'kloppik' wrote:Долгая отрисовка формы при ресайзе, чем больше панелек создать в скроллбоксе тем дольше идит отрисовка, вероятно можно как то ускорить, проект в аттаче.(delphi xe3, skin ver. 8.52)
А что значит для Вас “долгая прорисовка”?
Кстати, посмотрел Ваш проект – не установлен DoubleBuffered в True. Видел, что в свойствах формы он установлен в True, но дело в том, что
по каким-то причинам AC отключает его при старте программы. То есть, нужно ручками прописывать, например, в OnCreate.
И еще…На самом деле я не стал бы так организовывать интерфейс программы. Куча компонентов.
На Вашем месте я сделал бы виртуальный ListView и все рисовал бы в нем. Было бы все прерасно в таком варианте)
TCountParticipantНеужели никто не сталкивался с таким? Может кто-то знает, как можно сделать тень (glow) вокруг формы БЕЗ ExtendedBorders.
Как я понял, без этих ExBorders вообще тень не появляется…
Примерно так, но это с использованием ExtendedBorders.
[attachment=6662:Image 1.png]
TCountParticipantА нет, извиняюсь. В ASkinDemo 9-й версии как раз мигают менюшки) Это в версии 8.53 норм все.
TCountParticipant'Support' wrote:Можно нарисовать новый скин, где форма будет без бордеров, но с нужными тенями.
Не хочу Вас напрягать, но вкратце можно узнать, как такой скин создать? Не целиком, конечно, а какие секции использовать? Неужели можно в секции “Form” создать GLOW-эффект вокруг и это будет прозрачным?
Quote:Какая версия Windows? Если есть Aero, то оно включено или нет?
Использую Windows 7×32, Aero включено, потому как заголовки у всех системных окон полупрозрачные.
Кстати, насчет этих меню…Я запускал ASkinDemo и там такого не наблюдается 😕
-
AuthorPosts