![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Доброго времени суток!
У меня есть готовые приложение, но мне надо добавить эффект перелистывания форм как книгу, например как в программе http://www.softsalad.ru/software/not...organizer.html или http://luxedition.ru/flippingbook_pd...demonstrations Подскажите как? или где почитать про это. Заранее спасибо! |
|
#2
|
|||
|
|||
|
Можно сделать на DirectX. Страница перемещается по траектории, похожей на цилиндр. Включить освещение.
|
|
#3
|
||||
|
||||
|
А можно просто воспользоваться компонентом ScrollBox. Накидать на него нужные вам контролы и на пару кнопок (Назад, Вперед) повесить примерно такое событие:
Код:
procedure TForm4.Button1Click(Sender: TObject);
Var i, dx: Integer;
begin
if Sender = Button1 then dx := -1;
if Sender = Button2 then dx := 1;
for i := 0 to 200
do begin
ScrollBox1.ScrollBy(dx, 0);
Application.ProcessMessages;
end;
end; |
|
#4
|
||||
|
||||
|
Если нужен именно эффект перелистывания форм, то представляю себе примерный алгоритм работы так:
>Пользователь жмет кнопку "вперед": 1) все элементы управления блокируются 2) заранее заготовленный скрин формы отображается поверх настоящей формы 3) настоящая форма переключает свой режим (следующая страница например) 4) отображается заранее заготовленный скрин следующей страницы (формы) 5) поверх него отображается слегка искаженный заранее заготовленный скрин перелистываемой формы, эффект искажения должен быть похож на перелистывание страницы (ищите алгоритм, где-то должен быть) 6) и так далее, несколько кадров анимации (меняеться степень искажения перелистываемой страницы) 7) настоящая форма разблокируется Представляю себе работу примерно так. Набросок этого "алгоритма" будет сложнее если страницы двусторонние. Я бы копал в этом направлении, так как вкручивать DX или OpenGL в проходное приложение смысла нет. |
|
#5
|
|||
|
|||
|
Спасибо за ответы!
|