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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2009, 13:07   #1
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию Боковая форма

Подскажите как сделать форму выскакивающую с боку экрана при наведении на неё курсора мыши мыши
Gulik вне форума Ответить с цитированием
Старый 18.10.2009, 13:14   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

ловишь позицию мыши! если она на форме то в таймере меняешь form. Left на меньший пока он не станет меньше на form.width!
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 18.10.2009, 13:38   #3
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

function AnimateWindow(hwnd: HWND, dwTime: DWord, dwFlags: DWord);

Параметры:
hwnd - Дескриптор окна, которое анимируется. Вызывающий поток должен владеть этим окном.
dwTime - Устанавливает, сколько необходимо времени, чтобы воспроизвести мультипликацию, в миллисекундах. Как правило, воспроизведение мультипликации занимает 200 миллисекунд.
dwFlags - Определяет тип мультипликации. Этот параметр может быть одно или несколько нижеследующих значений. Обратите внимание! что, по умолчанию, эти флажки дают желаемый результат при показе окна. Чтобы получать желаемый результат при сокрытии окна, используйте флажок AW_HIDE и логический оператор OR с соответствующими флажками.

AW_SLIDE Использует слайдовую анимацию. По умолчанию используется анимационный ролик (прокрутка мультипликации). Этот флажок игнорируется тогда, когда пользуется с флажком AW_CENTER.
AW_ACTIVATE Активизирует окно (при показе окна). Не используйте это значение совместно с AW_HIDE.
AW_BLEND Использует эффект постепенного изменения прозрачности окна. Этот флажок может быть использован только в том случае, если параметр hwnd - окно верхнего уровня.
AW_HIDE Скрывает окно. По умолчанию, окно показывается на экран.
AW_CENTER Делает вид окна сжатым в точку, если используется флажок AW_HIDE или раскрытым из точки до полного размера, если флажок AW_HIDE не используется. Различные предписывающие флаги не имеют никакого действия.
AW_HOR_POSITIVE Анимирует окно слева направо. Этот флажок может быть использован с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.
AW_HOR_NEGATIVE Анимирует окно справа налево. Этот флажок может быть использован с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.
AW_VER_POSITIVE Анимирует окно сверху вниз. Этот флажок может быть использованы с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.
AW_VER_NEGATIVE Анимирует окно снизу вверх. Этот флажок может быть использован с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.

Код:
procedure TForm1.FormShow(Sender: TObject);
begin
  AnimateWindow(Handle, 500, AW_CENTER or AW_SLIDE);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  AnimateWindow(Handle, 500, AW_BLEND or AW_HIDE);
end;
delphiworld.narod.ru
W0LF вне форума Ответить с цитированием
Старый 18.10.2009, 14:10   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

дык, сбоку, это справа или слева?

...условно, по таймеру:
Код:
getcursorpos(t); //var t: tpoint
if t.x>screen.width-5 then form.left:= screen.width- width;
//дальше триггер, чтоб не уходило когда курсором юзаете
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 18.10.2009, 15:18   #5
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

Всем спосибо, все зделал. W0LF очень интересный у тебя пример, но не понятен. Если объяснишь как этим пользоваться переделаю.
Gulik вне форума Ответить с цитированием
Старый 18.10.2009, 15:25   #6
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

А что не понятно?
Вот пример:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if mouse.CursorPos.X<width then
AnimateWindow(Handle, 500, AW_HOR_POSITIVE) else
AnimateWindow(Handle, 500, AW_HOR_NEGATIVE or AW_HIDE);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
borderstyle:=bsnone;
width:=screen.WorkAreaWidth div 10;
height:=screen.WorkAreaHeight;
left:=0;
top:=0;
end;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
форма как в боковая потель с гаджетами jocry Общие вопросы Delphi 9 02.08.2009 19:28
форма Temka Общие вопросы Delphi 2 02.06.2009 18:16
форма blackstersl Общие вопросы Delphi 1 18.09.2008 15:23
Форма Killbrum Помощь студентам 8 21.08.2008 18:48
Форма subsonic Общие вопросы Delphi 5 10.01.2008 11:18