Forum Replies Created
-
AuthorPosts
-
elpikParticipant'TCount' wrote:
Как раз на Вашем и проверял. Все нормально.
что то с делфи… буду переставлять…
elpikParticipant'TCount' wrote:Win 7×32, Delphi XE, AC 9.03
Ошибок нет.
мой EXE – ошибку выдает?
elpikParticipant'Ринат' wrote:Так может кому пригодиться.
Ошибка глупая, но я почему-то об этом сразу не подумал и перековырял весь проект.
В общем SelectSkin(sSkinManager1) не работал и все было не стабильно из-за того что sSkinManager оказался не на главной форме.
Так же сбои были из-за того что в проекте нашлось пару компонентов с названиями из русских букв (проект без скинов работал норм, а вот со скинами …)
…и ОПЫТ! Сын ошибок трудных…
elpikParticipant'Ринат' wrote:1 ну разумеется я проветил что дело в скинах (именно рабочих), в выключенном состоянии компоненты не нарушают работу программы
2 хотелось бы именно окошко выбора, да я еще и нестандартное хотел бы (сдесь есть “acSelectSkinDialog – альтернативный диалог выбора скинов”), очень удобный. Но с ним ситуация еще хуже.
Только что проверил на пустом проекте. вроде все переключается…
советую попробовать также попробовать на пустом проекте, и постепенно добавлять в него функционал из главного проекта…
тогда и причину поймете.
elpikParticipant'Ринат' wrote:Вин7, rad studio xe5, AlphaControls 2013 v8.53 (более старые тоже пробывал)
Не работает SelectSkin(sSkinManager1) т.е окно открываеться скин выбираеться… эффекта 0.
Если через SelectSkin( SkinName, SkinDir, stPacked) то грузит и вродебы работает но позже пи откытии некоторого кол-ва форм вылетает указывая на адрес в программе
Подскажите что делать, как увеличить стабильность? в какую сторону копать ? может есть какие-то ограничения ?
Проект готовый
примерно 40 форм
IBX, JEDI , FastReport4.15,
FIBPlus (были на этапе внеднрения AlphaControls, заменены на компоненты alpha)
VirtualTreeview 5,3
подчти все компаненты стандартные, AlphaControls только несколько штук.
SkinProvader-ы вроде на всех фармах есть
1) Для начала проверьте будет ли вылет при выключенных скинах.
2) для выбора скина я просто прописываю
Code:sSkinManager.SkinName := 'какое то имя скина';elpikParticipant'TCount' wrote:А Вы будете баги исправлять?)) Разработчик знает, о чем я)
Хм, поясню, дело в том, что я регулярно использую TitileBar и никакого дискомфорта не ощущаю…
Поэтому для меня диковато такое слышать, может Расскажете подробнее, что делаете и что не удобно?
elpikParticipant'TCount' wrote:Доброго дня!
Решил написать о своих впечатлениях после использования TitleBar, а также внести предложения по его усовершенствованию и удобству.
Итак:
1. У меня не получилось загрузить в Glyph итема изображение PNG, вместо этого мне выдало сообщение, что мой PNG не является изображением 😮
2. При использовании TitleBar не просто в качестве нескольких системных кнопок и названия проги:
a) Неудобно работать с подсказками, так как нет такой организации наподобие ParentShowHint. То есть, нужно каждому итему включать или отключать подсказки, а массово это сделать нельзя. Хорошо, если это пара итемов, а если по 5-6 шт в каждом окне?
б) Снова хочу сказать про ориентацию итемов (координаты). Очень проблематично настроить их расположение, нет свободы в этих действиях. А если итемы еще и разные по высоте (у меня такие есть), то они не центрируются. В связи с этим предлагаю ввести для итемов свойства Left и Top.
3. Опять-таки, в подсказках TitleBar не используется Frame, просто не работает. Конечно, можно организовать показ подсказок программно методом ShowHint совместно с OnMouseEnter и OnMouseLeave, но это уже извращение) А подсказки очень необходимый атрибут интерфейса.
4. Нет индивидуальных ItemMargins (для иконок итемов), как это сделано в остальных компонентах с помощью ContentMargin. А если итемы (кнопки) разной ширины, а расположение иконок задано для всех итемов одним ItemMargins? Да, ни о каком центрировании иконок на всех итемах речи быть не может. Здесь приходится хитрить – создавать иконки размером самой большой кнопки, а само изображение подгонять уже в графических редакторах, чтобы иконка визуально центрировалась (ну это сложно объяснить).
Вот такие вот дела. Надеюсь, это будет рассмотрено.
И снова пригодился бы пример с пояснениями…
Что делал, что получилось, что не понравилось, на словах не очень понятно…
elpikParticipantПо поводу прозрачности есть много вопросов…
Вот демка, попробуйте поиграться, но тут полагаю проблем и в VCL хватает…
1) на левом фрейме стандартный GroupBox, на правом sGroupBox
2) оба фрейма двигаются мышкой, но я пока не придумал как прорисовывать его во время (и после) перемещения.
3) фреймы по разному рисуются с вкл/выкл скинами…
прозрачность добавил так:
Code:procedure TFrame2.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT;
end;перемещение мышкой:
Code:procedure TFrame2.sGroupBox1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
end;elpikParticipant'yaroslav' wrote:Вот код юнита формы
Попробовал использовать Ваш скин, возникает та самая проблема.
Можно сделать демку с проблемой?
подозреваю вы юзаете не стандартные методы показа окошек…
elpikParticipantПервое что в голову приходит (правда не проверял)
Выставить:
Мин := +20
Макс := -20
Шаг := -1
elpikParticipant'szimin' wrote:Хочу у скинованной формы скруглить углы.
Первый вариант с DrawNonClientArea=False (углы скруглены, но появляются “дырки” в форме), второй с True (“дырок” нет, но углы сами вмдите)
[attachment=6588:Без-имени-1.png]
такое поведение стало только в версии 8.50, раньше (использовал 8.45) все было номально.
В хистори для версии 8.50 есть строка:
* Improved showing of forms with disabled DrawNonClientArea property
Думаю после этого и стало именно так.
Я просил пример а не картинки, но раз картинку показал, попробую еще раз довести мысль…
Если убрать рамку формы bsNone – то рамки не будет вообще, т.е. скинировать/нескинировать вокруг формы нечего,
и DrawNonClientArea – теряет всякий смысл, о каких углах рамки можно говорить, если ее вообще нет?
ЕЩЕ РАЗ:
DrawNonClientArea – нужен для отключения скинирования рамки формы, у тебя на рисунке показанные рамки формы,
заскинированы в обоих случаях, а должно быть как то вот так:
elpikParticipant'szimin' wrote:Давай ты тоже будешь читать внимательнее, что пишут другие.
Расскажи ка, как ты сделаешь с vsReport вывод в два столбика самих элементов (из Items), а не их дополнений из Item.Subitems?
Ну допустим, опиши ситуацию когда тебе нужно иметь именно 2 столбца итемов?
Для чего?
какова задача?
PS: На первом видео у тебя одна колонка, на втором 2-е, что именно не позволяет тебе засунуть итем в субитем? это же всего лишь текст, и получишь свои 2-е колонки ИМХО…
elpikParticipant'szimin' wrote:…
да, да – ошибся, у меня именно vsSmallIcon.
Сделано, чтобы отображать элементы в две колонки. С vsReport так не получится:
Ты это серьезно? Или прикалываешся? 😀
Вообще то именно vsReport дает любое число колонок 🙂 Ты невнимательно смотрел мою ссылку…
Попробуй в моем примере добывить columns и в items добавить subitems…
Ужас куда прогеры катятся…
elpikParticipant'TCount' wrote:Понимаю, что особенность скина, но остается одна неувязочка. Было бы еще понятно, если бы ползунок не появлялся бы вообще.
Но нафига он тогда появляется, когда пытаешься прокручивать список? Причем появляется таким, каким должен быть по идее виден.
Я сейчас скажу свое мнение, оно не обязательно верное:
Потомучто ты взял бегунок мышкой, и отдал ему фокус. На самом деле то бегунок есть, но он не отривовывается в своем минимальном состоянии,
(так задумано) а когда ты берешь его в фокус он вынужден рисоваться, ты же его тащишь.
'TCount' wrote:Я смотрел в редакторе скинов реализацию разных скроллов. Так вот, в итоге получается, что все зависит от бордюров секций скроллбаров.
Не совсем граматно скин создан. Я кое-что изменил и “возможности скроллбара расширились”)
Ну раз допилил, поздравляю, и стоило оно этих трудов? 😛
elpikParticipant'TCount' wrote:Так а ты поменяй скин и ползунок сразу появится) Причем если отключить скин – он тоже появится) И все при тех же маленьких размерах. При маленьких размерах, но разумно маленьких)
Более того, он появляется, когда пытаешься перемещать.
Я же не дурак)
Да не баг это, просто особенность такого скина…
На картинке показал думаю будет понятно:
elpikParticipant'TCount' wrote:Да я так все и делаю)))) Но я же писал, что ползунок пропадает, когда размер ListView'a маленький!
И когда пытаешься двигать ползунок – он появляется, а потом снова пропадает)
Причем на других скинах этого не наблюдается. Думаю, в силу того, что на других скинах концы скролла просто квадратные.
Вот переделал Ваш пример с маленьким ListView'ом.
хахаха!!! Так это стандартное поведение…
Если размер ползунка не влезает в размер скролбокса он пропадает…
Попробуйте отключить скин и еще поуменьшать размеры ЛистВьюва и увидите что и стандартный контрол делает тоже самое..
просто размер стандартного меньше чем минимальный размер ползунка для FM, в общем не ищите “кошку” там где ее нет 😀
elpikParticipant'TCount' wrote:За статью спасибо, про ползунок я же скрины показывал! Кстати, ползунок пропадает не во всех скинах) Например, на скине “FM” пропадает, а на всяких “квадратных” скроллах не пропадает.
Я честно не понимаю, какие настройки Вы в своих проектах выкручиваете.
Делаю так:
1) Кидаю на форму sSkinManager и sSkinProvider;
2) выставляю скин FM;
3) кидаю на форму sListView;
4) ставлю режим vsReport;
5) добавляю Column (отключаю показ хедеров);
6) добавляю элементы.
И я ВИЖУ ползунок!!!
elpikParticipant'szimin' wrote:ну да, у меня ViewStyle = vsReport
но это не значит, что можно так отрисовываться )
В твоем приме стоит vsSmallIcon
Quote:А что насчет этой: Про ползунокС ползунком вроде тоже не увидел глюков.
PS: кстати вот полезная статья по поводу TListView
Вот подправил твой пример:
elpikParticipant'szimin' wrote:У меня в скине у формы задаются скруглёные углы, так вот без DrawNonClientArea=False скругления на углах пропадают.
Искал методом проб и ошибок, так-что может быть сделано не совсем правильно..
Примерчик в студию,
и опиши что пытаешься получить, и что получаешь на самом деле.
elpikParticipantQuote:Пациент: -Доктор, когда я делаю вот так, у меня сильно болит…Доктор: –Хм, а нафига Вы так делаете?
при BorderStyle = bsNone, неклиентской части окна по определению нет.
Не ставьте DrawNonClientArea в False. – этот параметр нужен для отключения скинирования рамки окна и только…
-
AuthorPosts