Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lazarus
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Nuhja
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 18
1

Код должен по нажатию клавиши закрасить shape в лаймовый цвет

17.01.2015, 13:17. Просмотров 1087. Ответов 24
Метки нет (Все метки)

Код должен по нажатию клавиши закрасить shape в лаймовый цвет. К сожалению код не выполняется. Хотелось бы узнать, в чем ошибка?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Shape1: TShape;
    Shape2: TShape;
    Shape3: TShape;
    Key_Timer: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Key_TimerTimer(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var key: char);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
  key: char;
  a: integer;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
 
procedure TForm1.FormCreate(Sender: TObject);
begin
   KeyPreview := True;
end;
 
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
     if key = #44 then a:=2;
end;
 
procedure TForm1.Key_TimerTimer(Sender: TObject);
begin
     if a=1 then form1.shape1.brush.color:=cllime;
     if a=2 then form1.shape3.brush.color:=cllime;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
     a:=1;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 
end;
 
 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2015, 13:17
Ответы с готовыми решениями:

Событие по нажатию клавиши
Доброго времени суток. Нужно создать событие по нажатии enter: Procedure...

Как сделать временную остановку по нажатию клавиши
Программа имитации кольцевой буферизации. Программа работает в автоматическом...

Смещение Shape по нажатию клавиши
Я решил написать игру на Delphi 7 (без графики, поэтому и обратился сюда), но у...

Изменить цвет текста в консоли по нажатию клавиши (TASM)
Здравствуйте. Помогите пожалуйста написать код. Программа должна менять цвет...

Как менять толщину и цвет линий по нажатию клавиши?
Как менять толщину и цвет линий по нажатию клавиши:??? линии рисую мышкой

24
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26348 / 17678 / 6999
Регистрация: 22.10.2011
Сообщений: 31,107
Записей в блоге: 6
17.01.2015, 14:11 2
Прикрепи весь проект, если Key_Timer.Enabled выставлено в True то нормально у меня все закрашивается при нажатии запятой...
0
Nuhja
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 18
17.01.2015, 14:20  [ТС] 3
Да, стоит True, но у меня не получается закрасить
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26348 / 17678 / 6999
Регистрация: 22.10.2011
Сообщений: 31,107
Записей в блоге: 6
17.01.2015, 15:01 4
Я про проект уже написал, нет проекта - говорить не о чем.
0
Nuhja
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 18
17.01.2015, 15:08  [ТС] 5
Проект есть

Добавлено через 5 минут
Я даже пытался пользоваться статьей, где примерно тоже самое Событие при нажатии клавиши Enter


Все-равно ничего не закрашивается(
0
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
17.01.2015, 20:52 6
Цитата Сообщение от Nuhja Посмотреть сообщение
Проект есть
Но секретный...
0
Nuhja
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 18
17.01.2015, 20:53  [ТС] 7
В смысле?
0
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
17.01.2015, 20:55 8
Вас просили выложить архив проекта в тему.
Если не знаете как, прочитайте это.
http://www.cyberforum.ru/about-forum/thread103521.html
0
Nuhja
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 18
19.01.2015, 08:34  [ТС] 9
Сразу не понял. Вот архив.
0
Вложения
Тип файла: rar test.rar (124.8 Кб, 5 просмотров)
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
19.01.2015, 09:05 10
Смените procedure FormKeyPress(Sender: TObject; var key: char);
на procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
естественно #38 на просто 38
0
Nuhja
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 18
19.01.2015, 09:09  [ТС] 11
Проект собрался, может быть я нажимаю не на ту клавишу. 38 - это какая клавиша?
0
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
19.01.2015, 09:12 12
38 это стрелка вверх
0
Nuhja
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 18
19.01.2015, 09:14  [ТС] 13
Ничего не произошло
0
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
19.01.2015, 09:16 14
А нафига у Вас там какой-то таймер?
Напишите так и проверьте
Pascal
1
2
3
4
5
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
 if key = 38 then  form1.shape1.brush.color:=cllime;
end;
0
Nuhja
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 18
19.01.2015, 09:21  [ТС] 15
не помогло
0
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
19.01.2015, 09:48 16
Ну не знаю, я пишу
Pascal
1
2
3
4
5
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
 if key = 38 then  form1.shape1.brush.color:=cllime;
end;
Вот скрины до нажатия стрелки вверх и после нажатия
0
Миниатюры
Код должен по нажатию клавиши закрасить shape в лаймовый цвет   Код должен по нажатию клавиши закрасить shape в лаймовый цвет  
Nuhja
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 18
19.01.2015, 21:48  [ТС] 17
Можете в таком случае скинуть весь код?
0
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
19.01.2015, 21:49 18
Так выше и есть весь код!
0
Nuhja
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 18
19.01.2015, 21:50  [ТС] 19
без объявлений переменных?
0
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
19.01.2015, 21:51 20
Может Вы просто копируете мой код полностью и у себя в программе не инициируете событие?

Добавлено через 29 секунд
Какие нафиг переменные?
0
19.01.2015, 21:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2015, 21:51

Как выполнить код по нажатию клавиши
Как я понял, в XNA нету обработчика события нажатия клавиши, а задача в том...

Изменить макрос, который по нажатию клавиши генерируется штрих-код...
Добрый день!Нашел очень полезный для себя макрос,но не могу в нем никак...

В цикле закрасить произвольное количество Shape
Всем привет! Нужен цикл по произвольному количеству элементов на форме....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru