Цитата:
Сообщение от Alegun
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
37: Shape1.Left:= Shape1.Left - 1;
38: Shape1.Top:= Shape1.Top - 1;
39: Shape1.Left:= Shape1.Left + 1;
40: Shape1.Top:= Shape1.Top + 1;
end;
end;
|
Не пропускает.
Код:
if Key=ord('Y') and (ssctrl in Shift) then begin
Form1.Canvas.Brush.Style:=bsSolid;
Form1.Canvas.Brush.Color:=clBtnFace;
Form1.Canvas.FillRect(Rect(0,0,Form1.ClientWidth,Form1.ClientHeight));
Form1.Canvas.Pen.Color:=clRed;
Form1.Canvas.Brush.Style:=bsSolid;
Form1.Canvas.Brush.Color:=clred;
Начало у меня такое.
Клавишей Y нужно перемещать вверх.
Что-то нужно тут дописать. Пытался задавать значения по координатам (в выше приведенном тексте код отсутствует, т.к. при нажатии на клавишу Y идет очистка формы, хотя сама очистка прописана под клавишу Z таким образом:
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var X, Y: Integer;
begin
if Key=ord('Z') then begin
Form1.Canvas.Pen.Color:=Form1.Color;
Form1.Canvas.Brush.Style:=bsSolid;
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.FillRect(Rect(0,0,Form1.Width,Form1.Height));
end;
Как же все-таки можно заставить эту линию двигаться вверх при нажатии клавиши Y с зажатой клавишей ctrl?
Цитата:
Сообщение от Alegun
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Shift = [ssCtrl] then
case Key of
72: Shape1.Left:= Shape1.Left - 1;
89: Shape1.Top:= Shape1.Top -1;
74: Shape1.Left:= Shape1.Left + 1;
71: Shape1.Top:= Shape1.Top + 1;
end;
end;
З.Ы. Только сейчас увидел что нужны не стрелки, а кнопки с буковками и с зажатым шифтом. Исправил
|
Подобную ошибку выдает
Цитата:
[Error]Unit1.pas[54]: Undeclared identifier: 'Shape1'
|
Перемещение вверх должно осуществляться при нажатии клавиши Y с зажатой клавишей ctrl