TCount

Forum Replies Created

Viewing 20 posts - 121 through 140 (of 560 total)
  • Author
    Posts
  • in reply to: Фокусы фона формы #55062
    TCount
    Participant

    Только вот это спасло…Но это ведь не дело.

    procedure TForm49.FormPaint(Sender: TObject);

    var x: integer;

    begin

    X:=8-sSkinProvider1.OffsetX;

    BitBlt(Canvas.Handle,X,0,Width,Height,Fon.Canvas.Handle,0,0,srcCopy);

    end;

    in reply to: Фокусы фона формы #55278
    TCount
    Participant
    'Support' wrote:

    Спасибо за демку

    В 11.17 проблема осталась. Очень жаль 🙁

    P.S. Кстати, если после смещения фона посмотреть sSkinProvider.OffsetX…он выдает 80! вместо начальных 8.

    TCount
    Participant
    'Pokroops' wrote:

    Наблюдаю странность:

    У меня несколько очень похожих проектов, использующих общий код.

    skin manager находится в этом общем коде, соответственно все его настройки для всех проектов одинаковы.

    Однако, в некоторых проектах ChangeSysColors работает (а именно, цвет выделенного текста меняется с голубого на серый),

    а в других проектах этого не происходит, selection отстаётся голубым.

    Возникает вопрос: что, помимо настроек skin manager'а, может тут влиять? Куда смотреть?

    Думается мне, у вас разные скины в проектах…

    Если так, то стоит в редакторе скинов открыть тот скин, на котором не происходит изменения цвета выделения.

    Открыв такой скин, обратите внимание на секцию SELECTION, во вкладке Active/Hot которой должен быть установлен нужный цвет Color.

    TCount
    Participant
    'Pokroops' wrote:

    Здравствуйте!

    А как же при помощи панелей удалось сделать скруглённые углы у окна?

    Это уже не при помощи панелей, а путем обрезания углов самой формы с помощью регионов.

    Например, вот так:

    procedure SetRNG(const F: TForm);

    var RNG: HRGN;

    begin

    RNG:=CreateRoundRectRgn(0,0,F.Width+1,F.Height+1,11,11);

    SetWindowRgn(F.Handle,RNG,True);

    DeleteObject(RNG);

    end;

    in reply to: AlphaHints – а все ли работает? #55602
    TCount
    Participant
    'Support' wrote:

    Примеры их использования можно найти в этой демке: http://www.alphaskins.com/sfiles/demos/alphahints.zip

    Только что я перекомпилировал и проверил, в демке это работает…

    Теперь понятно. Я же не знал, что с включенным свойством Animated такой фокус не работает 🙂

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

    Спасибо.

    in reply to: AlphaHints – а все ли работает? #55600
    TCount
    Participant
    'Support' wrote:

    В модуле sVCLUtils есть две функции:

    Code:
    function acShowHintWnd(HintText: string; Pos: TPoint): {$IFDEF TNTUNICODE}TTntHintWindow{$ELSE}THintWindow{$ENDIF};
    procedure acHideHintWnd(var Wnd: {$IFDEF TNTUNICODE}TTntHintWindow{$ELSE}THintWindow{$ENDIF});

    Они должны работать.

    Должны, но не работают.

    in reply to: Фокусы фона формы #55596
    TCount
    Participant

    Сделал демку.

    И пока делал ее, похоже, нашел, в чем кроется загадка.

    Если в SkinProvider формы отключить прорисовку рамок формы (DrawNonClientArea), то будут наблюдаться лаги. Если же прорисовка рамок включена, то все OK.

    В демке по умолчанию прорисовка рамок отключена.

    Баг ловим так:

    1. Запускаем Exe.

    2. Жмем кнопку на форме “Свернуть форму”. Именно ее, потому что сворачивание формы из заголовка работает нормально.

    3. После разворачиваем форму, кликнув по иконке проги в панели задач.

    4. Наблюдаем смещение фона.

    in reply to: Фокусы фона формы #55574
    TCount
    Participant
    'Support' wrote:

    Желательна демка для изучения. Это возможно?

    Да, скоро сделаю.

    TCount
    Participant

    В чем же все-таки волшебство масок? :wacko:

    Обратите внимание на две маски, они практически идентичны. Разница только в том, что в маске справа верхний правый угол – 1 пиксель цвета Fuchsia.

    Казалось бы, что обе маски должны работать. Однако, из двух масок правильно работает только правая маска…

    Так в чем же волшебство одного единственного fuchsia-пикселя?

    P.S. Поправьте это недоразумение, пожалуйста. Я не в первый раз замечаю данную неувязочку и поэтому не могу полноценно реализовать свои идеи по созданию скинов для программ.

    in reply to: глючит ShowPopupForm #55516
    TCount
    Participant

    Вот я и попробовал AC 11.14. Взял Ваш проект, изменил скин на AutumnSky (для лучшей видимости проблемы) и…первые 2 вызова формы – нормально, третье – как на скрине)

    in reply to: глючит ShowPopupForm #55515
    TCount
    Participant
    'hoop' wrote:

    У меня, описанный Вами эффект не наблюдается (AlphaControls v11.14, Delphi 10.1). Набросал тестовое приложение. А Вы случайно, на PopUpForm-у, не забыли поместить TsSkinProvider? Если этого объекта нет, то в прорисовке формы появляются проблемы даже с использованием методов Show и ShowModal, я об этом писал разработчикам недавно, но эту тему я уже удалил (что-то связанное с активацией скинированной формы).

    Про SkinProvider не забыл, однако, не пробовал AC 11.14. Думаю, стоит попробовать)

    in reply to: 2 SkinManager #55503
    TCount
    Participant

    Вобщем, проверил я все…

    Все проблемы начинаются, если использовать вшитый скин (Internal).

    Не знаю, что там делается, но это влияет на мою прогу.

    Причем у меня форма со скином создается динамически и потом уничтожается. И даже после ее уничтожения вместе со SkinManager проблема никуда не уходит.

    P.S. Проблема решилась путем динамической загрузки скина из ресурсов.

    in reply to: 2 SkinManager #55483
    TCount
    Participant
    'Sha' wrote:

    Тогда непонятно, при чем тут этот файл, если он не имеет отношения к формам?

    Без него все работает?

    Формы показываются?

    Все работает прекрасно, файл не битый и загружается легко и быстро, НО ЕСЛИ SkinManager инициализируется ДО загрузки этого файла.

    То есть:

    1. SkinManager.Active=True – функция загрузки файла где-то на середине виснет.

    2. SkinManager.Active=False – функция загрузки файла работает как надо.

    Но в этой функции нет обращений к SkinManager.

    Ща я попробую на пустом проекте. Кину SkinManager и функцию загрузки файла и гляну, что и как.

    in reply to: 2 SkinManager #55486
    TCount
    Participant
    'Sha' wrote:

    Скорее всего, что-то не так в логике (например, нет привязки скин-менеджеру и т.п.)

    Но файл, который загружается, он никаким образом не относится к SkinManager) Это просто массив картинок PNG и описание к ним)

    Если этот файл не загружать – все норм)

    in reply to: 2 SkinManager #55487
    TCount
    Participant
    'Sha' wrote:

    0. Сделать копию всех файлов вашего проекта и отложить в сторонку на всякий случай.

    1. Добавить TDataModule в проект: File->New->DataModule

    2. Открыть файл проекта (.dpr) и переставить в нем строчку создания TDataModule сразу после Application.Initialize

    3. Скопипастить TsSkinManager с вашей главной формы на форму TDataModule

    4. Удалить все другие скин-менеджеры

    Полезная штука, только это не помогло. Похоже, что дело не в 2х SkinManager, а в том, что он вообще инициализируется))

    Мои исследования показали, что весь процесс зависает на загрузке ресурсов из файла для работы программы.

    Если отключить SkinManager или вообще его удалить перед загрузкой этого файла, то все нормально. Но если SkinManager создается ДО загрузки этого файла, то беда)

    Ума не приложу, при чем здесь мой файл, который загружает всякие строки и картинки, и SkinManager. :wacko:

    Я вижу два варианта решения:

    1. Загружать файл сразу после инициализации Application (но как-то это не камильфо, если прога вообще не будет в итоге запущена).

    2. После активации проги (первая форма со SkinManager) не загружать файл, а автоматом перезапускать саму прогу (что тоже как-то несерьезно).

    in reply to: 2 SkinManager #55473
    TCount
    Participant
    'Sha' wrote:

    В вашем случае можно разместить единственный TsSkinManager на TDataModule.

    Хммм…У меня даже такой практики нет) Не подскажите, где можно инфу найти по этому поводу?

    in reply to: 2 SkinManager #55472
    TCount
    Participant
    'Diezko' wrote:

    Если не секрет,как вы делаете другую форму главной?

    Вовсе не секрет)

    procedure SetAsMainForm(aForm: TForm);

    var P:Pointer;

    begin

    P:=@Application.Mainform;

    Pointer(P^):=aForm;

    end;

    in reply to: Кнопки в вечном "мнимом фокуcе" #55383
    TCount
    Participant
    'Support' wrote:

    Странные вещи описаны… демка желательна )

    Постараюсь сделать)

    in reply to: Кнопки в вечном "мнимом фокуcе" #55379
    TCount
    Participant
    'Support' wrote:

    SpeedButtons не принимают фокус.

    Не принимают, но и не теряют почему-то)

    Простой эксперимент:

    На форме кнопка sSpeedButton и PopupMenu. PopupMenu вызывается при нажатии правой кнопкой мыши по кнопке.

    При этом происходит следующее – открывается меню, а кнопка остается в активном состоянии. Все бы хорошо, да только

    от активного состояния кнопки уже никак не избавиться) Куда бы я не переводил фокус – у sSpeedButton остается активный внешний вид.

    Единственное, когда этот внешний вид пропадает – это либо навести курсор на эту же кнопку, либо на любую другую sSpeedButton.

    Вообще, беда с этими sSpeedButton…Например, проблемы с выводом OuterEffects на этих этого вида кнопках, а также непрорисовка в некоторых случаях – когда вместо кнопки появляется белый прямоугольник. Вобщем, беда.

    Поэтому я заменил эти sSpeedButton на sBitBtn.

    P.S. По поводу фокуса…помогает только комбинация: enabled=false, а потом enabled=true.

    TCount
    Participant
    'Support' wrote:

    Постараюсь поправить это в ближайшем релизе.

    В версии 11.10 работает!

Viewing 20 posts - 121 through 140 (of 560 total)