Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Смена функциональности при нажатой клавише   Найти похожие ветки 

 
YT   (2004-03-27 13:22) [0]

Подскажите как лучше реализовать
смену действий(кнопок, меню и т.д) при нажтых
клавишах типа Ctrl или Alt или Shift.

Я на OnKeyDown при нажатии  Ctrl или Alt или Shift
меняю boolean переменную и при выполнении
действий проверяю ее значение, а на OnKeyUp меняю
значение переменной назад. Так вот иногда при
работе получается что клавишу отпустил, а значение
переменной не изменилось и соответственно
функциональные действия остались как при нажатой клавише.
ПОДЕЛИТЕСЬ ОПЫТОМ ПО ЭТОМУ ВОПРОСУ.


 
YT   (2004-03-27 13:50) [1]

Пример
 private
 FKeyAlt:Boolean;
   
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
If (ssAlt in Shift) Then  FKeyAlt:=True;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
FKeyAlt:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
If  FKeyAlt Then Beep Else begin
Beep;
Sleep(1500);
Beep
end;
end;


 
YT   (2004-03-28 13:32) [2]

nil or ...


 
Тимохов ©   (2004-03-28 13:37) [3]

почему бы не проверять нажати ли клавиша или нет непосредственно в начале события OnClick кнопки?


 
Diamond Cat ©   (2004-03-28 14:29) [4]

getkeystate


 
YT   (2004-03-29 12:25) [5]

Спасибо за советы.



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
7-1076956738
Gopnik
2004-02-16 21:38
2004.04.18
Как определить на каком com порту сидит модем?


3-1079607938
Tack83
2004-03-18 14:05
2004.04.18
Ошибки округления вещественных чисел в TDBGrid


1-1080566510
TButton
2004-03-29 17:21
2004.04.18
Сравнить 2 record а


1-1080848309
Vit
2004-04-01 23:38
2004.04.18
ini-файл


6-1076919117
Ламер
2004-02-16 11:11
2004.04.18
Можно ли получить IP компа, на котором запущен ServerSocket?