Еще одна прога, при помощи которой можно сохранить содержимое экрана в KolibriOS:
http://maxxxx32.narod.ru/scrshoot.7z
Пока не поддерживается востановление окна после сворачивания. При сохранении используется 70-я функция. Файл сохраняется в формат bmp.
Кстати GUI компоненты: editbox, label, checkbox можно без труда добавить к любой другой программе. Мигание при перерисовке сведено к минимуму.
Screenshooter
-
Last edited by Maxxxx32 on Tue Jun 13, 2006 5:25 pm, edited 2 times in total.
Maxxxx32
Хорошая функциональность, мне понравилось. Стоит, однако, написать, что нужно вводить не только имя файла, а полный путь вместе с именем.
Предложение насчет editbox:
1) Нужна корректная обработка клавиш Home и End, чтобы курсор перемещался соответственно к началу и в конец.
2) Было бы хорошо, если бы курсор моргал, но это не обязательно, в принципе и так удачно.
Удачи.
Хорошая функциональность, мне понравилось. Стоит, однако, написать, что нужно вводить не только имя файла, а полный путь вместе с именем.
Предложение насчет editbox:
1) Нужна корректная обработка клавиш Home и End, чтобы курсор перемещался соответственно к началу и в конец.
2) Было бы хорошо, если бы курсор моргал, но это не обязательно, в принципе и так удачно.
Удачи.
Mario79
Сделал все, кроме моргания. Ссылка таже.
Моргание можно сделать, если у KolibriOS появится функция, которая будет выполнять какой-либо фрагмент кода за определенные промежутки времени.
Сделал все, кроме моргания. Ссылка таже.
Моргание можно сделать, если у KolibriOS появится функция, которая будет выполнять какой-либо фрагмент кода за определенные промежутки времени.
В Колибри нет таймеров?
При отсутствии моргания не тратится лишнего процессорного времени на моргание (да и размер кода уменьшается)...
Обновил программу:
1) теперь поддерживаются длинные имена файлов (используется 70-я функция вместо 58-ой);
2) теперь можно самому задавать время задержки;
3) поддерживается автонумерация файлов;
4) улучшена обработка мышки в editbox.
1) теперь поддерживаются длинные имена файлов (используется 70-я функция вместо 58-ой);
2) теперь можно самому задавать время задержки;
3) поддерживается автонумерация файлов;
4) улучшена обработка мышки в editbox.
Maxxxx32
Нужно написать текстовик к приложению. Я так и не смог запустить автосохранение с автонумерацией. Смог только одиночное сохранение с ручным вводом имени.
Нужно написать текстовик к приложению. Я так и не смог запустить автосохранение с автонумерацией. Смог только одиночное сохранение с ручным вводом имени.
Mario79
Добавил readme.txt
Имя файла не генерируется полностью, просто в том месте имени файла, где стоит знак "*" (без кавычек) этот знак будет заменен на номер, котрый автоматически увеличивается при каждом сохранении. Например, если написать так /hd0/1/*.bmp, на жесткий диск запишется файл 00.bmp.
Размер editbox уменьшен на 40 байт.
Добавил readme.txt
Имя файла не генерируется полностью, просто в том месте имени файла, где стоит знак "*" (без кавычек) этот знак будет заменен на номер, котрый автоматически увеличивается при каждом сохранении. Например, если написать так /hd0/1/*.bmp, на жесткий диск запишется файл 00.bmp.
Размер editbox уменьшен на 40 байт.
Last edited by Maxxxx32 on Tue Jun 13, 2006 5:43 pm, edited 1 time in total.
При сворачивании окно не перестает быть активным; если окно активно, функция активации окна его не восстанавливает. Единственное решение проблемы, которое я нашел, это сразу после сворачивания запускать "отвлекающий" поток, который дезактивирует главное окно.
Есть ли более красивое решение этой проблемы ?
Есть ли более красивое решение этой проблемы ?
Maxxxx32
Замечания насчет readme.txt
1) Обычно в нем написано кто автор;
2) Насчет имени в 264 символа, когда по стандарту FAT положено 260 символов, а в твоей программе можно ввести около 50 символов на весь путь. Где ты взял эту цифру?
3) Ctrl+PrintScrn - горячая клавиша. Не написано, какое действие она выполняет.
Теперь предложения по поводу программы:
1) Наверное, лучше сделать, чтобы, как только начал "фоткать", то вместо звездочки вставлялись цифры следующего сохраняемого файла.
2) Можно еще сделать режим полного автосохранения с параметром задержки между снимками. Потом можно будет из файлов сделать анимацию, но это так на будущее.
Не понял фразы:
Если я чего-то не так понял, то распиши максимально подробнее.
Если этот глюк проявился в эмуляторе, то это вина эмулятора, а не ядра.
Замечания насчет readme.txt
1) Обычно в нем написано кто автор;
2) Насчет имени в 264 символа, когда по стандарту FAT положено 260 символов, а в твоей программе можно ввести около 50 символов на весь путь. Где ты взял эту цифру?
3) Ctrl+PrintScrn - горячая клавиша. Не написано, какое действие она выполняет.
Теперь предложения по поводу программы:
1) Наверное, лучше сделать, чтобы, как только начал "фоткать", то вместо звездочки вставлялись цифры следующего сохраняемого файла.
2) Можно еще сделать режим полного автосохранения с параметром задержки между снимками. Потом можно будет из файлов сделать анимацию, но это так на будущее.
Не понял фразы:
Первый раз слышу о таком. Даже когда окно активно через панель проводится его насильственная активация с восстановлением всех исходных параметров. Посылается событие через mcall 18,3.При сворачивании окно не перестает быть активным; если окно активно, функция активации окна его не восстанавливает.
Если я чего-то не так понял, то распиши максимально подробнее.
Если этот глюк проявился в эмуляторе, то это вина эмулятора, а не ядра.
Не 50, а 255, хотя это тоже мало. Исправлю.в твоей программе можно ввести около 50 символов на весь путь
Программы я пишу и тестирую в самой KolibriOS, а не в эмуляторе. Насколько я знаю, панель активизирует (разворачивает) окно только при нажатии на кнопку на самой панели, в этот момент активным является окно именно панели, а не окно программы, окно программы успешно восстанавливается.Если я чего-то не так понял, то распиши максимально подробнее.
В моей программе функция восстановления окна сработает, если ты сделаешь активным другое окно, можешь проверить: поставь задержку так, чтобы ты успел выбрать другое окно, включи автосворачивание и автовосстановление, нажми кнопку "сделать снимок" и сразу выбери другое окно, функция автовосстановление сработает, но если ты не выберешь другое окно, то есть окно моей программы останется активным и в свернутом состоянии, 3 подфункция 18 функции не сработает.
Last edited by Maxxxx32 on Wed Jun 14, 2006 7:08 pm, edited 1 time in total.
Maxxxx32
Насчет mcall 18, 3 буду разбираться.
Извиняюсь, не знал, что можно вводить путь длинней, чем отображается на экране.Не 50, а 255, хотя это тоже мало. Исправлю.
Насчет mcall 18, 3 буду разбираться.
Maxxxx32
1) Если у тебя исходники ядра от К0530b2, то попробуй переставить строку:
mov [window_minimize],2
сразу после
cmp eax,3 ; ACTIVATE WINDOW
jnz nowindowactivate
2) Если у тебя ядро с SVN то вставь строку:
mov [window_minimize],2
сразу после
sysfn_activate: ; 18.3 = ACTIVATE WINDOW
В принципе должно помочь (если рассуждать логически), но я сам не проверял.
1) Если у тебя исходники ядра от К0530b2, то попробуй переставить строку:
mov [window_minimize],2
сразу после
cmp eax,3 ; ACTIVATE WINDOW
jnz nowindowactivate
2) Если у тебя ядро с SVN то вставь строку:
mov [window_minimize],2
сразу после
sysfn_activate: ; 18.3 = ACTIVATE WINDOW
В принципе должно помочь (если рассуждать логически), но я сам не проверял.
Mario79
Теперь работает, но после сворачивания необходима задержка, равная времени, необходимому для фотканья экрана + 1 секунда. Эту проблему можно решить на уровне приложения.
Теперь работает, но после сворачивания необходима задержка, равная времени, необходимому для фотканья экрана + 1 секунда. Эту проблему можно решить на уровне приложения.
Maxxxx32
Дело в том, что сворачивании и разворачивание, и вообще изменение размеров окна происходит не сразу, а после того, когда ядро, перебрав по кругу все потоки (в том числе и себя) и лишь потом изменяет, когда дойдет до нужного потока.
Дело в том, что сворачивании и разворачивание, и вообще изменение размеров окна происходит не сразу, а после того, когда ядро, перебрав по кругу все потоки (в том числе и себя) и лишь потом изменяет, когда дойдет до нужного потока.
Who is online
Users browsing this forum: No registered users and 1 guest