Forum Replies Created
-
AuthorPosts
-
February 19, 2019 at 8:54 am in reply to: TsAlphaImageList функция Count() возвращает неправильное значение #59112Douglas PunchParticipant'Support' wrote:
Спасибо за видео, я проверю это скоро.
В версии 14.16 никаких изменений…
Приложил видео…
[attachment=9166:AC14_16_mp4.zip]
Douglas PunchParticipant'Support' wrote:Когда кто-то читает данные из стрима, Position перемещается, поэтому при повторном чтении нужно его сбрасывать в 0.
Не знаю как в TPNGObject сделано, возможно там не указывается с какой позиции начинать читать, позже посмотрю.
Но изменить это поведение TPNGObject все равно не смогу, если там что-то не так.
Да это понятно – в исходниках TPNGObject видно что авторы ожидают нулевую позицию потока…
Но, AC держит Position в значении Size…
Может код АС после внутреннего пользования потока принудительно сам будет ставить Position в ноль…
Я понимаю что это не обязательно, но так было бы логично, мне кажется…
January 30, 2019 at 6:40 pm in reply to: TsAlphaImageList функция Count() возвращает неправильное значение #59006Douglas PunchParticipantРелиз 14.4 решил только частично…
На форме TsAlphaImageList с 3-мя загруженными в design картинками…
Две кнопки – одна “?” – просто выводит результат вызова Count():
void __fastcall TForm2::ButtonAskClick(TObject *Sender)
{
ListBox1->Items->Add(“Кнопка ? : Count()=”+IntToStr(sAlphaImageList1->Count()));
}
Вторя – удаляет нулевую картинку и тоже выводит Count()
void __fastcall TForm2::ButtonDelClick(TObject *Sender)
{
if(!sAlphaImageList1->Count())return;
sAlphaImageList1->Items->Delete(0);
ListBox1->Items->Add(“Кнопка – : Delete 0”);
ListBox1->Items->Add(“Count()=”+IntToStr(sAlphaImageList1->Count()));
}
Приложена картинка из которой видно что после трёх удалений из sAlphaImageList1 там всё равно 3 картинки…
Картинки там и правда остаются…
Т.е. в какой-то момент после удаления последней картинки Count() вернул 0…
Но тут же картинки “восстали из пепла” и их стало столько же сколько было загружено в design time…
[attachment=9127:Image1.png]
January 30, 2019 at 6:31 pm in reply to: TsAlphaImageList TryLoadFromFile не закрывает файл загружаемой картинки #59005Douglas PunchParticipantПроблема решена в версии 14.4
Вопрос закрыт…
January 21, 2019 at 4:40 am in reply to: TsAlphaImageList TryLoadFromFile не закрывает файл загружаемой картинки #58933Douglas PunchParticipantТакже если в designtime добавить картинку в TsAlphaImageList, лежащий на форме, то он остаётся залоченным до закрытия среды…
Попытки удалить файл пока среда открыта обречены на провал, а закрыл среду – пожалуйста – удаляется…
Douglas PunchParticipantTsAlphaImageList с 3000 иконок с точки зрения быстродействия лучше…
Ровно на процедуру выбора нужного ImageList (из 30-ти) и времени пересчёта индекса иконки…
В конечном счёте это список и нет разницы во времени какой элемент списка выбирать…
С точки зрения производительности Вашего компьютера разница – это наверное наносекунды или менее…
Ваш вопрос лучше задавать в другом разделе:
Остальное
Вопросы, пожелания, советы, обсуждение…
Douglas PunchParticipantv14.3 Проблема TsAlphaImageList частично решена…
Заработала функция AlphaImageList1->Delete(0)
Если использовать её, то всё работает…
AlphaImageList1->Items->Delete(0) работает неадекватно…
September 18, 2018 at 4:44 pm in reply to: Не удалось использовать AlphaControls v14 в BCB2007 #58381Douglas PunchParticipant'Support' wrote:Могу подтвердить проблему с компиляцией в файле Sconst.hpp, но к сожалению, решения пока не могу найти.
Code:>>> Огромная просьба вернуть в TsAlphaImageList свойство Count…В студии XE8 и новее используется стандартное свойство Count.
В более старых версиях вынужденно была добавлена функция Count.
Как это влияет на компиляцию проекта? Есть проблемы?
Проверил версию 14.01 – Изменений нет,решил попытаться разобраться …
Чтобы Acnt 14 заработала в BCB2007 нужно:
1.В файле “sSkinManager.hpp”
в начало перенести определение TacSkinMode и TacSkinListData
например так (красным):
namespace Sskinmanager
{
#pragma option push -b-
enum TacSkinMode { smInternal, smExtPacked, smExtUnpacked };
#pragma option pop
#pragma pack(push,4)
struct TacSkinListData
{
public:
TacSkinMode skSkinMode;
int skImageIndex;
AnsiString skName;
} ;
#pragma pack(pop)
//– type declarations
struct TacSkinCommonInfo
{
…
Это нужно т.к. в оригинальном файле TacSkinListData используется до объявления…
2. В классе TacSkinData закоментировать строку (показано красным)
class PASCALIMPLEMENTATION TacSkinData : public Acnttypes::TacObject
…
//!!! Sstylesimply::TacIntSections __fastcall Sections();
…
Сообщение компилятора об ошибке такое:
[BCC32 Error] sSkinManager.hpp(1032): E2091 Functions cannot return arrays or functions
Поскольку это не виртуальная функция можно закомментировать (нельзя будет вызывать…)
3. В файле sConst.hpp закоментировать все определения на которые компилятор ругается:
//static const Shortint SM_CXPADDEDBORDER = 0x5c;
//static const Shortint BS_SPLITBUTTON = 0xc;
//static const Shortint BS_DEFSPLITBUTTON = 0xd;
//static const Shortint BS_COMMANDLINK = 0xe;
//static const Shortint BS_DEFCOMMANDLINK = 0xf;
Это я объяснить не могу…
После этого AlphaControls 14 работают…
По поводу TsAlphaImageList Count()
Просто есть большой проект который несколько человек разрабатывали и там из AlphaControls использовался только TAlphaImageList (из-за PNG)…
Некоторые разработчики пользуют древнейшие версии AC…
Наверное сработает вместо sAlphaImageList->Count()
следующее свойство sAlphaImageList->Items->Count
что решит проблему совместимости со старыми AC
Так что явную просьбу перевести Count() в Count снимаю..
Хотя логичнее иметь свойство, хотя бы из за похожести с TImageList…
September 9, 2018 at 12:50 pm in reply to: Не удалось использовать AlphaControls v14 в BCB2007 #58347Douglas PunchParticipant'Support' wrote:Попробую разобраться, но по некоторым ошибкам такое ощущение, что остались старые файлы которые могут конфликтовать.
Старых файлов точно нет …
Тщательно удаляю, т.к. в связи со свойством Count в TAlphaImageList приходится тусовать то 12 версию, то 13-ю…
Douglas PunchParticipantСпасибо!
Всё устанавливается – проблема решена в релизе 11.21 ….
Douglas PunchParticipant'Support' wrote:Для чего? Проблема с этой строкой?
Прошу прощения!
Внимательно посмотрел, в другом header были определены макосы b1 и b2 как номера битов…
Изменение порядка хидеров решило проблему…
Так же вот ещё предложение:
В настройках проекта “acntCX10Berlin.bpl”
на вкладке “C++ Linker” нужно поставить переключатель “Generate static package library (.lib)”
иначе когда пользователь откажется от runtime компонентов проект не скомпилируется…
Половина пользователей не разберётся с этой простой проблемой…
В проекте “acntCX10Berlin_r.bpl” всё в порядке…
Ещё в каталоге CX10Berlin лежит лишний файл: acDX10Berlin.groupproj (AC11.05)
Спасибо…
Douglas PunchParticipant'Support' wrote:Проблема решена в версии 11, скоро выйдет также 10.31, где это исправлено.
Так же требуется закоментировать:
//extern DELPHI_PACKAGE bool __fastcall iff(const bool L, const bool b1, const bool b2)/* overload */;
в файле acntUtils.hpp (BCB2007, XE8, CX10_1, + AC 11.04)
Douglas PunchParticipant'Support' wrote:Какая версия пакета? В последних релизах эта проблема должна быть уже решена.
10.30
-
AuthorPosts