|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.12.2012, 17:20 | #1 |
Пользователь
Регистрация: 16.12.2012
Сообщений: 10
|
Как сделать ограничение на перемещение? Или я не знаю как называется это правильно. (См. внутри) Делфи
Если нажимать на кнопки ВПРАВО ВЛЕВО ВВЕРХ ВНИЗ робот Петька перемещается соответственно этим кнопкам. А как сделать так, чтобы Петька не заезжал на другие кнопки? Чтобы выдавалось, например, сообщение "Не могу дальше". Ну или без сообщения, просто чтобы остановился около других объектов на форме. Что и где нужно прописать?
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons; type TForm1 = class(TForm) SpeedButton1: TSpeedButton; Label1: TLabel; Shape1: TShape; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; SpeedButton4: TSpeedButton; procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); begin button1.Top:=button1.Top-1; if (button1.Top<0) then begin button1.Top:=0; end; end; procedure TForm1.Button3Click(Sender: TObject); begin button1.Top:=button1.Top+1; if (button1.Top>471) then begin button1.Top:=471; end; end; procedure TForm1.Button4Click(Sender: TObject); begin button1.Left:=button1.Left+1; if (button1.left>649) then begin button1.Left:=649; end; end; procedure TForm1.Button5Click(Sender: TObject); begin button1.Left:=button1.Left-1; if button1.Left<0 then begin button1.left:=0; end; end; procedure TForm1.SpeedButton1Click(Sender: TObject); var CH,CW:integer; begin randomize; CH:=random(ClientHeight-speedbutton1.Height); CW:=random(ClientWidth-speedbutton1.Width); if (CH<0) or (CW<0) then begin CH:=CH+speedbutton1.Height; CW:=CW+speedbutton1.Width; speedbutton1.Top:=CH; speedbutton1.Left:=CW; end else speedbutton1.Top:=CH; speedbutton1.Left:=CW; end; procedure TForm1.SpeedButton2Click(Sender: TObject); begin shape1.width:=shape1.width + 1; shape1.height:=shape1.height + 1; end; procedure TForm1.SpeedButton3Click(Sender: TObject); begin shape1.width:=shape1.width - 1; shape1.height:=shape1.height - 1; end; procedure TForm1.SpeedButton4Click(Sender: TObject); begin close; end; end. |
16.12.2012, 18:13 | #2 |
Пользователь
Регистрация: 11.01.2012
Сообщений: 51
|
ну поидее можно например в событие кнопки в право написать
Код:
Я учусь на своих ошибках, но порой их слишком много
|
16.12.2012, 18:19 | #3 |
Пользователь
Регистрация: 16.12.2012
Сообщений: 10
|
Пробовал прописать для вправо, но все равно заезжает на Надуть(
|
16.12.2012, 18:30 | #4 |
Пользователь
Регистрация: 11.01.2012
Сообщений: 51
|
Проверил у себя все пашет
Button1 - это кнопка вправо Button3 - это кнопка Петька Button2 - это просто кнопка Код:
Я учусь на своих ошибках, но порой их слишком много
|
16.12.2012, 19:45 | #5 |
Пользователь
Регистрация: 16.12.2012
Сообщений: 10
|
Блин, у меня ничего не выходит. Теперь у меня ни одна кнопка почему-то не работает. Я запутался.((((
|
17.12.2012, 07:42 | #6 |
Пользователь
Регистрация: 11.01.2012
Сообщений: 51
|
Вот тебе исходник
Там небольшой пример нажатия кнопок налево и на право, Вниз и вверх примерно также делать Новая папка.rar
Я учусь на своих ошибках, но порой их слишком много
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как называется это приложение? коротко внутри. | Vova777 | Софт | 9 | 13.08.2012 11:26 |
как найти файл(как он называется не знаю). | Люба777 | Помощь студентам | 0 | 20.12.2011 21:06 |
Не знаю как правильно сделать вызов функции | Homutova_Julia | Помощь студентам | 14 | 07.06.2011 23:45 |
Как такое сделать (извените. но даже не знаю как это называется) | Van'Denis | HTML и CSS | 3 | 30.08.2009 10:46 |
Не знаю как это сделать:) | LSDkltn | БД в Delphi | 2 | 09.11.2007 13:39 |