elpik

Forum Replies Created

Viewing 20 posts - 41 through 60 (of 132 total)
  • Author
    Posts
  • elpik
    Participant

    Потому что, это не рисунки из скина, а символы, как надпись (Caption) на кнопках…

    Если хочешь поменять меняй в программе…

    Только не понимаю зачем?

    in reply to: Рамка фокуса #51037
    elpik
    Participant
    'FeLDMaRShaL' wrote:

    Увожаемые разработчики, скажите пожалуйста а у Ваших компонентов случайно нет возможности отключить отрисовку пунктирной рамочки на контроле который сейчас под фокусом. Былобы здорово если бы такая возможность была, а если нет, то было бы здорово если такую возможность можно было реализовать, и глобально ее привязать (тру/фолс) на скинменеджер? 🙂

    Если пропишешь примерно такую процедуру, выполняющуюся после старта приложения, получишь то что хочешь:

    Code:
    procedure TForm1.sComboBox1Select(Sender: TObject);
    var i: Integer;
    bRes: Boolean;
    begin
    case sComboBox1.ItemIndex of
    0: bRes := True;
    1: bRes := False;
    else
    bRes := True;
    end;
    sSkinManager1.ButtonsOptions.ShowFocusRect := bRes;
    for i := 0 to (ComponentCount-1) do
    begin
    if Components.ClassNameIs('TsCheckBox') then
    (Components as TsCheckBox).ShowFocus := bRes;
    if Components.ClassNameIs('TsRadioButton') then
    (Components as TsRadioButton).ShowFocus := bRes;
    end;
    end;
    elpik
    Participant
    'TCount' wrote:

    Отдельный копмонент TsUpDown скинется полностью, а вот стрелки на TsSpinEdit нет…

    Нормально они скинируются, просто в скине это разные элементы управления.

    посмотри внимательнее через редактор скинов…

    in reply to: Прозрачность в секции для HINT'а #50967
    elpik
    Participant
    'TCount' wrote:

    Хорошо, например, я создам через редактор секцию Hint с закругленной формой. В таком случае, мне придется отказаться от градиента и цвета внутри хинта, установив его поностью прозрачным, оставив только рамки из MasterBitmap.

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

    Может такой вариант устроит:?

    in reply to: Прозрачность в секции для HINT'а #50950
    elpik
    Participant

    Может не нужно скины трогать?

    Попробуй такой вариант например:

    Code:
    procedure TForm1.sBitBtn1Click(Sender: TObject);
    begin
    sHintManager1.HideHint;
    sBitBtn1.Hint := 'Текст сменили на зеленый';
    sHintManager1.HintKind.Color := clLime;
    sHintManager1.UpdateProperties;
    end;
    elpik
    Participant
    'Support' wrote:

    В приложенном Exe TextHint виден при выключенных скинах…

    Потому что EXE с версией 8.19

    перекомпильте на 8.47 – показывать перестанет…

    in reply to: TsSpinEdit и DisplayFormat #50911
    elpik
    Participant
    'Izyum' wrote:

    Необходимо отображать значение с разделением по триадам.

    Существует ли возможность у TsSpinEdit изменить DisplayFormat?

    как вариант использовать UpDown в связке с контролом который умеет отображать DisplayFormat

    in reply to: Не понятная рамка у TPanel #50898
    elpik
    Participant

    ИМХО. А не проще Фреймы использовать вместо хака стандартных функций отображения окон?

    Они как раз для вашего случая и применяются,

    никаких проблем с границами и не надо программно паренты менять…

    Второй вариант програмно выставить свойства Top, Left

    in reply to: Проблема с AlphaHints #50896
    elpik
    Participant
    'TCount' wrote:

    Доброй ночи!

    Пытаюсь внедрить Frame в подсказку AlphaHints и выдает ошибку.

    Вот событие обработки OnShowHint:

    procedure TF1.HMShowHint(var HintStr: string; var CanShow: Boolean;var HintInfo: THintInfo; var Frame: TFrame);

    begin

    if Frame=NIL then Frame:=TFrame16.Create(Self);

    TFrame16(Frame).Label1.Caption:=HintStr;

    Frame.Width:=TFrame16(Frame).Label1.BoundsRect.Right+4;

    end;

    В самом фрэйме ничего особенного – Image и Label.

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

    И проблема эта появляется только при вызове метода ShowHint!


    http://delphiworld.narod.ru/base/tframe_named_err.html

    Я переименовал, но все равно все осталось тоже самое.

    Возможно, это из-за того, что в самой процедуре OnShowHint используется “var Frame: TFrame”. Даже не знаю.

    Программно вызывать бесполезно… Если в качестве параметра передать твой потомок TFrame на выходе получишь экземпляр класса,

    который не будет уничтожен потому что хинт не покажется…

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

    Вот пример кода:

    Code:
    // отображение альфахинта
    procedure TForm1.sAlphaHints1ShowHint(var HintStr: String;
    var CanShow: Boolean; var HintInfo: THintInfo; var Frame: TFrame);
    begin
    if not Assigned(Frame) then Frame := TFrame2.Create(Self);
    TFrame2(Frame).sLabelFX1.Caption := HintStr;
    HintInfo.HintPos.X := Screen.WorkAreaWidth-TFrame2(Frame).Width;
    HintInfo.HintPos.Y := Screen.WorkAreaHeight-TFrame2(Frame).Height;;
    end;

    //попытка вызвать программно
    procedure TForm1.sBitBtn2Click(Sender: TObject);
    var bShow: Boolean;
    PHI: ^THintInfo;
    HI: THintInfo;
    st: string;
    fr: TFrame;
    begin
    try
    bShow:= True;
    st := 'абракадабра – кадабраабра';
    New(PHI);
    HI := PHI^;
    //fr := nil; -попробуй раскомментировать и нажать кнопку
    sAlphaHints1ShowHint(st, bShow, HI, Fr);
    finally
    Dispose(PHI);
    end;

    end;

    При нажатии на 2-ю кнопку хинт не покажется, но экземпляр класса потомка TFrame будет создан.

    пока //fr := nil; закоментирована, код работает корректно (вероятно оптимизатор эту переменную игнорирует)

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

    И при повтормом вызове получишь ошибку…

    Попробуй отследить наличие класса на форме и убивать его перед вызовом показа хинта…

    elpik
    Participant

    Обновил до версии 8.47

    на Delphi 7 осталось без изменений

    на Delphi XE: TsMaskEdit перестал показывать TextHint даже при выключенных скинах…

    elpik
    Participant

    Тему АП…

    Проверил проблему на Delphi XE/Win 7×64/Ver 8.19

    Напомню что для новых версий Delphi (2009 и выше), для отображения такого же баннера используется свойство TextHint

    Ну а версию АльфаСкинов на Delphi XE не обновлял уже давно (осталась 8.19)…

    Результаты:

    TsEdit

    Ведет себя корректно как при включенных так и при выключенных скинах, полностью повторяя поведение стандартного TEdit.

    никаких нареканий…

    TsMaskEdit

    При включенных скинах баннер не показывает, при отключенных скинах показывает корректно как и стандартный TMaskEdit

    Скрины и тестовое приложение прилагаю.

    С уважением Elpik.

    in reply to: Предложение по новому компоненту #50167
    elpik
    Participant

    TsPopupAlert

    in reply to: Распакованный скин #49971
    elpik
    Participant
    'ivanov34' wrote:

    Здравствуйте! Подскажите как мне скинировать форму распакованным скином, тоесть использовать Options.dat

    Поле SkinName в упор не видит папку с распакованным скином.

    Заранее Спасибо!

    Берешь редактор скинов который есть в ссылках на главной странице, через него, добавляешь нужные картинки из своего распакованного скина, выбираешь настройки и т.п. (иными словами создаешь свой скин на основе распакованного)… Сохраняешь его под именем файла MySkin.asz например, и Альфаскины резко увидят то что ты хочешь и заскинируют программу…

    По сабжу, АС работает только со своими скинами…

    elpik
    Participant
    'alex000' wrote:

    Это немного нехорошо – например, если у меня в дизайнере стоит какой-нибудь скин с желтыми буквами, то если run-time выключить скины, буквы наверняка останутся желтыми, а это не правильно.

    А разве цвет шрифта не подменяется в зависимости от скина? он не подменяется только если снять свойство UseSkinColor… имхо все правильно…

    in reply to: Скинирование ActiveX (OCX) #49834
    elpik
    Participant
    'Astii' wrote:

    А никак нельзя, чтобы они “AC” попросили нарисовать их? Или может быть хотя-бы попросили нарисовать себя в стиле “Windows XP”, даже если выбрана “Windows Classic”?

    Дык это и не АС, это сторонний элемент управления, и без исходника, где гарантия что он написан на основе стандартных компонент делфи? это может быть и не делфи вообще. потому АС его и не скинирует она не понимает что это за класс…

    Как вариант попробуйте в 3rd party – добавить этот класс и подставте ему в качестве замены TreeView (или какой нибудь другой подходящий класс)… но не думаю что получится что нибудь толковое…

    Для проверки могли бы и сам OCX тут выложить чтоб мы тоже поигрались…

    elpik
    Participant

    демку с бажкой можете выложить?

    in reply to: Не прорисовывается грид (v8.11) #49731
    elpik
    Participant

    в 8.14 ДбГрид заработал как положено, спасибо большое ^_^

    elpik
    Participant

    В версии 8.14 все заработало как надо, спасибо большое ^_^

    Топик закрываю.

    in reply to: Не прорисовывается грид (v8.11) #49710
    elpik
    Participant
    'WSW' wrote:

    elpik, Скачал Ваш пример, никаких проблем не увидел. Пробовал на указанных Вами скинах. Всё рисуется нормально.

    у меня Win7 x64, AC 8.12, Delphi XE2 (x32)

    Я не выкладывал тут примера… (я не знаю как сделать пример с ДБ-гридом, в котором юзается огромная база с использованием ФИБ-плюс. В проекте где сотни окон унаследованные от базовых окошек и фреймов. могу только скриншоты показать… или попросить подключится ко мне удаленно чтобы понять пичину. Исходников Альфаскинов у меня все равно нет, сам я не докапаюсь…)

    На чилд-окне 3 панели, в центральной панели на всю панель развернут ДБ-грид (по умолчанию невидимый).

    Скриншоты прилагаю.

    На первом скрине после нажатия “найти” появляется ДБ-грид (становится видимым). с результатами запроса, (но он не перерисовывается) курсор не двигается, хотя по дата-сету перемещения происходят…

    Во втором скриншоте я просто взял внутреннее окошко и поводил им за пределами мейн окна, видно что внутренняя часть грида не отрисовывается…

    При всем при этом такой баг проявляется лишь на некоторых скинах, подозреваю както связано с прозрачкой… (например на скинах AndroidOS, iOS4, iOS4 Dark баг не проявляется)

    Скриншотил с версией ASkin 8.13, Delphi XE

    elpik
    Participant
    'Cinemaizer' wrote:

    Заметил жесткий глюк, связанный похоже с утечкой памяти при работе с TsDateEdit во фреймах. Раньше все было нормально. Почините побыстрее пожалуйста.

    Примерчик можно?…

    я часто сам юзаю фреймы с TsDateEdit, и никаких проблем не обнаружил…

Viewing 20 posts - 41 through 60 (of 132 total)