Forum Replies Created
-
AuthorPosts
-
YogParticipant'alexdnepro' wrote:
Добрый день. Конечно, я не против Вашего предложения, просто описал, как можно облегчить данный процесс, чтобы он не вызывал таких сложностей, т.к. сам не сразу к этому пришел и лет 10 назад точно также мучился при обновлении компонентов. Не уверен, что разработчики захотят менять что-то в этом плане, нам и так грех жаловаться на те условия, которые они предоставили для русскоязычных программистов.
Да я не жалуюсь, я наоборот, помогаю своей обратной связью, фидбеком.
Любой грамотный разработчик будет рад фидбеку, потому что обратная связь от клиента – это больше чем бесплатный консалтинг бизнеса.
Многие большие компании вкладывают огромные деньги на исследования чтобы улучшить свой продукт, а в нашем случае фидбек это позволяет сделать бесплатно.
YogParticipant'alexdnepro' wrote:Достаточно один раз прописать пути (глобальные), новые версии записывать в ту же папку (если базовая версия релиза совпадает 12 например или 13), и все обновление занимает всего пару кликов. Удаляем старые из IDE, компилим сначала проект с пометкой _R, следом делаем Install обычного.
Здравствуйте, alexdnepro. Правильно ли я вас понял, вы против моего предложения потому что для вас это не сложно? Или просто перечисляете инструкцию по установке/обновлению?
Поймите меня правильно, я умею устанавливать и обновлять версию, пользуюсь AlphaSkins с 2014 года, но прошу оптимизировать/автоматизировать процесс для удобства. Мы же с вами не рабы, а программисты. Зачем всем нам делать однотипные итерации каждую новую версию, когда за нас эту работу может выполнить программа? Тем самым мы высвободим свою внутреннюю человеческую оперативную память и сэкономим время на творчество для проекта и всё это умноженное на кол-во пользователей Alphaskins.
YogParticipant'Support' wrote:Спасибо
Этот пример скомпилирован с пакетом версии 12.21, попробуйте более новый, проблема должна быть уже решена.
В версии 13 не воспроизводится.
Обновился и баг пропал! Спасибо большое!!!
YogParticipant'Support' wrote:Спасибо
Да, видео тоже поможет.И Exe тоже желательно.
Да, конечно. Прикрепил к письму EXE и видео: https://youtu.be/F9V2G9pB2m8
Жду вашего ответа
YogParticipant'Support' wrote:А возможно сделать демку с такой проблемой?
Вот только что пробовал повторить, но не получается.
Да, конечно, файл прикрепил к письму, вместе со скином (нужно только путь поменять).
Жду вашего ответа. Если надо, могу видео записать, только скажите, мне не сложно.
YogParticipantПомогает если постоянно делать sSkinProvider1.RepaintMenu;
Но на сколько это ресурсоёмко и правильно?
Можете исправить этот баг в следующей версии?
YogParticipantУра!! Нашёл БАГ!!!
Он возникает только тогда когда на форме есть компонент sSkinProvider1 с включенным свойством SkinData.SkinSelection:=PAGECONTROL;
Как проверить? Легко, посетите его на вторую форму. Затем вызовите вторую форму, закройте её и снова вызовите. Могу записать видео для наглядности.
Как быть? Как исправить? Без этого свойства мои формы не так красиво выглядят.
YogParticipantО, благодарю вас!
YogParticipant'Support' wrote:А возможно обрезать проект, чтобы осталась тестовая часть, где повторяется проблема?
к сожалению нет, проект огромный. К сожалению и вызвать проблему не просто. Но если я пойму из-за чего возникает данная проблема, отпишусь.
YogParticipant'Support' wrote:Это просто как дополнительную информацию уточнял.
А ParentWindow там не задается вручную?
Может есть что-то специфичное в этой форме?
У меня эта 2ая форма как бы главная(Form1). 1ая форма является авторизацией пользователя(Form2). Я их поменял местами чтобы форма авторизации вызывалась первой.
На 2ой форме размещено всё, курсы, тренажёры, и она открывает курсы и тренажёры через фреймы (parent), т.к. тренажёров будет сотни (пока около 10).
Что касается Ресайза этой формы, там вот такой код:
Code:procedure TForm1.FormResize(Sender: TObject);
var
h, i: Integer;
begin// Делаем резиновым раздел «Курсы»
h := 0;
for i := 0 to FlowPanel_Kursi.ControlCount – 1 do
h := FlowPanel_Kursi.Controls.BoundsRect.Bottom;
sScrollBox_Kursi.VertScrollBar.Range := h;// Делаем резиновым раздел «Тренировки 2»
h := 0;
for i := 0 to FlowPanel_Trenirovki.ControlCount – 1 do
h := FlowPanel_Trenirovki.Controls.BoundsRect.Bottom;
sScrollBox_Trenirovki.VertScrollBar.Range := h;// Делаем резиновым раздел Инструменты – Транслитератор
sPanel_i1_translit_left.Width := Form1.Width div 2; // Делаем 50% на 50% ширину обоих Мемо.
sBitBtn_i1_tuda_suda.Left := sPanel_i1_translit_left.Width – sBitBtn_i1_tuda_suda.Width – 21; // Делаем динамич. кнопку «Поменять»
sCheckBox_i1_avto.Left := sPanel_i1_translit_right.Width – sCheckBox_i1_avto.Width – 14; // Делаем динамич. чекбокс «Авто»
sBitBtn_i1_perevesti.Left := sPanel_i1_translit_right.Width – sBitBtn_i1_perevesti.Width – sCheckBox_i1_avto.Width – 21; // Делаем динамич. кнопку «Перевести»// Делаем резиновым раздел Браузер
sBitBtn_browser_vpered.Left := sPanel_browser_bot.Width – sBitBtn_browser_vpered.Width; // Делаем динамич. кнопку «Вперёд»// Делаем резиновым раздел Тренажёры
sPanel_resize.Left := (sTabSheetTrenirovki.Width – sPanel_resize.Width) div 2;end;
А фреймы (тренажёры) вызываю вот так:
Code:// Вызываем фрейм
if Frame_t9_game = nil then
Frame_t9_game := TFrame_t9_game.Create(Application);
sPanel_resize.Width := Frame_t9_game.Width;
sPanel_resize.Left := (sTabSheetTrenirovki.Width – sPanel_resize.Width) div 2;
Frame_t9_game.Parent := sPanel_resize;
Frame_t9_game.Visible := True;YogParticipant'Support' wrote:А эта форма – дочерняя?
Возможно ли повторить проблему в демке?
Да, дочерняя. В демке врятли(
А что нужно делать если дочерняя?
YogParticipant'Support' wrote:Меняются ли динамически какие-нибудь свойства формы, например BorderWidth или другие?
Возможно ли, что в какой-то момент времени форма пересоздается (RecreateWnd) и меняется Handle формы?
Искренне прошу прощения что сразу не смог ответить. Отвечая на все ваши вопросы – нет. Динамически форма не меняется, разьве что ресайз некоторых компонентов во время расширения формы. Но ведь ресайз формы же не наступает когда делаешь окно активным/неактивным, у меня баг иногда появлялся когда я не сворачивал программу, а просто делал окно неактивным переходя в браузер, а потом через какое то время возвращался к программе и обнаруживал этот баг. И если я не прав, и из-за Resize некоторых компонентов у меня происходят баги с формой, то как быть? Как наладить?
YogParticipantа, понял! Спасибо большое! Получилось! :a3:
YogParticipantСпасибо
YogParticipant'Support' wrote:Зависит еще от типа анимации: сворачивание/разворачивание, fading или что-то другое.
Под плавным скрытием/появлением я имею введу через анимацию постепенной, но быстрой полупрозрачности.
YogParticipant'Support' wrote:Панель с плавным разворачиванием и сворачиванием.
Спасибо за ответ. Я думаю этот компонент не подойдёт, уж слишком он сложный. А процедура большая/сложная? Или лучше не заморачиваться ради этого?
YogParticipant'Support' wrote:А может подойдет компонент TsRollOurPanel?
Иначе, нужно писать свою процедуру для TsPanel, если нужно, чтобы она плавно выезжала.
В первый раз вижу этот компонент. Попробовал разместить на форме, так и не понял для чего он нужен. Можете рассказать пожалуйста?
YogParticipant'Support' wrote:Работа с битмап на порядок быстрее, чем с Png при рендеринге, это главная причина почему Bmp
А переделывать не меньше года, если учитывать, что и редактор тоже нужно полностью менять. И мануал по созданию скинов.
Насчёт того что BMP быстрее рендерится чем PNG, не знал, думал все одинаково. Ясно, спасибо.
YogParticipantОго, я про такие тонкости не знал. Спасибо больше за разъяснения.
Проверил, если бы у меня хоть 1 пиксель был бы прозрачным, то рендер бы работал нормально. И кажется я понял для чего изначально так сделано, наверное для тех случаев когда используешь не PNG, а BMP и где прозрачность нужна. Теперь понятно почему у скинов розовый фон и формат BMP.
Спасибо ещё раз. Век живи, век учись!
P.S. Вот только в наше время “PNG-24” не уступают “BMP-24” и весят меньше. Например моя “BMP-24” весит 188 КБ, а “PNG-24” 23 KB, в 8 раз. А качество и там и там исходное.
P.S.. Кстати, там образом можно в 8 раз уменьшить размер скинов, и таким образом программки будут меньше весить. Но переделывать наверное геморно…
YogParticipantСпасибо огромное! Сделал как вы сказали и рамки пропали!!! Вы лучшие!!! Успехов вам!!!
-
AuthorPosts