МОУ СОШ №3 г. Осташков Тверская обл.
  
 
 
 
 

Мини-проекты в Delphi

Мини- проекты в Delphi

Проект «Перетаскивание фигур»

 Для того, чтобы перетаскивать объекты по экрану, существует возможность использования событий.
Для того, чтобы

  • взять объект - onMouseDown;
  • перемещать – onMouseMove;
  • отпустить – onMouseUp.

Расположим на форме несколько объектов Shape (фигура) разных размеров и формы.
Объявим общие переменные:

x0,y0:integer;
drag:boolean=false;

Вторая drag будет разрешать перемещение, если фигура выбрана.
Для одного из них (первого) используя вкладку Events (события) выбираем onMouseDown и заполняем процедуру

procedure TForm1.Shape1MouseDown(Sender: TObject; Button: 
TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
    x0:=X;y0:=Y;
    drag:=true;   
end;

Так же для onMouseUp:
Для сокращения текста программы используем оператор with.
with имя записи или объекта do оператор.
Для объединения нескольких операторов пару begin   end;

procedure TForm1.Shape1MouseUp(Sender: TObject;Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if drag then 
  begin
    with TShape(Sender) do
    begin
       Left:=Left+X-x0;
       Top:=Top+Y-y0;
    end;
  end;
  drag:=false;
end;

И для onMouseMove:

procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
    if drag then 
      begin
         with TShape(Sender) do
         begin
             Left:=Left+X-x0;
            Top:=Top+Y-y0;
        end;
     end;
end;

Эта процедура изменяет координату верхнего левого угла фигуры в соответствии с положением мыши при нажатой левой кнопки, т. е. пока она не отпущена.
Остается перекинуть «мостик», т. е. выбрать те же процедуры, используя вкладку Events (события) для остальных фигур.

 

 

 

 

 

 

 

 

 


 
О мини-проектах
Неуловимая кнопка
Вещий камень
Перетаскивание фигур
Секундомер
Градусы-радианы
Мультик
Падение тела
Прозрачная форма
Регионы
Шарик за мышкой
Таймер
Расписание уроков
Записная книжка
Задача по физике
Определение зачеркнутой цифры
Использование Microsoft Agent в Delphi
 Арифметика
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
             
Hosted by uCoz