+ Ответить в теме
Показано с 1 по 28 из 28
  1. #1
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,804
    Поблагодарили 232 раз(а) в 205 сообщениях

    ТаскБар (NEW)

    Исходный код

    Реализовано
    1) Информативные заглушки (try\catch)
    2) Загрузка картинок в кнопки
    3) Отлов нажатие кнопок (колбэк теперь содержит ссылку на свой класс, и свой колбэк на класс)
    4) ООП

    Ознакомиться с

    Многие функции не тестировал, но должны работать на 90 %

    Пример.
    Скрытый текст:
    PHP код:
    define('BtnPlus'1);
    define('BtnMinus'2);

    function 
    WinTaskbarCreate() {
        global 
    $Taskbar;
        
        try {
            
    $Taskbar = new TWinTaskbar();
            
    $Taskbar->ProgressState TBPF_INDETERMINATE;
            
    $Taskbar->OnWMCommand 'OnWMCommand';
            

            
    $BaseThumbButton = new TThumbButtonArray;

            
    $BtnPlus = new TThumbButton;
            
    $BtnPlus->iId BtnPlus;
            
    $BtnPlus->dwMask THB_ICON THB_TOOLTIP THB_FLAGS;
            
    $BtnPlus->dwFlags =  THBF_ENABLED ;
            
    $BtnPlus->szTip 'Плюс';
            
    $BtnPlus->Icon 'plus.ico';

            
    $BtnMinus = new TThumbButton;
            
    $BtnMinus->iId BtnMinus;
            
    $BtnMinus->dwMask THB_ICON THB_TOOLTIP THB_FLAGS;
            
    $BtnMinus->dwFlags =  THBF_ENABLED ;
            
    $BtnMinus->szTip 'Минус';
            
    $BtnMinus->Icon 'Minus.ico';
            
            
    $BaseThumbButton->add($BtnMinus$BtnPlus);
            
            
    $Taskbar->ThumbBarAddButtons($BaseThumbButton);
        } catch (
    TWinTaskBarException $e) {
            
    messageDlg($e->getMessage(), mtErrorMB_OK);
        }
    }

    function 
    OnWMCommand($Self$wParam) {
        switch(
    $wParam) {
            case 
    BtnPlus:
                if(
    $Self->position $Self->MaxPosition) {
                    
    $Self->Position += 25;
                } else {
                    
    pre$Self->Position );
                }
                
    c("Form1")->caption $Self->Position;
                
    c("combobox1")->items->selected $Self->ProgressStateText;
            break;
            case 
    BtnMinus:
                if(
    $Self->position 0) {
                    
    $Self->Position -= 25;
                } else {
                    
    pre$Self->Position );
                }
                
    c("Form1")->caption $Self->Position;
                
                
    c("combobox1")->items->selected $Self->ProgressStateText;
            break;
        }




    Установка
    Распаковываем содержимое архива Taskbar.zip в папку с Devel Studio 3.0

    - Пример в архиве, папка Taskbar ->

    Пишем что не работает!
    Миниатюры Нажмите на изображение для увеличения
Название: Снимок экрана (69).png
Просмотров: 585
Размер:	21.4 Кб
ID:	3592   Нажмите на изображение для увеличения
Название: Снимок экрана (71).png
Просмотров: 347
Размер:	16.3 Кб
ID:	3593  
    Вложения
    Последний раз редактировалось Няшик; 14.03.2017 в 00:56.

  2. Пользователь сказал cпасибо:

    akper (27.02.2016)

  3. #2
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,804
    Поблагодарили 232 раз(а) в 205 сообщениях
    Если кто - то захочет себе сломать мозг, решив его последней жидкости. Может попробовать написать компонент для среды
    Скрытый текст:
    У меня не получилось, из за того что из среды постоянно валились ошибки - access violation at address....

  4. #3
    Аватар для akper akper Вообще от рук отбился Постоялец
    Сообщений
    864
    Поблагодарили 72 раз(а) в 61 сообщениях
    Цитата Сообщение от Няшик Посмотреть сообщение
    Если кто - то захочет себе сломать мозг, решив его последней жидкости. Может попробовать написать компонент для среды
    Скрытый текст:
    У меня не получилось, из за того что из среды постоянно валились ошибки - access violation at address....
    знакомая ситуация)
    Наша группа Unfolnt
    Вторая моя группа exLune

  5. #4
    Аватар для Mr.Time Mr.Time На пути к лучшему Постоялец
    Сообщений
    768
    Поблагодарили 25 раз(а) в 20 сообщениях
    Цитата Сообщение от Няшик Посмотреть сообщение
    Если кто - то захочет себе сломать мозг, решив его последней жидкости. Может попробовать написать компонент для среды
    Скрытый текст:
    У меня не получилось, из за того что из среды постоянно валились ошибки - access violation at address....
    Я попробую

  6. #5
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,804
    Поблагодарили 232 раз(а) в 205 сообщениях
    Смотрю мало просмотров. Это наверно оставила плохой след прошлая реализация.
    Нет, не беспокойтесь, от прошлого мало чего осталось, класс достаточно тестировался, и дорабатывался,и было внесено много фич и дополнений, вроде свойств

    Position (Получает, или устанавливает, текущую позицию, контролируя - переполнения, исходя из свойства MaxPosition)
    Скрытый текст:
    PHP код:
    $Taskbar->Position10// Заполнить позицию прогресс бара на 10 процентов из MaxPosition 


    MaxPosition (Получает, или устанавливает, максимальную позицию, на которую сможет заполниться программ бар)
    Скрытый текст:
    PHP код:
    $Taskbar->MaxPosition 25// Установим максимальную позицию, на которую сможет заполниться программ бар 


    ProgressState (Получает, или устанавливает, Текущее состояние визуального отображения)
    Скрытый текст:
    PHP код:
    $Taskbar->ProgressState TBPF_INDETERMINATE// Установим прогресс отображения, на неопределенными пределами заполнения
    ...
    $State $Taskbar->ProgressState// Получим значение, установленное ранее, в формате INT 


    ProgressStateText(Получает, или устанавливает, текущее состояние визуального отображения, в формате string)
    Скрытый текст:
    PHP код:
    $Taskbar->ProgressStateText'TBPF_INDETERMINATE'// Установим прогресс отображения, на неопределенными пределами заполнения
    ...
    $State $Taskbar->ProgressStateText// Получим значение, установленное ранее, в формате string 


    ApplicationHandle (Получает, или устанавливает, идентификатор окна, с которым происходят манипуляции (или получает текущего окна, в котором произошёл вызов) )
    Скрытый текст:
    PHP код:
    $Taskbar->ApplicationHandle application_prop('handle'null); // Установим, дескриптор окна
    ...
    $State $Taskbar->ApplicationHandle // Получим, установленный ранее дескриптор окна (или получим текущего окна, в котором произошёл вызов) 


    OnWMcommand (Устанавливает колбэк, который будет реагировать на нажатие кнопок в ТаскБаре) (Установка в null или в пустую строку, удалит установку колбэка, всё остальное попробует переназначить)
    Скрытый текст:
    PHP код:
     /* Колбэк можно установить в формате ' [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'  соответствующего нормативам имени функции из PHP */

    /* Не правильно, будет вызвано исключение  TWinTaskBarException */
    $Taskbar->OnWMCommand '434callback';

    /* Не правильно, будет вызвано исключение  TWinTaskBarException */
    $Taskbar->OnWMCommand 23;

    /* Не правильно, будет вызвано исключение  TWinTaskBarException */
    $Taskbar->OnWMCommand = array();

    /*  ПРАВИЛЬНО */
    $Taskbar->OnWMCommand 'callback'


    Если, что - то пошло не так, будет вызвано исключение.
    Рекомендательно - рекомендую, использовать конструкцию try\catch


    LastError (Получает, текущую ошибку (Работает автономно, в try\catch) )
    Скрытый текст:
    PHP код:
    $Error $Taskbar->LastError


    Помимо этого, присутствует ещё целый букет функций, как аналого перечисленный выше, так и разновидный

    TBInitialize() - BOOL : Был ли нормально создана работа с ТаскБаром
    SetApplicationHandle($ApplicationHandle) - BOOL : Устанавливает идентификатор окна, с которым происходят манипуляции
    OnWMCommand($CallBackName) - BOOL : Смотреть описание свойства OnWMcommand
    OnWMCommandUnregister() - BOOL : Отменить регистрацию колбэка (Смотреть описание свойства OnWMcommand)
    ActivateTab($AHwnd) - BOOL : ...
    AddTab($AHwnd) - BOOL : ...
    DeleteTab($AHwnd) - BOOL : ...
    SetActiveAlt($AHwnd) - BOOL : ...
    MarkFullscreenWindow($AHwnd, $AFullscreen) - BOOL : ...
    RegisterTab($ATabHandle) - BOOL : ...
    SetOverlayIcon($AIcon, $ADescription) - BOOL : ... (не работает второй аргумент, из за того что не используется. Использует - смотреть описание свойства : ApplicationHandle)
    SetProgressState($AState) - BOOL : Смотреть описание свойства ProgressState
    SetProgressValue($ACompleted, $ATotal) - BOOL : Устанавливает текущую позицию из * Смотреть описание свойства Position
    SetTabActive($AHwndTab) - BOOL : ...
    SetTabOrder($AHwndTab, $AHwndInsertBefore = 0) - BOOL : ...
    SetTabProperties($AHwndTab, $AStpFlags) - BOOL : ...
    UnregisterTab($AHwndTab) - BOOL : ...
    SetThumbnailClip(TRect $AClipRect) - BOOL : ...
    ClearThumbnailClip() - BOOL : ...
    SetThumbnailTooltip($ATip) - BOOL :
    ClearThumbnailTooltip() - BOOL : ...
    ThumbBarAddButtons(TThumbButtonArray $AButtonList) - BOOL : Устанавливает кнопки
    ThumbBarUpdateButtons(TThumbButtonArray $AButtonList) - BOOL : Обновляет кнопки
    ThumbBarSetImageList($AImageList) - BOOL : ... (Нет смысла использовать)
    LastError() - BOOL : Смотреть описание свойства LastError
    MainWindow($handle = null) - BOOL : Смотреть описание свойства ApplicationHandle


    Описание с "..." не было проведено тестирование Кто хочет, может помочь

    Если, что - то пошло не так, будет вызвано исключение.
    Рекомендательно - рекомендую, использовать конструкцию try\catch



    Так - же, расположись несколько классов TThumbButtonArray и TWinTaskBar которые служат информативным списком кнопок для прогресс бара


    Class TThumbButtonArray
    add(TThumbButton $elm1, ...); - BOOL : Добавляет от одной, до 7 классовых кнопок
    Rem($idx) - BOOL : Удаляет классовую кнопку, по заданному индексу
    GetElm($idx) - BOOL\TThumbButton : Получает классовую кнопку, по заданному индексу

    Class TThumbButton
    Имеет свойства такие как
    dwMask - int : Маска отображения
    iId - int : Идентификатор кнопки
    Icon - string : Путь до иконки
    dwFlags - int : ...



    На этом пока что всё.

  7. #6
    Аватар для Alan_wake Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Постоялец
    Сообщений
    946
    Поблагодарили 9 раз(а) в 9 сообщениях
    Скрытый текст:
    Position[/COLOR] (Получает, или устанавливает, текущую позицию, контролируя - переполнения, исходя из свойства MaxPosition)
    Скрытый текст:
    PHP код:
    $Taskbar->Position10// Заполнить позицию прогресс бара на 10 процентов из MaxPosition 


    MaxPosition (Получает, или устанавливает, максимальную позицию, на которую сможет заполниться программ бар)
    Скрытый текст:
    PHP код:
    $Taskbar->MaxPosition 25// Установим максимальную позицию, на которую сможет заполниться программ бар 


    ProgressState (Получает, или устанавливает, Текущее состояние визуального отображения)
    Скрытый текст:
    PHP код:
    $Taskbar->ProgressState TBPF_INDETERMINATE// Установим прогресс отображения, на неопределенными пределами заполнения
    ...
    $State $Taskbar->ProgressState// Получим значение, установленное ранее, в формате INT 


    ProgressStateText(Получает, или устанавливает, текущее состояние визуального отображения, в формате string)
    Скрытый текст:
    PHP код:
    $Taskbar->ProgressStateText'TBPF_INDETERMINATE'// Установим прогресс отображения, на неопределенными пределами заполнения
    ...
    $State $Taskbar->ProgressStateText// Получим значение, установленное ранее, в формате string 


    ApplicationHandle (Получает, или устанавливает, идентификатор окна, с которым происходят манипуляции (или получает текущего окна, в котором произошёл вызов) )
    Скрытый текст:
    PHP код:
    $Taskbar->ApplicationHandle application_prop('handle'null); // Установим, дескриптор окна
    ...
    $State $Taskbar->ApplicationHandle // Получим, установленный ранее дескриптор окна (или получим текущего окна, в котором произошёл вызов) 


    OnWMcommand (Устанавливает колбэк, который будет реагировать на нажатие кнопок в ТаскБаре) (Установка в null или в пустую строку, удалит установку колбэка, всё остальное попробует переназначить)
    Скрытый текст:
    PHP код:
     /* Колбэк можно установить в формате ' [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'  соответствующего нормативам имени функции из PHP */

    /* Не правильно, будет вызвано исключение  TWinTaskBarException */
    $Taskbar->OnWMCommand '434callback';

    /* Не правильно, будет вызвано исключение  TWinTaskBarException */
    $Taskbar->OnWMCommand 23;

    /* Не правильно, будет вызвано исключение  TWinTaskBarException */
    $Taskbar->OnWMCommand = array();

    /*  ПРАВИЛЬНО */
    $Taskbar->OnWMCommand 'callback'


    Если, что - то пошло не так, будет вызвано исключение.
    Рекомендательно - рекомендую, использовать конструкцию try\catch


    LastError (Получает, текущую ошибку (Работает автономно, в try\catch) )
    Скрытый текст:
    PHP код:
    $Error $Taskbar->LastError


    Помимо этого, присутствует ещё целый букет функций, как аналого перечисленный выше, так и разновидный

    TBInitialize() - BOOL : Был ли нормально создана работа с ТаскБаром
    SetApplicationHandle($ApplicationHandle) - BOOL : Устанавливает идентификатор окна, с которым происходят манипуляции
    OnWMCommand($CallBackName) - BOOL : Смотреть описание свойства OnWMcommand
    OnWMCommandUnregister() - BOOL : Отменить регистрацию колбэка (Смотреть описание свойства OnWMcommand)
    ActivateTab($AHwnd) - BOOL : ...
    AddTab($AHwnd) - BOOL : ...
    DeleteTab($AHwnd) - BOOL : ...
    SetActiveAlt($AHwnd) - BOOL : ...
    MarkFullscreenWindow($AHwnd, $AFullscreen) - BOOL : ...
    RegisterTab($ATabHandle) - BOOL : ...
    SetOverlayIcon($AIcon, $ADescription) - BOOL : ... (не работает второй аргумент, из за того что не используется. Использует - смотреть описание свойства : ApplicationHandle)
    SetProgressState($AState) - BOOL : Смотреть описание свойства ProgressState
    SetProgressValue($ACompleted, $ATotal) - BOOL : Устанавливает текущую позицию из * Смотреть описание свойства Position
    SetTabActive($AHwndTab) - BOOL : ...
    SetTabOrder($AHwndTab, $AHwndInsertBefore = 0) - BOOL : ...
    SetTabProperties($AHwndTab, $AStpFlags) - BOOL : ...
    UnregisterTab($AHwndTab) - BOOL : ...
    SetThumbnailClip(TRect $AClipRect) - BOOL : ...
    ClearThumbnailClip() - BOOL : ...
    SetThumbnailTooltip($ATip) - BOOL :
    ClearThumbnailTooltip() - BOOL : ...
    ThumbBarAddButtons(TThumbButtonArray $AButtonList) - BOOL : Устанавливает кнопки
    ThumbBarUpdateButtons(TThumbButtonArray $AButtonList) - BOOL : Обновляет кнопки
    ThumbBarSetImageList($AImageList) - BOOL : ... (Нет смысла использовать)
    LastError() - BOOL : Смотреть описание свойства LastError
    MainWindow($handle = null) - BOOL : Смотреть описание свойства ApplicationHandle


    Описание с "..." не было проведено тестирование Кто хочет, может помочь

    Если, что - то пошло не так, будет вызвано исключение.
    Рекомендательно - рекомендую, использовать конструкцию try\catch



    Так - же, расположись несколько классов TThumbButtonArray и TWinTaskBar которые служат информативным списком кнопок для прогресс бара


    Class TThumbButtonArray
    add(TThumbButton $elm1, ...); - BOOL : Добавляет от одной, до 7 классовых кнопок
    Rem($idx) - BOOL : Удаляет классовую кнопку, по заданному индексу
    GetElm($idx) - BOOL\TThumbButton : Получает классовую кнопку, по заданному индексу

    Class TThumbButton
    Имеет свойства такие как
    dwMask - int : Маска отображения
    iId - int : Идентификатор кнопки
    Icon - string : Путь до иконки
    dwFlags - int : ...



    На этом пока что всё.[/QUOTE]"][/QUOTE]


    Отлично)))
    Вот-вот вчера сидел, разбирал твой класс, так вот.. Разобрать то я разобрал, почти все, есть несколько вопросов на счет конструкций, так-же на счет констант. А так отличная работа молодец.
    Последний раз редактировалось Alan_wake; 27.02.2016 в 15:07.

  8. #7
    Аватар для akper akper Вообще от рук отбился Постоялец
    Сообщений
    864
    Поблагодарили 72 раз(а) в 61 сообщениях
    Прости что засорил ту тему
    Наша группа Unfolnt
    Вторая моя группа exLune

  9. #8
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,804
    Поблагодарили 232 раз(а) в 205 сообщениях

  10. #9
    Аватар для akper akper Вообще от рук отбился Постоялец
    Сообщений
    864
    Поблагодарили 72 раз(а) в 61 сообщениях
    Зачем все это писать на Delphi, когда можно спокойно расписать тоже самое на плюсах? Тем более так проще
    Наша группа Unfolnt
    Вторая моя группа exLune

  11. #10
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,804
    Поблагодарили 232 раз(а) в 205 сообщениях
    Цитата Сообщение от akper Посмотреть сообщение
    Прости что засорил ту тему
    Пишу на том, что больше люблю. А если не любить ? То и писать нет смысла.

  12. #11
    Аватар для akper akper Вообще от рук отбился Постоялец
    Сообщений
    864
    Поблагодарили 72 раз(а) в 61 сообщениях
    Цитата Сообщение от Няшик Посмотреть сообщение
    Пишу на том, что больше люблю. А если не любить ? То и писать нет смысла.
    Ну писать на delphi как-то Бя.. Ну это твое дело...
    Наша группа Unfolnt
    Вторая моя группа exLune

  13. #12
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,804
    Поблагодарили 232 раз(а) в 205 сообщениях
    Цитата Сообщение от akper Посмотреть сообщение
    Ну писать на delphi как-то Бя.. Ну это твое дело...
    Нет никакого бя. Есть люди, которые бякают.

    А на паскале можно в восемь раз быстрее разработать что либо. Тем более в Delphi для этого есть дебаггер, дабы долго не думать.

  14. #13
    Аватар для akper akper Вообще от рук отбился Постоялец
    Сообщений
    864
    Поблагодарили 72 раз(а) в 61 сообщениях
    Цитата Сообщение от Няшик Посмотреть сообщение
    Нет никакого бя. Есть люди, которые бякают.

    А на паскале можно в восемь раз быстрее разработать что либо. Тем более в Delphi для этого есть дебаггер, дабы долго не думать.
    Может он и очень быстрый, но он уже слишком устарел. Про синтаксис вообще молчу... Он не читаем вообще
    Последний раз редактировалось akper; 14.03.2017 в 02:56.
    Наша группа Unfolnt
    Вторая моя группа exLune

  15. #14
    Аватар для Mikhail Mikhail На пути к лучшему Дорогой гость
    Сообщений
    1,148
    Поблагодарили 110 раз(а) в 102 сообщениях
    Цитата Сообщение от akper Посмотреть сообщение
    Может он и очень быстрый, но он уже слишком устарел. Про синтаксис вообще молчу... Он не читаем вообще
    ну это как посмотреть, просто кто-то уже привык к какому-то языку, и ему другие кажутся удручающими своим синтаксисом.
    Are you can watch from a window.

  16. #15
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,804
    Поблагодарили 232 раз(а) в 205 сообщениях
    Цитата Сообщение от akper Посмотреть сообщение
    Может он и очень быстрый, но он уже слишком устарел. Про синтаксис вообще молчу... Он не читаем вообще
    Он не устарел. Он призираем из за того, что в школе нубов им пичкают. А они орут - код не читаемый! Ой - устарел! Ой *****. Ой он бя.
    И конечно же таким людям ничего не надо. Не c++ не Delphi вот только их слова и другие подхватывают вроде тебя.

    И конечно же всё там читаем (приведи пример что нет)

    А вот я могу привести куча примеров на C\C++ где код вообще не читаем без иди. Так как указывает на макрос ?? (Чё.. А может это функции) И другие непонятные штуки

  17. #16
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,804
    Поблагодарили 232 раз(а) в 205 сообщениях
    Цитата Сообщение от Mikhail Посмотреть сообщение
    ну это как посмотреть, просто кто-то уже привык к какому-то языку, и ему другие кажутся удручающими своим синтаксисом.
    Именно. Зачем, зачем - то гнаться? Если и это прекрасно пашет. Компиляция не по 40 минут, какого нибудь проекта крупного и.т.д.

  18. #17
    Аватар для akper akper Вообще от рук отбился Постоялец
    Сообщений
    864
    Поблагодарили 72 раз(а) в 61 сообщениях
    Цитата Сообщение от Няшик Посмотреть сообщение
    Не c++ не Delphi вот только их слова и другие подхватывают вроде тебя
    Я ведь не просто так это говорю... В школе у меня не было информатики, так что никто не заставлял его учить, но хотел выучить паскаль, пытался.. Потом к черту послал, мне только из-за одного синтаксиса все взбесило.
    Цитата Сообщение от Няшик Посмотреть сообщение
    И конечно же всё там читаем (приведи пример что нет)
    Я могу привести пример, но ты то язык хорошо знаешь и он тебе не покажется, не читаемым.
    В чем разница между другими языками, например, для меня питон был понятнее, чем паскаль и его было изучить.

    Конечно, по себе людей не судят, кому-то может и легче изучить паскаль

    Цитата Сообщение от Mikhail Посмотреть сообщение
    ну это как посмотреть, просто кто-то уже привык к какому-то языку, и ему другие кажутся удручающими своим синтаксисом.
    Не согласился бы, т.к. я могу открыть любой другой язык и попытаться выучить и мне это не составит труда. Просто почти у каждого языка есть свои недостатки, из-за которых не хочется с ним возиться
    Последний раз редактировалось akper; 14.03.2017 в 12:12.
    Наша группа Unfolnt
    Вторая моя группа exLune

  19. #18
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,804
    Поблагодарили 232 раз(а) в 205 сообщениях
    Цитата Сообщение от akper Посмотреть сообщение
    не только из-за одного синтаксиса все взбесило.
    Ну. Из 7 языков включая Delphi (c\c++\delphi\lua\php\c#) на которых я программировал. Delphi - ничем по синтаксису не сложен.

    Я даже хотел пример привести какого нибудь кода Delphi.. Но, я даже и не нашёл "сложный" что бы заставил задуматься.. А что это тут?... Хотя перерыл пару uses'ов эмбаркадеро

  20. #19
    Аватар для akper akper Вообще от рук отбился Постоялец
    Сообщений
    864
    Поблагодарили 72 раз(а) в 61 сообщениях
    Цитата Сообщение от Няшик Посмотреть сообщение
    Я даже хотел пример привести какого нибудь кода Delphi.. Но, я даже и не нашёл "сложный" что бы заставил задуматься.. А что это тут?... Хотя перерыл пару uses'ов эмбаркадеро
    Цитата Сообщение от akper Посмотреть сообщение
    но ты то язык хорошо знаешь и он тебе не покажется, не читаемым.
    О чем я и говорю
    Наша группа Unfolnt
    Вторая моя группа exLune

  21. #20
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,804
    Поблагодарили 232 раз(а) в 205 сообщениях
    Цитата Сообщение от akper Посмотреть сообщение
    О чем я и говорю
    А приведи пример (Сложного кода\непонятного) для тебя

  22. #21
    Аватар для Егор-лсу Егор-лсу Не известно кто Бывалый путешественник
    Сообщений
    644
    Поблагодарили 24 раз(а) в 22 сообщениях
    При использовании TrayIcon и минимизации в трей, после восстановления формы нет прогресс бара
    PHP код:
    global $Taskbar,$app;
    if(!
    $Taskbar){
    $Taskbar = new TWinTaskbar;
    $Taskbar->SetProgressState0x2); 
    }
    $Taskbar->ApplicationHandle application_prop$app[a]->handlenull);
    $Taskbar->SetProgressValue(50100); 
    $app[a] - объект форма

    И это пробовал:
    Скрытый текст:
    $Taskbar->ApplicationHandle = application_prop( $app[a]->handle, null);
    $Taskbar->ApplicationHandle = $app[a]->handle;
    $Taskbar->ApplicationHandle = application_prop( $APPLICATION>handle, null);
    Последний раз редактировалось Егор-лсу; 29.12.2017 в 06:38.
    Егор'ыч

  23. #22
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,804
    Поблагодарили 232 раз(а) в 205 сообщениях
    На кнопку свернуть

    PHP код:
    global $Taskbar$OldPos;
    $OldPos $Taskbar->Position;
     
    c("Form1")->hide(); 
    На трей иконку клик
    PHP код:
    c("Form1")->show();

    setTimeout(50,'global $Taskbar, $OldPos; $Taskbar->Position = $OldPos;'); 

  24. #23
    Аватар для Егор-лсу Егор-лсу Не известно кто Бывалый путешественник
    Сообщений
    644
    Поблагодарили 24 раз(а) в 22 сообщениях
    Если использовать функцию
    PHP код:
    LoadForm(); 
    или
    PHP код:
     c(Form)->Show(); c(OldForm)->hide(); 
    то нельзя больше создать таскбар

    Как вручную присвоить форме?

    (я не создавал объект до перехода)
    Последний раз редактировалось Егор-лсу; 12.03.2018 в 16:27.
    Егор'ыч

  25. #24
    Аватар для PiEy PiEy Очень опасный тип PiEy Очень опасный тип PiEy Очень опасный тип Путешественник
    Сообщений
    404
    Поблагодарили 39 раз(а) в 39 сообщениях
    Наверное сначала старый поток надо закрыть

  26. #25
    Аватар для Егор-лсу Егор-лсу Не известно кто Бывалый путешественник
    Сообщений
    644
    Поблагодарили 24 раз(а) в 22 сообщениях
    Цитата Сообщение от PiEy Посмотреть сообщение
    Наверное сначала старый поток надо закрыть
    Я не вкурсе как реализирована функция LoadForm()
    Егор'ыч

  27. #26
    Аватар для Егор-лсу Егор-лсу Не известно кто Бывалый путешественник
    Сообщений
    644
    Поблагодарили 24 раз(а) в 22 сообщениях
    up
    Егор'ыч

  28. #27
    Аватар для Егор-лсу Егор-лсу Не известно кто Бывалый путешественник
    Сообщений
    644
    Поблагодарили 24 раз(а) в 22 сообщениях
    Разобрался. Очень де**льная ошибка. Охватывает Startapp, LoadForm и ещё чтот.

    Вот лечение:
    Скрытый текст:
    PHP код:
    function loadForm($name$mode LD_XY$IsTaskbar=0){

        if ( 
    sync(__FUNCTION__func_get_args()) ) return;
        global 
    $SCREEN$LOADER,$mainForm$mainFormName,$APPLICATION;

            
    $forms $SCREEN->formList();
            
    $aform $SCREEN->activeForm;

            if ( 
    is_string($name) )
                
    $form c($name);
            else if ( !
    $name->valid() )
                
    $form $LOADER->LoadForm($name->nameParam);
            else
                
    $form $name;

            if ( !
    $form || !$form->valid() ) return;

            if (
    $mode == LD_XY || $mode == LD_XYWH){

                
    $form->left  $aform->left;
                
    $form->top   $aform->top;
            }

            if (
    $mode == LD_XYWH){

                
    $form->width  $aform->width;
                
    $form->height $aform->height;
            }
            
    $title $GLOBALS['APPLICATION']->title;
            
    $APPLICATION->mainFormOnTaskBar $IsTaskbar;
            
    $LOADER->SetMainForm($form);
            
            foreach (
    $forms as $el){

                if (
    $el->self != $form->self)
                    
    $el->hide();
            }

            if(!
    $GLOBALS['tmpForm'])
                
    $GLOBALS['tmpForm'] = new TForm;
            
    gui_formSetMain($GLOBALS['tmpForm']->self);
            
    $mainForm->hide();
            
    $mainForm $form;
            
    $mainFormName $form->name;
            
    $mainForm->show();
            
    $GLOBALS['APPLICATION']->title $title;

    *внёс изменения*внёс изменения(21.03.18)

    Нужно заменить функцию в DevelStudio 3.0 beta\system\modules\litecommand.php или дать новой функции иное название.
    Последний раз редактировалось Егор-лсу; 21.03.2018 в 12:48.
    Егор'ыч

  29. #28
    Аватар для Егор-лсу Егор-лсу Не известно кто Бывалый путешественник
    Сообщений
    644
    Поблагодарили 24 раз(а) в 22 сообщениях
    метод $app['Taskbar']->SetProgressValue при частом использовании расходует ресурсы системы. программа не отвечает. (окно отвечает, а действия не происходят)

    я использовал:
    Скрытый текст:
    PHP код:
    global $app$y;
    if(!
    $app['Taskbar']){
        
    $app['Taskbar'] = new TWinTaskBar();
        
    $app['Taskbar']->ProgressState TBPF_INDETERMINATE;
    }else{
        if(!
    $y$app['Taskbar']->ProgressState TBPF_INDETERMINATE; else
        
    $app['Taskbar']->SetProgressValue( (int)t::c("EDM->progressall")->position, (int)t::c("EDM->progressall")->max);


    Последний раз редактировалось Егор-лсу; 20.03.2018 в 12:43.
    Егор'ыч

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения