Douglas Punch

Forum Replies Created

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • Douglas Punch
    Participant
    'Support' wrote:

    Спасибо за видео, я проверю это скоро.

    В версии 14.16 никаких изменений…

    Приложил видео…

    [attachment=9166:AC14_16_mp4.zip]

    in reply to: Продолжаем исследовать TsAlphaImageList #59070
    Douglas Punch
    Participant
    'Support' wrote:

    Когда кто-то читает данные из стрима, Position перемещается, поэтому при повторном чтении нужно его сбрасывать в 0.

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

    Но изменить это поведение TPNGObject все равно не смогу, если там что-то не так.

    Да это понятно – в исходниках TPNGObject видно что авторы ожидают нулевую позицию потока…

    Но, AC держит Position в значении Size…

    Может код АС после внутреннего пользования потока принудительно сам будет ставить Position в ноль…

    Я понимаю что это не обязательно, но так было бы логично, мне кажется…

    Douglas Punch
    Participant

    Релиз 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]

    Douglas Punch
    Participant

    Проблема решена в версии 14.4

    Вопрос закрыт…

    Douglas Punch
    Participant

    Также если в designtime добавить картинку в TsAlphaImageList, лежащий на форме, то он остаётся залоченным до закрытия среды…

    Попытки удалить файл пока среда открыта обречены на провал, а закрыл среду – пожалуйста – удаляется…

    in reply to: Вопрос по TsAlphaImageList #58931
    Douglas Punch
    Participant

    TsAlphaImageList с 3000 иконок с точки зрения быстродействия лучше…

    Ровно на процедуру выбора нужного ImageList (из 30-ти) и времени пересчёта индекса иконки…

    В конечном счёте это список и нет разницы во времени какой элемент списка выбирать…

    С точки зрения производительности Вашего компьютера разница – это наверное наносекунды или менее…

    Ваш вопрос лучше задавать в другом разделе:

    Остальное

    Вопросы, пожелания, советы, обсуждение…

    in reply to: Проблема в TsAlphaImageList #58852
    Douglas Punch
    Participant

    v14.3 Проблема TsAlphaImageList частично решена…

    Заработала функция AlphaImageList1->Delete(0)

    Если использовать её, то всё работает…

    AlphaImageList1->Items->Delete(0) работает неадекватно…

    Douglas Punch
    Participant
    '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…

    Douglas Punch
    Participant
    'Support' wrote:

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

    Старых файлов точно нет …

    Тщательно удаляю, т.к. в связи со свойством Count в TAlphaImageList приходится тусовать то 12 версию, то 13-ю…

    in reply to: Resource Screw not found. #55816
    Douglas Punch
    Participant

    Спасибо!

    Всё устанавливается – проблема решена в релизе 11.21 ….

    in reply to: С++ Header "sConst.hpp" #55271
    Douglas Punch
    Participant
    'Support' wrote:

    Для чего? Проблема с этой строкой?

    Прошу прощения!

    Внимательно посмотрел, в другом header были определены макосы b1 и b2 как номера битов…

    Изменение порядка хидеров решило проблему…

    Так же вот ещё предложение:

    В настройках проекта “acntCX10Berlin.bpl”

    на вкладке “C++ Linker” нужно поставить переключатель “Generate static package library (.lib)”

    иначе когда пользователь откажется от runtime компонентов проект не скомпилируется…

    Половина пользователей не разберётся с этой простой проблемой…

    В проекте “acntCX10Berlin_r.bpl” всё в порядке…

    Ещё в каталоге CX10Berlin лежит лишний файл: acDX10Berlin.groupproj (AC11.05)

    Спасибо…

    in reply to: С++ Header "sConst.hpp" #55260
    Douglas Punch
    Participant
    '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)

    in reply to: С++ Header "sConst.hpp" #55246
    Douglas Punch
    Participant
    'Support' wrote:

    Какая версия пакета? В последних релизах эта проблема должна быть уже решена.

    10.30

Viewing 13 posts - 1 through 13 (of 13 total)