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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.08.2007, 18:12   #1
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию Здесь будет много вопросов

Что-то я не подумал... , надо было сразу так тему назвать, а не флудить новыми Ну ладно, перейду к делу, имеется код:
Цитата:
Procedure TForml.MyFirstButtonMouseMove(Sende r: TObject;
Shift: TShiftState; X, Y: Integer);
var
index:integer;
begin
index:=random(4) ;
case index of
0: Button.Left:=Button.Left+Button.Wid th;
1: Button.Left:=Button.Left-Button.Width;
2: Button.Top:=Button.Top+Button.Heigh t;
3: Button.Top:=Button.Top-Button.Height;
end;
if Button.Left<0 then
Button.Left:=0;

if (Button.Left+Button. Width) > Form1. Width then
Button.Left : =Form1.Width-Button.Width;
if Button.Top<0 then
Button.Top: =0 ;
if (Button.Top+Button.Height )> Form1.Height then
Button.Top := Form1. Height - Button.Height ;
end;
Это получается, что когда к кнопке подводишь мышку, то кнопка убегает. Вот подскажите начинающему, как сделать, чтобы та кнопка (точнее сама форма размером с кнопку) убегала от мышки не в пределах самой формы, а бегала по рабочему столу?

Надеюсь, я понятно спросил
Заранее благодарен!
Kashp вне форума
Старый 07.08.2007, 18:27   #2
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
По умолчанию

если я правильно понял, то тебе нужно пользоватся Screen'ом и координатами формы.
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума
Старый 07.08.2007, 18:59   #3
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от ZhekON Посмотреть сообщение
если я правильно понял, то тебе нужно пользоватся Screen'ом и координатами формы.
Да, я пробовал со Screen'ом, но, компилятор ругается. Я что-то не так делаю
Kashp вне форума
Старый 07.08.2007, 19:05   #4
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
По умолчанию

скинь код со Screen'ом. там посмотрим что ты не так делаеш
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума
Старый 07.08.2007, 19:53   #5
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от ZhekON Посмотреть сообщение
скинь код со Screen'ом. там посмотрим что ты не так делаеш
Посидел ща, подумал, написал так:
Код:
procedure TForm1.FormShow(Sender: TObject);
begin
//Делаю размер формы равный размеру кнопки
Width:=75;
Height:=25;
end;

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
index: integer;
begin
index:=random(4) ;
case index of
0: Form1.Left:=Form1.Left+Form1.Width;
1: Form1.Left:=Form1.Left-Form1.Width;
2: Form1.Top:=Form1.Top+Form1.Height;
3: Form1.Top:=Form1.Top-Form1.Height;

if Form1.Left<Screen.Width then
Form1.Left:=Screen.Left;
if (Form1.Left+Form1.Width) > Screen.Width then
Form1.Left:=Screen.Width-Form1.Width;

if Form1.Top<0 then
Form1.Top:=0;
if (Form1.Top+Form1.Height )>Screen.Height then
Form1.Top:=Screen.Height-Form1.Height;
end;

end.
не работает
Kashp вне форума
Старый 07.08.2007, 20:11   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Код:
var index1,index2: integer;
begin
index1:=random(Screen.Width) ;
index2:=random(Screen.Height) ;
frmMain.Left:=index1;
frmMain.Top:=index2;
end;
... но так неинтересно. Лучше, если кнопка убегает на
Button1.Left:= Button1.Left+Button1.Width... т.е потихоньку от мышки...
...и лучше бы занялся более серьезным делом
_SERGEYX_ вне форума
Старый 07.08.2007, 21:02   #7
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Код:
var index1,index2: integer;
begin
index1:=random(Screen.Width) ;
index2:=random(Screen.Height) ;
frmMain.Left:=index1;
frmMain.Top:=index2;
end;
... но так неинтересно. Лучше, если кнопка убегает на
Button1.Left:= Button1.Left+Button1.Width... т.е потихоньку от мышки...
...и лучше бы занялся более серьезным делом
Согласен , но чтобы заниматься серьезными делами, надо узнать и понять основы, чтобы каждый раз не лезть в книгу или на форум за справкой.
Kashp вне форума
Старый 07.08.2007, 21:16   #8
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от Kashp Посмотреть сообщение
Согласен , но чтобы заниматься серьезными делами, надо узнать и понять основы, чтобы каждый раз не лезть в книгу или на форум за справкой.
Все с точностью до наоборот!
Основы понять надо, но книги, форумы и справки - должны стать вашими молебниками. Всех процедур/функций помнить невозможно, а если знать где и что искать, то проблем не возникнет.
Alex21 вне форума
Старый 07.08.2007, 21:33   #9
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
Основы понять надо, но книги
Точно. Готов подписаться под этими словами... именно это я сейчас сыну-"квакеру" и "анрилеру" объясняю...
_SERGEYX_ вне форума
Старый 07.08.2007, 22:55   #10
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Да уж, чую, что вы правы Ну чтож, буду учиться.
Решил сделать "серьезную" программу и тут же возникли вопросы :
1) Как запретить изменение размеров формы за уголки?
2) Как сделать, чтобы кнопка закрытия (ну крестик вверху справа у программ) была видна,но чтобы она была недоступна?

P.S. Простите меня, если это смешные ламерские вопросы, но я вот сейчас искал, но ответа не нашел
Kashp вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Начал осваивать С++, надеюсь на помощ(будет много вопросов) Swool Общие вопросы C/C++ 13 02.08.2008 13:24
Вопросов много, так что попорядку! Ermiss Общие вопросы Delphi 14 01.11.2007 16:18
Помогите! (много вопросов!) илья too Общие вопросы Delphi 2 20.08.2007 19:58
Много вопросов по программироанию в Delphi 7(нужна помощь) *Devil* Общие вопросы Delphi 15 22.05.2007 08:18