Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

OnMouseMove := ShapeMouseOver;


Боян Георгиев ©   (2005-01-28 19:31:00) 

Здравствуйте!
Создаю инстанцию класса TShape и задаю процедура ShapeMouseOver для свойства OnMouseMove. Но процедура не изполняется при движение мыши. Почему?

Вот код:


   result := TShape.Create(self);
   with result do
     begin
     Shape := stCircle;
     Width := 10;
     Height := 10;
     Left := _x - 5 - self.HorzScrollBar.Position;
     Top := _y - 5 - self.VertScrollBar.Position;      
     Visible := false;
     Tag := index;
     Brush.Color := 8568823;
     Parent := self;
      OnMouseMove := PointMouseMove;
     end;


Вот процедура PointMouseMove:


procedure TForm1.PointMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
 TShape(Sender).Visible := true;
end;


Боян Георгиев   (2005-01-28 20:08:00) [1]

спасибо:)


default   (2005-01-28 20:06:00) [2]

Pen.Color := Self.Pen.Color;


default   (2005-01-28 20:05:00) [3]

потому что при Visible = False не происходит вызова обработчика события OnMouseMove
чтобы Ваш шейп не был виден на контроле на котором он отрисовывается, но срабатывало указанное событие используйте код
Brush.Color := Self.Brush.Color;
Pen.Color := Self.Brush.Color;
для шейпа, а в обработчике события для показа шейпа присваивайте сооветствующие цвета свойствам Pen и Brush


Наверх

Титульная страница Поиск, карта сайта Написать письмо