• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Переопределить Метод Mousedown

  • Автор темы rrr
  • Дата начала
R

rrr

Хочу набросать на panel много прямоугольников с полями и двигать их мышкой.

Объявляю тип:

type
TPost = class( TPanel)
LabelCode: TLabel;
LabelName: TLabel;
EditCode: TEdit;
EditName: TEdit;
procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

Пишу процедуру (это тестовая, лишь бы отозвалась на мой клик):

procedure TPost.MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
frmMain.StatusBar.SimpleText:='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
end;


По клику создаю прямоугольник (он честно появляется на панели)

TPost.Create(Self).Name := ('Post'+inttostr(nPanNumber) );

Присваиваю ему top, left, и прочие свойства. Тыкаю мышкой - процедура не вызывается. Ставил чекпойнт в дебаггере - таки не вызывается.
Что я делаю не так, подскажите, pls.
 
V

Vadik(R)

Видимо, ты не определил процедуру для самого движения прямоугольника. Надо её, во-первых, описать, а во-вторых - присвоить обработчик динамически созданному прямоугольнику, так же, как и ты присваиваешь имя.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!