Форум: "Основная";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
ВнизОбработка события OnKeyDown Найти похожие ветки
← →
reticon (2002-12-18 20:32) [0]Уважаемые мастера! Прошу Вашей помоши.
На форме имеется 10 компонентов Shape.
В обработчике события формы OnKeyDown необходимо после каждого нажатия ENTER поочередно с 1 по 10 менять цвет у этих Shape (например с зеленогона желтый), причем после того, как будет изменен цвет последней фигуры, необходимо менять цвет на исходный (с желтого на зеленый) в обратном порядке (с 10 по 1). Помогите пожалуйста осуществить такую штуку!!!! Заранее спасибо.
← →
TTCustomDelphiMaster (2002-12-18 21:17) [1]При нажатии на Enter выполняешь следующее:
if n > 10 then
begin
d := -1;
n := 10;
end;
if n < 1 then
begin
d := 1;
n := 1;
end;
if d = 1 then
ArayShape[n].Color := Зеленый
else
ArayShape[n].Color := Желтый;
n := n + d
← →
reticon (2002-12-19 09:38) [2]получилось следующее, но выдает ошибку "Access violation at adress ..." :
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Shape: array[1..10] of TShape;
n,d: integer;
begin
if key = vk_return then
begin
if n > 10 then
begin
d := -1;
n := 10;
end;
if n < 1 then
begin
d := 1;
n := 1;
end;
if d = 1 then
Shape[n].Brush.Color:=clGreen
else
Shape[n].Brush.Color:=clYellow;
n := n + d
end;
end;
а можно эту процедуру поподробнее, а то я что-то совсем не могу создать эти Shape
← →
zavdim (2002-12-19 09:48) [3]Я так понял что твои Шейпы должны на форме лежать, а они у тебя в методе(потом еще и не инициализированы и т.д.).
Если ты эти Шейпы уже сделал (лежат на форме),
То в приватах у формы объявлешь тот самый массив.
И присваиваешь каждому элементу уже существующий Шейп, а потом живи и радуйся.
Только не объявляй этого в методе. И d,n - тоже не локальные переменные метода - убери их описание оттуда. А то комп и не то скажет. А уж тут так обхохочутся.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c