Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
790 bw 1
 
2
{-$codepage cp866}
3
4
 
5
{$smartlink on}
6
{$apptype gui}
7
8
 
9
10
 
11
  и реализованы только для KolibriOS. Их использование в любых программных
12
  приложениях категорически не рекомендовано, выносите все методы, использующие
13
  эти функции, в отдельные модули (и используйте необходимые абстракции). }
14
15
 
16
 
17
{ Вывод содержимого окна приложения }
18
begin
19
  kos_begindraw();
20
21
 
22
  kos_definewindow(200, 200, 200, 50, $23AABBCC);
23
24
 
25
    делаем это отдельной функцией kos_setcaption }
26
27
 
28
  kos_setcaption('ПРИМЕР ПРОГРАММЫ');
29
30
 
31
  kos_drawtext(3, 8, 'Нажмите любую клавишу...');
32
  kos_enddraw();
33
end;
34
35
 
36
 
37
{ Обработка события нажатия клавиши }
38
var
39
  Key: DWord;
40
  Notes: array[0..3] of Byte;
41
begin
42
  Key := kos_getkey();
43
44
 
45
  Notes[0] := $90;
46
  Notes[1] := Key shr 8;
47
  Notes[2] := $00;
48
49
 
50
  kos_speaker(@Notes);
51
end;
52
53
 
54
 
55
{ Обработка события нажатия кнопки GUI }
56
var
57
 Button: DWord;
58
begin
59
  { получить код нажатой кливиши }
60
  Button := kos_getbutton();
61
62
 
63
  Result := Button <> 1;
64
end;
65
66
 
67
 
68
{ Ожидание и обработка событий.
69
70
 
71
  @rtype : True или False }
72
var
73
  Event: DWord;
74
begin
75
  Result := True;
76
77
 
78
  Event := kos_getevent();
79
  case Event of
80
    SE_PAINT   : DoPaint;  { перерисовка окна }
81
    SE_KEYBOARD: DoKey;    { событие от клавиатуры }
82
    SE_BUTTON  : Result := DoButton; { событие от кнопки, может определить
83
                                       завершение приложения, если вернет False }
84
  end;
85
end;
86
87
 
88
 
89
var
90
  ThreadSlot: TThreadSlot;
91
begin
92
  { настраиваем события, которые мы готовы обрабатывать }
93
  kos_maskevents(ME_PAINT or ME_KEYBOARD or ME_BUTTON);
94
95
 
96
  while ProcessMessage do;
97
end.
98