Forum Replies Created
-
AuthorPosts
-
elpikParticipant
Потому что, это не рисунки из скина, а символы, как надпись (Caption) на кнопках…
Если хочешь поменять меняй в программе…
Только не понимаю зачем?
elpikParticipant'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;elpikParticipant'TCount' wrote:Отдельный копмонент TsUpDown скинется полностью, а вот стрелки на TsSpinEdit нет…
Нормально они скинируются, просто в скине это разные элементы управления.
посмотри внимательнее через редактор скинов…
elpikParticipant'TCount' wrote:Хорошо, например, я создам через редактор секцию Hint с закругленной формой. В таком случае, мне придется отказаться от градиента и цвета внутри хинта, установив его поностью прозрачным, оставив только рамки из MasterBitmap.
Тогда как программно потом менять цвет секции Hint? Есть такие методы? И если есть, то они по идее должны так же отреагировать, как и в редакторе, то есть, закрасить выбранным цветом все, включая и углы рамки.
Может такой вариант устроит:?
elpikParticipantМожет не нужно скины трогать?
Попробуй такой вариант например:
Code:procedure TForm1.sBitBtn1Click(Sender: TObject);
begin
sHintManager1.HideHint;
sBitBtn1.Hint := 'Текст сменили на зеленый';
sHintManager1.HintKind.Color := clLime;
sHintManager1.UpdateProperties;
end;elpikParticipant'Support' wrote:В приложенном Exe TextHint виден при выключенных скинах…
Потому что EXE с версией 8.19
перекомпильте на 8.47 – показывать перестанет…
elpikParticipant'Izyum' wrote:Необходимо отображать значение с разделением по триадам.
Существует ли возможность у TsSpinEdit изменить DisplayFormat?
как вариант использовать UpDown в связке с контролом который умеет отображать DisplayFormat
elpikParticipantИМХО. А не проще Фреймы использовать вместо хака стандартных функций отображения окон?
Они как раз для вашего случая и применяются,
никаких проблем с границами и не надо программно паренты менять…
Второй вариант програмно выставить свойства Top, Left…
elpikParticipant'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; закоментирована, код работает корректно (вероятно оптимизатор эту переменную игнорирует)
но если эту строчку разкомментровать, на выходе из процедуры получишь экземпляр класса на своей форме.
И при повтормом вызове получишь ошибку…
Попробуй отследить наличие класса на форме и убивать его перед вызовом показа хинта…
elpikParticipantОбновил до версии 8.47
на Delphi 7 осталось без изменений
на Delphi XE: TsMaskEdit перестал показывать TextHint даже при выключенных скинах…
elpikParticipantТему АП…
Проверил проблему на Delphi XE/Win 7×64/Ver 8.19
Напомню что для новых версий Delphi (2009 и выше), для отображения такого же баннера используется свойство TextHint…
Ну а версию АльфаСкинов на Delphi XE не обновлял уже давно (осталась 8.19)…
Результаты:
TsEdit
Ведет себя корректно как при включенных так и при выключенных скинах, полностью повторяя поведение стандартного TEdit.
никаких нареканий…
TsMaskEdit
При включенных скинах баннер не показывает, при отключенных скинах показывает корректно как и стандартный TMaskEdit
Скрины и тестовое приложение прилагаю.
С уважением Elpik.
elpikParticipantTsPopupAlert
elpikParticipant'ivanov34' wrote:Здравствуйте! Подскажите как мне скинировать форму распакованным скином, тоесть использовать Options.dat
Поле SkinName в упор не видит папку с распакованным скином.
Заранее Спасибо!
Берешь редактор скинов который есть в ссылках на главной странице, через него, добавляешь нужные картинки из своего распакованного скина, выбираешь настройки и т.п. (иными словами создаешь свой скин на основе распакованного)… Сохраняешь его под именем файла MySkin.asz например, и Альфаскины резко увидят то что ты хочешь и заскинируют программу…
По сабжу, АС работает только со своими скинами…
January 16, 2013 at 11:43 am in reply to: TsLabel.Font.Color самопроизвольно меняется в design-time #49903elpikParticipant'alex000' wrote:…
Это немного нехорошо – например, если у меня в дизайнере стоит какой-нибудь скин с желтыми буквами, то если run-time выключить скины, буквы наверняка останутся желтыми, а это не правильно.
А разве цвет шрифта не подменяется в зависимости от скина? он не подменяется только если снять свойство UseSkinColor… имхо все правильно…
elpikParticipant'Astii' wrote:А никак нельзя, чтобы они “AC” попросили нарисовать их? Или может быть хотя-бы попросили нарисовать себя в стиле “Windows XP”, даже если выбрана “Windows Classic”?
Дык это и не АС, это сторонний элемент управления, и без исходника, где гарантия что он написан на основе стандартных компонент делфи? это может быть и не делфи вообще. потому АС его и не скинирует она не понимает что это за класс…
Как вариант попробуйте в 3rd party – добавить этот класс и подставте ему в качестве замены TreeView (или какой нибудь другой подходящий класс)… но не думаю что получится что нибудь толковое…
Для проверки могли бы и сам OCX тут выложить чтоб мы тоже поигрались…
elpikParticipantдемку с бажкой можете выложить?
elpikParticipantв 8.14 ДбГрид заработал как положено, спасибо большое ^_^
elpikParticipantВ версии 8.14 все заработало как надо, спасибо большое ^_^
Топик закрываю.
elpikParticipant'WSW' wrote:elpik, Скачал Ваш пример, никаких проблем не увидел. Пробовал на указанных Вами скинах. Всё рисуется нормально.
у меня Win7 x64, AC 8.12, Delphi XE2 (x32)
Я не выкладывал тут примера… (я не знаю как сделать пример с ДБ-гридом, в котором юзается огромная база с использованием ФИБ-плюс. В проекте где сотни окон унаследованные от базовых окошек и фреймов. могу только скриншоты показать… или попросить подключится ко мне удаленно чтобы понять пичину. Исходников Альфаскинов у меня все равно нет, сам я не докапаюсь…)
На чилд-окне 3 панели, в центральной панели на всю панель развернут ДБ-грид (по умолчанию невидимый).
Скриншоты прилагаю.
На первом скрине после нажатия “найти” появляется ДБ-грид (становится видимым). с результатами запроса, (но он не перерисовывается) курсор не двигается, хотя по дата-сету перемещения происходят…
Во втором скриншоте я просто взял внутреннее окошко и поводил им за пределами мейн окна, видно что внутренняя часть грида не отрисовывается…
При всем при этом такой баг проявляется лишь на некоторых скинах, подозреваю както связано с прозрачкой… (например на скинах AndroidOS, iOS4, iOS4 Dark баг не проявляется)
Скриншотил с версией ASkin 8.13, Delphi XE
elpikParticipant'Cinemaizer' wrote:Заметил жесткий глюк, связанный похоже с утечкой памяти при работе с TsDateEdit во фреймах. Раньше все было нормально. Почините побыстрее пожалуйста.
Примерчик можно?…
я часто сам юзаю фреймы с TsDateEdit, и никаких проблем не обнаружил…
-
AuthorPosts