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

Вниз

Обработка события 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
1-99082
abcd
2002-12-19 17:43
2002.12.30
Помогите с пробоемой


7-99387
Начинающий програмер
2002-08-26 19:58
2002.12.30
температура процессора


6-99233
Hogo
2002-11-04 20:05
2002.12.30
При ошибке отсоединяются все?


1-99107
Спрашивающий
2002-12-16 09:00
2002.12.30
Вопрос про


1-99089
chsv
2002-12-16 20:12
2002.12.30
специальный графический формат