ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

27.06.2009, 15:00
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
Тихий спасибо за пример но не много не то =) а если программа свернута и ее окно не активно то такие клавиши не сработают! поэтому и нужно использовать глобальные клавиши
вот к примеру клавиши
Код:
const
//----------------------------------------------------------------------------------------
MOD_ALT = 1;
MOD_CONTROL = 2;
MOD_SHIFT = 4;
MOD_WIN = 8;
//----------------------------------------------------------------------------------------
регистрируем так
Код:
id:=GlobalAddAtom('HotKey');
RegisterHotKey(hWnd, id, MOD_ALT+MOD_CONTROL,VK_A);
мы зарегистрировали глобальную CNTRL+ALT+A
а если написать так
Код:
id:=GlobalAddAtom('HotKey');
RegisterHotKey(hWnd, id, MOD_ALT+MOD_CONTROL,VK_A+VK_B);
VK_A=65;
VK_B=66;
VK_A+VK_B=131
код 131 соответствует клавише VK_F20 = 131 (ток на клаве что то нет ее =) )
тем самым получается что просто так не получится зарегистрирова горячуюю клавишу вида CNTRL+ALT+A+R+(еще n'е количество букв), вопрос в том реально ли это сделать без "изврата"
Последний раз редактировалось transserg; 27.06.2009 в 15:18..
|
|
|

28.06.2009, 02:38
|
|
Новичок
Регистрация: 15.10.2007
Сообщений: 13
Провел на форуме: 394993
Репутация:
17
|
|
Доброго времени суток всем. Помогите разобраться, люди добрые=) Вобщем есть форма, на ней кнопка одна и лейбл один. Мне нужно, чтоб при нажатии на кнопку выводилось в лейбл первое значение массива, при повторном нажатии второе значение и так далее. Массив заранее уже заполнен. У меня постоянно выводится только последнее значение, при этом использую for. Заранее благодарю за помощь.
|
|
|

28.06.2009, 03:00
|
|
Участник форума
Регистрация: 23.03.2007
Сообщений: 170
Провел на форуме: 1355906
Репутация:
211
|
|
in button click:
.....
i:=i+1;
lblLabel.caption:=IntToStr(mas[i]);
.....
where i:integer; and mas your array =)
|
|
|

28.06.2009, 09:39
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
N - кол-во элементов в массиве
Код:
var
mas:array[1..N] of string;
mas_pos:integer = 1;
.......................
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption := mas[mas_pos];
inc(mas_pos);
if mas_pos > N then mas_pos := 1; // типа по кругу будем всё выводить )
end;
|
|
|

28.06.2009, 14:14
|
|
Новичок
Регистрация: 15.10.2007
Сообщений: 13
Провел на форуме: 394993
Репутация:
17
|
|
slesh, огромнейшее тебе спасибо, очень помог.
|
|
|

01.07.2009, 22:03
|
|
Постоянный
Регистрация: 14.04.2008
Сообщений: 327
Провел на форуме: 584699
Репутация:
69
|
|
Делаю программу как бы со скином поставил border style >>> bs_none что-бы небыло "окошка" но не знаю как теперь перемещать его, можно ли добавить какойнибудь компонент за который можно было бы перемещать окно или может код который позволит перемещать окно за любое место???????????
|
|
|

01.07.2009, 23:32
|
|
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
Провел на форуме: 270228
Репутация:
70
|
|
Сообщение от 0ldbi4
Делаю программу как бы со скином поставил border style >>> bs_none что-бы небыло "окошка" но не знаю как теперь перемещать его, можно ли добавить какойнибудь компонент за который можно было бы перемещать окно или может код который позволит перемещать окно за любое место???????????
можно.
|
|
|

02.07.2009, 00:45
|
|
Banned
Регистрация: 26.01.2009
Сообщений: 16
Провел на форуме: 1639681
Репутация:
14
|
|
0ldbi4,
Код:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform (WM_SYSCOMMAND,SC_MOVE+2,0);
end;
|
|
|

02.07.2009, 11:01
|
|
Постоянный
Регистрация: 14.04.2008
Сообщений: 327
Провел на форуме: 584699
Репутация:
69
|
|
s.p.a.m + помог
|
|
|

02.07.2009, 12:15
|
|
Участник форума
Регистрация: 18.02.2008
Сообщений: 125
Провел на форуме: 562108
Репутация:
107
|
|
Пожалуйста не говорите, что разделить и будет проще. Помогите с данным вопросом.
procedure TForm1.Button1Click(Sender: TObject);
var
begin
Первая часть кода
Если мы нажимаем button2, то продолжается работа программы и выполняется кусок кода номер 2
Вторая часть кода
end;
Как это реализовать, заранее спасибо!
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|