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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2013, 05:45   #1
albert1984
Новичок
Джуниор
 
Регистрация: 09.09.2013
Сообщений: 2
По умолчанию Ошибка при присвоении обработичка событий для динамического компонента: Delphi 7

Доброго времени суток,
Никогда ранее не использовал динамически создаваемые компоненты, и вот наткнулся на ошибку, которую никак не удается исправить.
Если честно не знаю, что именно я делаю не правильно, может сможете подсказать?
Привожу далее весь код, чтобы не пропустить ни одну мелочь.

Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
StatusBar1: TStatusBar;
File1: TMenuItem;
New1: TMenuItem;
Open1: TMenuItem;
N1: TMenuItem;
Exit1: TMenuItem;
TreeView1: TTreeView;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
ListBox1: TListBox;
TabSheet3: TTabSheet;
Image1: TImage;
Panel1: TPanel;
Panel2: TPanel;
procedure New1Click(Sender: TObject);
procedure Panel_01_MouseDown(Sender: TObject);
procedure Panel_01_MouseUp(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Panel_01: TPanel;

implementation

{$R *.dfm}

procedure TForm1.New1Click(Sender: TObject);
begin
Panel_01 := TPanel.Create(Form1);
Panel_01.Parent := Panel1;
Panel_01.Height := 29;
Panel_01.Left :=3;
Panel_01.Width := 282;
Panel_01.OnMouseDown := Panel_01_MouseDown;
Panel_01.OnMouseUp: = Panel_01_MouseUp;
end;

procedure TForm1.Panel_01_MouseDown(Sender: TObject);
begin
Panel_01.BevelOuter := bvLowered;
end;

procedure TForm1.Panel_01_MouseUp(Sender: TObject);
begin
Panel_01.BevelOuter := bvRaised;
end;

end.

Коротко: на основной форме расположена панель Panel1, на которой я создаю другую панель Panel_01. С созданием последней панели проблем не возникает, а вот при присвоении обработчика (Panel_01.OnMouseDown := Panel_01_MouseDown) получаю ошибку 75: Incompatible types: "Parameter lists differ". Строку выделил жирным шрифтом.
Код написан и тестирован на Delphi 7.

Спасибо заранее за любые комментарии.

Последний раз редактировалось albert1984; 09.09.2013 в 05:48.
albert1984 вне форума Ответить с цитированием
Старый 09.09.2013, 06:51   #2
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Ну тебе же сам компилятор говорит, что списки параметров отличаются. У панели нажатие мыши выглядит так:

Код:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; 
  Shift: TShiftState; X, Y: Integer);
А ты пытаешься присвоить TNotifyEvent:

Код:
procedure Panel_01_MouseDown(Sender: TObject);
Список параметров в назначенном событии должен быть равнозначен. То есть, у тебя должно выглядеть так:

Код:
type
TForm1 = class(TForm)
{...}
procedure Panel_01_MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

{...}

procedure TForm1.Panel_01_MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Panel_01.BevelOuter := bvLowered;
end;
При OnMouseUp проделай аналогичные изменения
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru

Последний раз редактировалось grominfo; 09.09.2013 в 07:00.
grominfo вне форума Ответить с цитированием
Старый 10.09.2013, 00:42   #3
albert1984
Новичок
Джуниор
 
Регистрация: 09.09.2013
Сообщений: 2
По умолчанию

Большое спасибо за столь подробный ответ!
albert1984 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при создании динамического LAbel ВалекFCRK Общие вопросы Delphi 4 14.12.2011 16:43
Возникает ошибка при выделении памяти для элемента типа TStringList динамического массива записей. Вадим Мошев Общие вопросы Delphi 5 28.05.2011 10:48
Ошибка при присвоении объекту производного класса объекта базового класса с исп. явного приведения типов Lanx Помощь студентам 0 06.04.2011 20:24
при присвоении ADOQuery.SQL.Text значения DBLookupComboBox.KeyValue возникает ошибка namazi74 БД в Delphi 1 10.04.2010 07:20
Ошибка при присвоении tStringList Altera Общие вопросы Delphi 16 24.07.2009 22:08