Главная страница
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.016 c
14-99343
Мазут Береговой
2002-12-03 03:43
2002.12.30
Интересно, кто-нибудь знает откуда пришло слово


1-99130
Dmitriy_R
2002-12-18 06:29
2002.12.30
EMail Server


14-99284
~
2002-12-09 12:59
2002.12.30
Простые числа


1-99112
Groove
2002-12-18 08:49
2002.12.30
TStringlist.SaveToFile _ чЁкаво?


3-99032
Максим
2002-12-10 10:58
2002.12.30
fox базы - Language driver not found