Forum Replies Created
-
AuthorPosts
-
AlfatesterParticipant
Сделал демку и понял что АльфаСкины здесь не причем. Буквы добавляются автоматически на уровне системы.
Отключается через TMenu.AutoHotKeys.
Как задавать буквы вручную самоу так и не нашел.
AlfatesterParticipantПриатачил свой вариант тулбара с поддержкой поворота градиента для вертикального варианта.
Управляется свойствами MustRotateBar, MustRotateBtn
AlfatesterParticipantКод
AlfatesterParticipant'Witcher' wrote:Если зрение меня не подводит, то код как раз не приаттачился.
🙂
AlfatesterParticipant'Support' wrote:Спасибо. То же самое можно увидеть, убрав полностью AlphaControls из проекта, здесь я прицепил демку.
Эта проблема наблюдается похоже в любой версии Delphi, я видел ее под D7 и D2010, возможна она уже описана на багтрекере Embarcadero.
Спасибо, но не совсем так.
С Делфи похоже ве нормально.
Если запустить проект без Скинов со среды и выбрать 1х1, то показывается исключение, но сообщение не выдается и дальше другие рисунки показываются нормально (диалог не закрываем).
Если запустить проект без Скинов вне среды и выбрать 1х1, то ни исключение ни сообщение не показываются и другие рисункы отображаются нормально (диалог не закрываем).
Если запустить проект со скинами вне среды и выбрать 1х1 – то показывается сообщение об ошибке и другие рисунки уже не отображаются (диалог не закрываем).
Примеры вложены.
AlfatesterParticipant'GydruS' wrote:З.З.Ы. Только что протестил то же самое на 7.25 – увы…
Разработчики так и не поправили ошибку.
По документации после ImageList_ReplaceIcon(Handle, i, NewIco) нужно удалать обьет
Причем иконки нужно удалать через DestroyIcon, а не DeleteObject
А то при каждом изменении вызывается процедура Change и мгновенно сьедаются все системные хендлы.
AlfatesterParticipantВ принципе разобрался.
В функции
procedure TsAlphaImageList.Change;
DeleteObject(Ico);
ImageList_ReplaceIcon(Handle, i, NewIco);
нужно заменить на
DestroyIcon(Ico);
ImageList_ReplaceIcon(Handle, i, NewIco);
DestroyIcon(NewIco);
Прошу внести изменения в код
AlfatesterParticipant'Support' wrote:Да, возможно еще раз залить файл?
Залил.
AlfatesterParticipantНайдены новые проблемы:
1. На английских системах (проверено на Win XP 64, Vista 64, Windowss 7 64) разделитель по умолчанию точка.
CurrencyEdit пропускает также и запятую, причем после ввода комы и цифры за нем, ранее введеное в контрол число перемножается на 100.
2. На всех системах.
Если ограничить диапазон через MinValue := 2, MaxValue := 10000.
Контрол все равно пропускает знак минус.
И если ввести минус и выйти из контрола через ТАБ, контрол возвращает отрицательное значение.
AlfatesterParticipantВ новой версии 7.07 после открытия диалога возникает ошибка StackOverflow.
AlfatesterParticipant'Support' wrote:Есть мерцание? Можно посмотреть?
Уже нет.
Это у меня дополнительный класс на старом коде был.
AlfatesterParticipantВ 7.05 еще есть.
Лучше пока откатайте назад, когда просто недорисовывался тулбар.
AlfatesterParticipantЕще один баг в 7.05:
Включена DoubleBuffered и нарисованы иконки.
Если переключиться на другое окно в системе и назад, то иконки исчезают, остается только одна активная.
AlfatesterParticipantДа.
Перезалил.
AlfatesterParticipantQUOTE (Astii @ Jan 22 2010, 09:28 AM) <{POST_SNAPBACK}>А изначально была такая же ошибка как у меня?Ошибки с floating point не было.
AlfatesterParticipantQUOTE (Support @ Jan 26 2010, 09:21 AM) <{POST_SNAPBACK}>Тогда будут сложности с определением – в каком скине нужно поворачивать, а в каком не нужно…
Может лучше поменять секцию на PANEL, например?Не совсем то 🙁
Я думаю, более правильно было бы реализовать поддержку свойства GradientDirection, чтобы изменять направление градиента для тулбаров и панелек.AlfatesterParticipantQUOTE (Astii @ Jan 21 2010, 10:14 AM) <{POST_SNAPBACK}>Попробовал применить, а у меня ошибки в этом диалоге. Просто положил на форму компонент, запустил и…
Кнопка “превью” не скинится + время от времени при навигации по папкам ошибка выпрыгивает.
Никто не нарывался на это? Может что-то для этого диалога нужно включить выключить?
srStdDialogs стоит в true.У меня переписан на основе копии ImageOpenDialog и подкорректирован вручную.
AlfatesterParticipantНашел решение:
Нужно создать новый класс диалога.
CODEДобавить:
procedure TExOpenPictureDialog.SetThumbsViewMode;
var
ListViewParentHandle, ListViewHandle: HWND;
const
ODM_VIEW_THUMBS = $702d;
begin
ListViewParentHandle := GetDlgItem(GetParent(Handle), lst2);
if (ListViewParentHandle <> 0) then
begin
SendMessage(ListViewParentHandle, WM_COMMAND, ODM_VIEW_THUMBS, 0);
// ListViewHandle := GetDlgItem(ListViewParentHandle, 1);
end;
end;В DoShow
PostMessage(Handle, MYWM_POSTINIT, 0, 0);В интерфейс
const
MYWM_POSTINIT = WM_USER + 1;В класс диалога
procedure MYWMPostInit(var Message: TMessage); message MYWM_POSTINIT;procedure TExOpenPictureDialog.MYWMPostInit(var Message: TMessage);
begin
SetThumbsViewMode;
end;Детально здесь:
http://msdn.microsoft.com/ru-ru/magazine/c…n-us).aspx#fig2AlfatesterParticipantQUOTE (Support @ Jan 14 2010, 11:47 AM) <{POST_SNAPBACK}>Нужно в скине добавить еще одну секцию, где будет определен вертикальный градиент.Не совсем понял что значить добавить секцию в скине.
Это нужно редактировать каждый файл скина и добавлять градиент?А может можно повернуть градиент горизонтального тулбара?
AlfatesterParticipantQUOTE (Support @ Jan 10 2010, 01:30 PM) <{POST_SNAPBACK}>Можно как-то посмотреть на эту проблему в действии?К сожалению, сейчас показать проблему в действии не смогу.
-
AuthorPosts