Авторизироваться
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: ADMIN, Nextik  
Проверка долгих нажатий
02.01.2009 в 14:39 Сообщение #1
12121
Программист
Проверенные
Сообщений: 357
Награды: 4
Репутация: 290
Offline
Пробуем
var
vvod_pause: integer; { задержка до долгого нажатия }

procedure soob(t: string);{ вывод сообщения }
var n,m,r,n1: integer;
begin
n:= getStringWidth(t);m:= getStringHeight(t);{ n - ширина m - высота строки текста }
setColor(145,135,255);fillrect((getWidth - n) / 2-5,(getHeight - m) / 2-5,n+10,m+10);{ очищаем прямоугольник под текст }
setColor(140,10,35); if n<=getWidth then drawText(t, (getWidth - n) / 2,(getHeight - m) / 2); { центруем и печатаем если целиком помещается на экране }
else begin r:=n-getWidth; for n1:=0 to r do begin { вычисляем сколько пикселей не влезло }
setColor(145,135,255);fillrect((getWidth - n) / 2-3,(getHeight - m) / 2-3,n+6,m+6); { если не очистить просто смажется }
setColor(140,10,35);drawText(t,0-n1,(getHeight - m) / 2);repaint; delay(10);{ центруем и печатаем }
if n1=0 then delay(2000);end;end; { задержка что б прочесть начало строки }

repaint;delay(1000);setColor(145,135,255);fillrect((getWidth - n) / 2-5,(getHeight - m) / 2-5,n+10,m+10);
end;

procedure vvod1(key:integer);
begin
if key=KE_KEY0 then soob(' 0 долгое нажатие ');
end;


procedure vvod;
var
{com:command;} { если будут проверятся и команды меню }
pause,key:integer;
fv:boolean; { флаг нажатия }
begin

{com:= getClickedCommand;
if com = ok then ...} { обработка команд меню }


key:=getKeyClicked;
if getKeyPressed<>KE_NONE then fv:=true;
while fv do begin
pause:=pause+1; delay(100);
if getKeyPressed=KE_NONE then fv:=false;
if pause>=vvod_pause then begin vvod1(key); key:=0; fv:=false; end; {key:=0 - иначе и короткое и длинное сразу }
end;

if key=KE_KEY0 then soob('0 короткое нажатие ');

end;

begin
vvod_pause:=5;
soob('жми 0 для проверки ');delay(1000);

while true do begin
soob(' ничего не нажато ');
vvod;

end; end.

29.01.2009 в 19:12 Сообщение #2
12121
Программист
Проверенные
Сообщений: 357
Награды: 4
Репутация: 290
Offline
В продолжение темы пример создания меню и работа с сенсорным экраном
Прикрепления: menu.zip (5.3 Kb)
29.01.2009 в 19:24 Сообщение #3
admin
Admin
Администраторы
Сообщений: 244
Награды: 2
Репутация: 594
Offline
12121, Отлично! +5! ессли ты не против я включу твой пример в раздел пример/графика/граф.меню
29.01.2009 в 19:40 Сообщение #4
12121
Программист
Проверенные
Сообщений: 357
Награды: 4
Репутация: 290
Offline
не против. Добавь если не трудно библиотеку чтоб все сразу было а то я забыл
29.01.2009 в 19:56 Сообщение #5
admin
Admin
Администраторы
Сообщений: 244
Награды: 2
Репутация: 594
Offline
Выложил. Вот тут. Либу в архив не сунул, но указал ссылку на нее.
30.01.2009 в 17:24 Сообщение #6
12121
Программист
Проверенные
Сообщений: 357
Награды: 4
Репутация: 290
Offline
Вот меню с большими возможностями. Также здесь показано как можно прочитать русский текст из ресурса и как сделать мультиязычное приложение.
Если есть идеи что еще можно добавить пишите.
Прикрепления: 1771204.zip (9.7 Kb)
31.01.2009 в 12:59 Сообщение #7
admin
Admin
Администраторы
Сообщений: 244
Награды: 2
Репутация: 594
Offline
Gooaaaaddd! applause
31.01.2009 в 15:48 Сообщение #8
12121
Программист
Проверенные
Сообщений: 357
Награды: 4
Репутация: 290
Offline
Может кто потестирует. Ошибок вроде нет но мало ли
31.01.2009 в 17:16 Сообщение #9
admin
Admin
Администраторы
Сообщений: 244
Награды: 2
Репутация: 594
Offline
Я проотестил. нормал
31.01.2009 в 23:25 Сообщение #10
12121
Программист
Проверенные
Сообщений: 357
Награды: 4
Репутация: 290
Offline
Мобильный касперский в прогах на мидлет паскале упорно видит вирус. Я смарт проверял так он выдал. Людей может отпугнуть. Знаешь об этом что нибудь?
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: