Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Jul 17, 2019 5:51 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 78 posts ]  Go to page 1 2 3 4 5 6 Next
Author Message
 Post subject: Screenshooter
PostPosted: Tue Jun 06, 2006 3:08 pm 
Еще одна прога, при помощи которой можно сохранить содержимое экрана в KolibriOS:
Image
http://maxxxx32.narod.ru/scrshoot.7z
Пока не поддерживается востановление окна после сворачивания. При сохранении используется 70-я функция. Файл сохраняется в формат bmp.
Кстати GUI компоненты: editbox, label, checkbox можно без труда добавить к любой другой программе. Мигание при перерисовке сведено к минимуму.


Last edited by Maxxxx32 on Tue Jun 13, 2006 5:25 pm, edited 2 times in total.

Top
   
 Post subject:
PostPosted: Tue Jun 06, 2006 6:36 pm 
Maxxxx32
Хорошая функциональность, мне понравилось. Стоит, однако, написать, что нужно вводить не только имя файла, а полный путь вместе с именем.
Предложение насчет editbox:
1) Нужна корректная обработка клавиш Home и End, чтобы курсор перемещался соответственно к началу и в конец.
2) Было бы хорошо, если бы курсор моргал, но это не обязательно, в принципе и так удачно.
Удачи.


Top
   
 Post subject:
PostPosted: Tue Jun 06, 2006 8:33 pm 
Mario79
Сделал все, кроме моргания. Ссылка таже.
Моргание можно сделать, если у KolibriOS появится функция, которая будет выполнять какой-либо фрагмент кода за определенные промежутки времени.


Top
   
 Post subject:
PostPosted: Tue Jun 06, 2006 9:18 pm 
Offline

Joined: Sat May 27, 2006 5:26 am
Posts: 100
В Колибри нет таймеров?


Top
   
 Post subject:
PostPosted: Wed Jun 07, 2006 10:50 am 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
При отсутствии моргания не тратится лишнего процессорного времени на моргание (да и размер кода уменьшается)...


Top
   
 Post subject:
PostPosted: Sat Jun 10, 2006 11:32 am 
Обновил программу:
1) теперь поддерживаются длинные имена файлов (используется 70-я функция вместо 58-ой);
2) теперь можно самому задавать время задержки;
3) поддерживается автонумерация файлов;
4) улучшена обработка мышки в editbox.


Top
   
 Post subject:
PostPosted: Sun Jun 11, 2006 8:49 pm 
Maxxxx32
Нужно написать текстовик к приложению. Я так и не смог запустить автосохранение с автонумерацией. Смог только одиночное сохранение с ручным вводом имени.


Top
   
 Post subject:
PostPosted: Tue Jun 13, 2006 12:04 pm 
Mario79
Добавил 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.

Top
   
 Post subject:
PostPosted: Tue Jun 13, 2006 5:31 pm 
При сворачивании окно не перестает быть активным; если окно активно, функция активации окна его не восстанавливает. Единственное решение проблемы, которое я нашел, это сразу после сворачивания запускать "отвлекающий" поток, который дезактивирует главное окно.
Есть ли более красивое решение этой проблемы ?


Top
   
 Post subject:
PostPosted: Tue Jun 13, 2006 7:03 pm 
Maxxxx32
Замечания насчет readme.txt
1) Обычно в нем написано кто автор;
2) Насчет имени в 264 символа, когда по стандарту FAT положено 260 символов, а в твоей программе можно ввести около 50 символов на весь путь. Где ты взял эту цифру?
3) Ctrl+PrintScrn - горячая клавиша. Не написано, какое действие она выполняет.

Теперь предложения по поводу программы:
1) Наверное, лучше сделать, чтобы, как только начал "фоткать", то вместо звездочки вставлялись цифры следующего сохраняемого файла.
2) Можно еще сделать режим полного автосохранения с параметром задержки между снимками. Потом можно будет из файлов сделать анимацию, но это так на будущее.

Не понял фразы:
Quote:
При сворачивании окно не перестает быть активным; если окно активно, функция активации окна его не восстанавливает.

Первый раз слышу о таком. Даже когда окно активно через панель проводится его насильственная активация с восстановлением всех исходных параметров. Посылается событие через mcall 18,3.
Если я чего-то не так понял, то распиши максимально подробнее.
Если этот глюк проявился в эмуляторе, то это вина эмулятора, а не ядра.


Top
   
 Post subject:
PostPosted: Wed Jun 14, 2006 1:16 pm 
Quote:
в твоей программе можно ввести около 50 символов на весь путь

Не 50, а 255, хотя это тоже мало. Исправлю.

Quote:
Если я чего-то не так понял, то распиши максимально подробнее.

Программы я пишу и тестирую в самой KolibriOS, а не в эмуляторе. Насколько я знаю, панель активизирует (разворачивает) окно только при нажатии на кнопку на самой панели, в этот момент активным является окно именно панели, а не окно программы, окно программы успешно восстанавливается.
В моей программе функция восстановления окна сработает, если ты сделаешь активным другое окно, можешь проверить: поставь задержку так, чтобы ты успел выбрать другое окно, включи автосворачивание и автовосстановление, нажми кнопку "сделать снимок" и сразу выбери другое окно, функция автовосстановление сработает, но если ты не выберешь другое окно, то есть окно моей программы останется активным и в свернутом состоянии, 3 подфункция 18 функции не сработает.


Last edited by Maxxxx32 on Wed Jun 14, 2006 7:08 pm, edited 1 time in total.

Top
   
 Post subject:
PostPosted: Wed Jun 14, 2006 5:51 pm 
Maxxxx32
Quote:
Не 50, а 255, хотя это тоже мало. Исправлю.

Извиняюсь, не знал, что можно вводить путь длинней, чем отображается на экране.
Насчет mcall 18, 3 буду разбираться.


Top
   
 Post subject:
PostPosted: Wed Jun 14, 2006 8:56 pm 
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
В принципе должно помочь (если рассуждать логически), но я сам не проверял.


Top
   
 Post subject:
PostPosted: Wed Jun 14, 2006 10:50 pm 
Mario79
Теперь работает, но после сворачивания необходима задержка, равная времени, необходимому для фотканья экрана + 1 секунда. Эту проблему можно решить на уровне приложения.


Top
   
 Post subject:
PostPosted: Thu Jun 15, 2006 11:50 am 
Maxxxx32
Дело в том, что сворачивании и разворачивание, и вообще изменение размеров окна происходит не сразу, а после того, когда ядро, перебрав по кругу все потоки (в том числе и себя) и лишь потом изменяет, когда дойдет до нужного потока.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 78 posts ]  Go to page 1 2 3 4 5 6 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited