Советы по Delphi


Комбинация клавиш ALT-? в диалоговом окне О ПРОГРАММЕ


...во всяком случае этот код делает что-то похожее. Тем не менее, если у вас имеется условие shift=[ssalt], то это означает, что нажатие клавиши интерпретируется обработчиком по-умолчанию, и каждое нажатие вызывает сигнал динамика. На форме вам нужно выставить флажок previewkey.

Разместите следующий код в обработчике события OnKeyDown:

    procedure TAboutBox.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); var
i:integer; working:integer; begin


if
(shift=[ssalt]) and (key>=$41) and (key<=$5A) then begin s:=s+chr(key); working:=0; for i:=1 to 4 do begin if (s=copy(strings[i],1,length(s))) then working:=-i; if (s=strings[i]) then working:=i; end; if working=0 then s:=''; if working>0 then showmessage(strings[working]); end; end;

Создайте обработчик события создания формы: {для проверки на то, что первоначально строка будет пустая}

    procedure TAboutBox.FormCreate(Sender: TObject);
begin
s:=''; end;

В верхней части модуля формы для определения различных сообщений:

    type
Tst=array[1..4] of string; const
strings:Tst= ('ПРИВЕТ','ПОКА','ВЕРСИЯ','ПРОГРАММИСТ');

В секции public вашей формы:

    public s:string;

Разместите вне экрана кнопку с комбинацией горячих клавиш Alt-?. Поскольку речь идет о диалоговом окне "О программе", то, по всей видимости, окно не ресайзится, и значит пользователь никогда не увидит вашу кнопку. Все, что вы хотели бы сделать по этим горячим клавишам, поместите в обработчик события OnClick. [001989]



Содержание раздела