Board.KolibriOS.org

Official KolibriOS board
It is currently Sat May 25, 2019 9:10 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 96 posts ]  Go to page Previous 1 2 3 4 57 Next
Author Message
PostPosted: Fri Dec 26, 2014 10:56 am 
Offline
User avatar

Joined: Fri Dec 12, 2014 7:19 pm
Posts: 60
Как можно реализовать прием сообщений только по отрисовке и закрытие окна, а нажатия кнопок клавиатуры и мыши игнорировались?

Хотя будет достаточно аналога из Delphi:
Code:
Application.ProcessMessages;

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


Top
   
PostPosted: Fri Dec 26, 2014 2:20 pm 
Offline

Joined: Wed May 18, 2005 7:27 pm
Posts: 1001
глянь
http://wiki.kolibrios.org/wiki/C/C%2B%2B_programming

case 2:
// key pressed, read it and ignore
_msys_get_key();
break;


Top
   
PostPosted: Fri Dec 26, 2014 2:54 pm 
Offline
Just Flooding
User avatar

Joined: Thu Dec 11, 2014 1:31 am
Posts: 173
Думаю он спрашивал не про нажатие кнопок, а про то накапливает ли KOS запросы на отрисовку GUI и если да, то как заставить её отрисовать всё сразу.

Spoiler: Show
Я тут не специалист и зарегистрировался только недавно, поэтому могу только предполагать. попробуй, прокатит ли такой трюк с аналогом Функции 12:
Code:
kos_WindowRedrawStatus(2), kos_WindowRedrawStatus(1);
// удаляет все определённые (функцией 8) кнопки,
// их можно определить повторно.
// Для этого удобно использовать отдельную функцию,
// чтобы не писать список кнопок заново.


Last edited by kiv on Tue Dec 30, 2014 3:56 am, edited 5 times in total.

Top
   
PostPosted: Fri Dec 26, 2014 3:45 pm 
Offline
User avatar

Joined: Fri Dec 12, 2014 7:19 pm
Posts: 60
я пытался делать через http://wiki.kolibrios.org/wiki/SysFn11/ru, но тут бесконечный цикл получается, по теории правильно.
Code:
void ProcessMessages()
{
   for(;;)
   {
      switch (kos_CheckForEvent())
      {
      case 0:
         return;
      case 1:
         draw_window();
         break;
      case 3:
         kos_ExitApp();
         break;
      }
   }
}

kos_CheckForEvent:
Code:
Dword kos_CheckForEvent()
{
   __asm{
      push 11
      pop eax
      int 0x40
   }
}


Top
   
PostPosted: Fri Dec 26, 2014 4:10 pm 
Offline
Just Flooding
User avatar

Joined: Thu Dec 11, 2014 1:31 am
Posts: 173
1. определяешь кнопку в следствии чего начинается очередная перерисовка
2. срабатывает case 1
3. в котором начинается очередная перерисовка
Так?


добавь запись в лог перед break и всё станет ясно


Last edited by kiv on Tue Dec 30, 2014 2:59 am, edited 3 times in total.

Top
   
PostPosted: Fri Dec 26, 2014 4:11 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1619
Если событие нажатия на клавишу было в очереди, то оно оттуда не уйдёт, пока не будет считано функцией 2. Если оно не нужно, можно его замаскировать функцией 40.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Sun Dec 28, 2014 9:47 pm 
Offline
User avatar

Joined: Fri Dec 12, 2014 7:19 pm
Posts: 60
После коммита авто-сборщик выдает ошибку. Почему может не создаваться "func.obj"? (исходники)
Code:
*  10% 1) [0.003s] build-rus/programs/games/LaserTank/trunk
tup error: Unable to create output file 'func.obj' because it is already owned by command 171664.
 - [171664] build-rus/programs/games/LaserTank/trunk/[cl /c /O2 /Os /Oy /GF /GS- /GR- /EHs-c- /fp:fast /GL /QIfist /Gr /arch:IA32 /DAUTOBUILD /DLANG=RUS /Fofunc.obj smalllibc/func.cpp >&2]
tup error [string "builtin"]:233: Failed to define rule.
stack traceback:
   [C]: in function 'definerule'
   [string "builtin"]:233: in function 'frule'
   [string "builtin"]:309: in function 'foreach_rule'
   [string "../../../use_msvc.lua"]:10: in function 'compile_msvc'
   [string "Tupfile.lua"]:12: in main chunk
 *** tup: 1 job failed.


Top
   
PostPosted: Sun Dec 28, 2014 11:10 pm 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
ZblCoder wrote:
После коммита авто-сборщик выдает ошибку. Почему может не создаваться "func.obj"?
Я вижу минимум 2 проблемы (возможно, есть что-то ещё, но это то, что я заметил, просто глянув на файлы):
  1. Несоответствие названия файла ...smalllibc/mcsmemm.h подключаемому в ...smalllibc/func.h
    Code:
    #include "MCSMEMM.H"
    Linux различает верхний и нижний регистр - для него MCSMEMM.H и mcsmemm.h - это 2 разных файла. Так что нужно либо файл переименовать на верхний регистр, либо в #include использовать нижний.
  2. В других примерах сборки MSVC на SVN я вижу в tupfile.lua в строчке "compile_msvc" включение только .cpp-файлов, тогда как ты включил и .h


Top
   
PostPosted: Sun Dec 28, 2014 11:25 pm 
Offline
User avatar

Joined: Fri Dec 12, 2014 7:19 pm
Posts: 60
1. Поменял в файле на нижний регистр, но ошибка та же (проверил в се файлы, больше мест нет).
2. Если без *.h файлов, то ошибок вообще тонна http://builds.kolibrios.org/logs/svn5280-err.txt


Top
   
PostPosted: Sun Dec 28, 2014 11:41 pm 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
ZblCoder wrote:
1. Поменял в файле на нижний регистр, но ошибка та же (проверил в се файлы, больше мест нет).
2. Если без *.h файлов, то ошибок вообще тонна http://builds.kolibrios.org/logs/svn5280-err.txt
В include-ах относительный путь должен быть правильным, если это не системная библиотека вроде #include <stdarg.h>.
Например, в файле ...games/LaserTank/trunk/image.cpp, вместо
Code:
#include "kosSyst.h"
должно быть
Code:
#include "smalllibc/kosSyst.h"


Top
   
PostPosted: Sun Dec 28, 2014 11:56 pm 
Offline
User avatar

Joined: Fri Dec 12, 2014 7:19 pm
Posts: 60
ууууу, стал еще более жестокий ужас, но все *.obj собрал.
http://builds.kolibrios.org/logs/svn5281-err.txt


Top
   
PostPosted: Sun Dec 28, 2014 11:59 pm 
Offline
User avatar

Joined: Fri Dec 12, 2014 7:19 pm
Posts: 60
Также для отчета выкладываю видео последней собранной версии.


Top
   
PostPosted: Mon Dec 29, 2014 12:16 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Last edited by Mario_r4 on Sun Jan 04, 2015 9:56 pm, edited 1 time in total.

Top
   
PostPosted: Mon Dec 29, 2014 12:20 am 
Offline
User avatar

Joined: Fri Dec 12, 2014 7:19 pm
Posts: 60
Mario_r4 wrote:
ZblCoder
Чем видео захватывал?

Open Broadcaster Software, через нее еще стримлю.


Top
   
PostPosted: Mon Dec 29, 2014 12:41 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Last edited by Mario_r4 on Sun Jan 04, 2015 9:56 pm, edited 1 time in total.

Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 96 posts ]  Go to page Previous 1 2 3 4 57 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