Главная страница
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.019 c
1-99074
кват
2002-12-19 15:47
2002.12.30
TMybutton от Twincontrol - непонятки


8-99201
****
2002-09-10 12:45
2002.12.30
TCanvas


7-99389
LexusU
2002-10-25 11:44
2002.12.30
Отключение/перезагрузка компа в 2000/NT


1-99081
Calm
2002-12-17 16:25
2002.12.30
Возможно ли программное создание pdf-файлов?


6-99213
dimonf
2002-10-31 18:57
2002.12.30
Какой компанент использовать для работы на ниском уровне с SMTP.