Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2015, 13:35   #1
SnS
Пользователь
 
Регистрация: 09.12.2012
Сообщений: 37
По умолчанию Delphi Обработчик события

Здравствуйте, мне необходимо по клику по форме создать несколько Shape, а при повторном нажатии на Shape удалить их. я создаю Shape:
Код:
var
Form1: TForm1;
m: array[1..10] of TShape;
i:integer;

procedure TForm1.MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);

begin
m[i]:=TShape.Create(Form1);
m[i].Top:=Y-50;
m[i].Left:=X-50;
m[i].Width:=100;
m[i].Height:=100;
m[i].Parent:=panel2;
m[i].Name:=mas[i].ClassName+IntToStr(i);
label1.Caption:=mas[i].Name;
counter:=counter+1;
end;
и тут мне пишет ошибку:
Цитата:
[Error] Unit1.pas(22): Undeclared identifier: 'TShape'. Помогите пожалуйста, что не так?

Последний раз редактировалось Stilet; 10.09.2015 в 13:38.
SnS вне форума Ответить с цитированием
Старый 10.09.2015, 13:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пропиши в uses модуль ExtCtrls
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2015, 13:45   #3
SnS
Пользователь
 
Регистрация: 09.12.2012
Сообщений: 37
По умолчанию

он теперь и на этот модуль ругается: [Error] Unit1.pas(7): Declaration expected but identifier 'ExtCtrls' found
SnS вне форума Ответить с цитированием
Старый 10.09.2015, 13:46   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Показывай как прописал )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2015, 14:01   #5
SnS
Пользователь
 
Регистрация: 09.12.2012
Сообщений: 37
По умолчанию

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs; ExtCtrls;
SnS вне форума Ответить с цитированием
Старый 10.09.2015, 14:06   #6
SnS
Пользователь
 
Регистрация: 09.12.2012
Сообщений: 37
По умолчанию

соррри, разобрался, тупанул
SnS вне форума Ответить с цитированием
Старый 10.09.2015, 14:26   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Бывает... )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2015, 15:55   #8
SnS
Пользователь
 
Регистрация: 09.12.2012
Сообщений: 37
По умолчанию

Подскажите пожалуйста ещё, первый клик-это создание круга, а второй клик его закрашивание красным, а третий- синим.
SnS вне форума Ответить с цитированием
Старый 10.09.2015, 16:27   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну как-то так:
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses      ExtCtrls,
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;

type

  { TForm1 }

  TForm1 = class(TForm)
    procedure FormClick(Sender: TObject);
    procedure ShapeClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormClick(Sender: TObject);
begin
  with TShape.Create(self) do begin
   Left:=Random(100); top:=Random(100);
   Width:=random(100); Height:=Random(100);
   OnClick:=ShapeClick;
   Tag:=1;
   Parent:=self;
   Show;
  end;
end;

procedure TForm1.ShapeClick(Sender: TObject);
begin
 with TShape(Sender) do
  if tag=1 then Color:=clRed else
    if tag=2  then Color:=clBlue else
end;

end.
Почитай в хелпе подробнее про свойсво отвечающее за цвет у Shape, я не помню точно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2015, 16:57   #10
SnS
Пользователь
 
Регистрация: 09.12.2012
Сообщений: 37
По умолчанию

простите, за вопрос, но у меня он ругается на OnClick:=ShapeClick; пишет:unit1.pas(38,13) Error: Wrong number of parameters specified for call to "ShapeClick"
SnS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик события nanom1t C++ Builder 1 15.04.2013 01:02
Delphi. В поле Edit обработчик события KeyPress Manya89 Помощь студентам 5 23.12.2012 13:42
С# Обработчик события yulshaz Помощь студентам 7 24.09.2012 08:12
Обработчик события yardie Общие вопросы .NET 3 26.03.2011 18:30
Обработчик события... Flash_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 12.03.2007 21:24