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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2007, 20:34   #1
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию Задвинуть окно формы

Подскажите пожайлусто как можно задвинуть окно формы используя top
тоесть как зделать так чтоб из top отнемалось по 5-10 единиц до тех пор пока скажем он не станет -100? Помогите пожайлусто да и желательно чтоб фокус формы не терялся...
Большое спасибо..
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 14.11.2007, 20:48   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Все очень просто...
Код:
procedure TMyForm.Button1Click(Sender: TObject);
begin
while Top>-100 do
begin
Top:=Top-10;
Application.ProcessMessages;
end;
end;
Если хотите скрыть форму, то
while Top>-Heght do
mihali4 вне форума Ответить с цитированием
Старый 14.11.2007, 21:51   #3
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Большое вам спасибо только вот у меня еще один вопрсик возник я хочу чтоб она плавно задвигалась и выдвигалась я уменьшил Top:=Top-10;
вместо 10 на 2... Но она улетает с ускорением сначало медленно через долю секунды с ускорением как можно уменьшить скорость? заранее спасибо. Ах да и еще один вопрос почему после этого форма не реагирует на закрытие условие цикла вродебы завершилось так почему форма не на что не реагирует..?
Я часть той силы, что вечно хочет зла, но вечно совершает благо..

Последний раз редактировалось Stanislav; 14.11.2007 в 21:55.
Stanislav вне форума Ответить с цитированием
Старый 14.11.2007, 22:04   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
я хочу чтоб она плавно задвигалась и выдвигалась я уменьшил Top:=Top-10;
вместо 10 на 2... Но она улетает с ускорением сначало медленно через долю секунды с ускорением как можно уменьшить скорость?
Проверил. У меня очень плавное движение, без ускорения.
Цитата:
еще один вопрос почему после этого форма не реагирует на закрытие условие цикла вродебы завершилось так почему форма не на что не реагирует..?
Аналогично, у меня нет такого глюка...

З.Ы. Да, вот что может быть. Категорически не рекомендую компилировать с включенным режимом оптимизации. Программа, и довольно часто, ведет себя непредсказуемо...
Рекомендую отключить.

Последний раз редактировалось mihali4; 14.11.2007 в 22:07.
mihali4 вне форума Ответить с цитированием
Старый 14.11.2007, 23:23   #5
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Я попробывал что то нечего не получаеться порылся в с воих фагах и вот что нарыл:

Создаем две формы и две кнопки
и во оброботчиках кнопок пишем:


procedure TForm1.Button1Click(Sender: TObject);
begin
form2.visible:=true;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
form2.Close;

И вот что пишем во второй форме:
procedure TForm2.FormShow(Sender: TObject);
begin
AnimateWindow (Form2.Handle, 1000, AW_VER_POSITIVE );
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
AnimateWindow(handle, 500, AW_VER_NEGATIVE or AW_HIDE);
end;

Во воложении лежит исходник кому интересно:
И спабибо кто откликнулся на помощь...

end;
Вложения
Тип файла: rar windows.rar (163.8 Кб, 85 просмотров)
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 15.11.2007, 08:19   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Но она улетает с ускорением сначало медленно через долю секунды с ускорением
А это тебе не показалось? поставь везде по 1000 в AnimateWindow...
Цитата:
почему после этого форма не реагирует на закрытие
В каком смысле?

P.S. У меня все путем идет и с оптимизатором и без него, на всякий случай спрошу какая версия делфи?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2007, 18:22   #7
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Дело в том что вы смотрите не тот код:
procedure TMyForm.Button1Click(Sender: TObject);
begin
while Top>-100 do
begin
Top:=Top-10;
Application.ProcessMessages;
end;
end;

А тот код который вы цетируете я уже разобралься и просто отписалься что есть такой вариант вдруг такой вопрос у других возникнет... вот и все
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 18.11.2007, 20:45   #8
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Вот получилься готовый вариант если кого интересует та же проблема вот исходник:
Вложения
Тип файла: rar Анимация формы.rar (173.3 Кб, 66 просмотров)
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 18.11.2007, 21:03   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Только не совсем правильно использовать константы.
Например вместо
Код:
if top=-200 then begin
showmessage('Задвинуто');
timer2.Enabled:=false;
form2.Top:=-150;
правильнее было бы использовать:
Код:
if top<=-Height then begin
showmessage('Задвинуто');
timer2.Enabled:=false;
//form2.Top:=-150;
Попробуйте в вашем варианте (сделав, естественно, BorderStyle не None) передвинуть форму 2 вниз или изменить размеры.

Последний раз редактировалось mihali4; 18.11.2007 в 21:07.
mihali4 вне форума Ответить с цитированием
Старый 18.11.2007, 21:06   #10
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию

ха......а вариант-то не готовый попробуй два раза нажать батон1 и твоя форма уедет за 7 морей
Романнн вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных из формы в родительское окно OSKiller JavaScript, Ajax 1 29.01.2008 23:34
Окно MadDog__ Win Api 0 17.01.2008 00:33
Окно из DLL SunKnight Общие вопросы Delphi 1 16.12.2007 03:36
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. RustreX Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2007 19:28
Как сделать так чтобы окно формы всегда было поверх остальных окон? HelloZAPOR Общие вопросы Delphi 5 23.07.2007 08:05