Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.12.2009, 14:51
Ztrel Ztrel вне форума
Прохожий
 
Регистрация: 10.08.2009
Сообщения: 25
Репутация: 10
Сообщение Анимация окна

Здравствуйте, уважаемые программисты всея форума!
У меня появился еще один вопросик...

В Delphi усть хорошенькая функция AnimateWindow. Как пользоваться ею я знаю, но возникла проблема - при компиляции программы сначала происходит компиляция, и лишь потом центрирование формы по рабочему столу! А должно быть наоборот...

Пытался сначала написать так:

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Position:= poScreenCenter;
end;

//  анимация окна при появлении
procedure TForm1.FormShow(Sender: TObject);
begin
AnimateWindow(Handle, 1000, AW_BLEND or AW_SLIDE);
end;

Но ничего не получилось, хотя по логике вроде бы должно

Помогите пожалуйста!

P.S. - Заранее спасибо всем откликнувшимся!
Ответить с цитированием
  #2  
Старый 06.12.2009, 16:32
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Код:
Form1.Position:= poScreenCenter;
Этим ты лишь указываешь окну установить при появлении окна нужную позицию, но не устанавливаешь саму позицию этим параметром, юзай Left Top для этого, вычислить середину окна не сложно
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
  #3  
Старый 06.12.2009, 17:40
Ztrel Ztrel вне форума
Прохожий
 
Регистрация: 10.08.2009
Сообщения: 25
Репутация: 10
По умолчанию

Что-то у меня не получается...
Получилось лишь получить размеры экрана... А что с ними дальше делать - не представляю...

Помогите пожалуйста (
Ответить с цитированием
  #4  
Старый 07.12.2009, 00:22
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Код:
procedure TForm1.FormShow(Sender: TObject);
begin
 Application.MainForm.Left := (Screen.Width - Application.MainForm.Width) shr 1;
 Application.MainForm.Top := (Screen.Height - Application.MainForm.Height) shr 1;
 AnimateWindow(Application.MainForm.Handle, 1000, AW_BLEND or AW_SLIDE);
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 07.12.2009, 14:51
Ztrel Ztrel вне форума
Прохожий
 
Регистрация: 10.08.2009
Сообщения: 25
Репутация: 10
Смех СПАСИБО!!!

Цитата:
Сообщение от Страдалецъ
Код:
procedure TForm1.FormShow(Sender: TObject);
begin
 Application.MainForm.Left := (Screen.Width - Application.MainForm.Width) shr 1;
 Application.MainForm.Top := (Screen.Height - Application.MainForm.Height) shr 1;
 AnimateWindow(Application.MainForm.Handle, 1000, AW_BLEND or AW_SLIDE);
end;


Все работает! Спасибо большое! )
Ответить с цитированием
  #6  
Старый 08.12.2009, 14:05
AntoNechayuk AntoNechayuk вне форума
Новичок
 
Регистрация: 23.11.2009
Сообщения: 58
Репутация: 10
Смущение

Цитата:
Страдалецъ
PHP код:
Код:
procedure TForm1.FormShow(SenderTObject);
begin
 Application
.MainForm.Left := (Screen.Width Application.MainForm.Widthshr 1;
 
Application.MainForm.Top := (Screen.Height Application.MainForm.Heightshr 1;
 
AnimateWindow(Application.MainForm.Handle1000AW_BLEND or AW_SLIDE);
end
а у меня не работает как надо: пока на появившемся окне не "кликнешь" - изображение окна глючное и кнопок вообще нет!
Ответить с цитированием
  #7  
Старый 08.12.2009, 14:59
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Цитата:
Сообщение от AntoNechayuk
а у меня не работает как надо: пока на появившемся окне не "кликнешь" - изображение окна глючное и кнопок вообще нет!
Этот метод глючный, как вариант можно использовать TTimer+Form1.AlphaBlend+Form1.AlphaBlendValue, то есть в начале программы ставить на 0 AlphaBlendValue и с помощью таймера прибавлять значение
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
  #8  
Старый 17.12.2009, 13:16
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Цитата:
Сообщение от AntoNechayuk
а у меня не работает как надо: пока на появившемся окне не "кликнешь" - изображение окна глючное и кнопок вообще нет!
Нечто похожеее у меня было, когда я использовал компоненты сторонние для скинирования, обновление этих компонент исправило ситуевину.
Может у вас аналогичная ситуация?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:34.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025