![]() |
|
|
#1
|
|||
|
|||
|
Ребят помогите пожалуйста нужно сделать меню но так чтоб можно было двигаться по нему стрелками на клавиатуре.
К примеру есть 3 Label нужно чтоб при нажатии на стрелку вниз на клавиатуре поочерёдно подсвечивались Labelы а при нажатии на Enter происходило нажатие LabelClick |
|
#2
|
||||
|
||||
|
Цитата:
VK_DOWN - Клавиша "Стрелка вниз" VK_UP - Клавиша "Стрелка вверх" VK_RETURN - Клавиша "Enter" |
|
#3
|
|||
|
|||
|
Как то так:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
private
FlabelSelect: TLabel;
FlabelNo: integer;
{ Private declarations }
public
{ Public declarations }
property labelSelect:TLabel read FlabelSelect write FlabelSelect;
property labelNo:integer read FlabelNo write FlabelNo;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
labelselect.Color:=clBtnFace;
if key= VK_DOWN then begin
if labelNo=3 then labelNo:=0;
labelNo:=labelNo+1;
end;
if key= VK_UP then begin
if labelNo=1 then labelNo:=4;
labelNo:=labelNo-1;
end;
labelselect:=(FindComponent('Label'+inttostr(labelNo)) as TLabel);
labelselect.Color:=clNavy;
if key=VK_RETURN then begin
showmessage('Enter Press '+labelSelect.Name);
//labelSelect.OnClick(self); //Îáðàáîò÷èê êîòîðûé onClick íà label
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
labelSelect:=label1;
labelselect.Color:=clNavy;
labelNo:=1;
end;
end. |
| Этот пользователь сказал Спасибо Black Raider за это полезное сообщение: | ||
Gudzik11 (14.11.2012)
| ||
|
#4
|
|||
|
|||
|
Спасибо большое то что нужно .
|
|
#5
|
||||
|
||||
|
И на скольки форумах ты запостил тему? Надеялся, что ответы разные будут?
|