Вверх ↑
Этот топик читают: Гость
Ответов: 1841
Рейтинг: 369
#1: 2010-05-27 21:32:46 ЛС | профиль | цитата
Всем привет!
Вот решил попробовать сделать плавное изменение высоты формы (когда-то увидел в одном из трейнеров) собственно всё получилось но мне кажется схему можно уменьшить на пару элементов с помощью формул но т.к. я в математике не силён то решил спросить у наших Гуру (Форумчан) о возможной оптимизации схемы
Вот собственно и мои наработки...
Схема

P.S. Не помешал бы компонент "Плавное изменение размеров формы"

карма: 1
1
файлы: 1code_18539.txt [2.4KB] [199]
Голосовали:ser_davkin
Разработчик
Ответов: 26164
Рейтинг: 2127
#2: 2010-05-27 21:37:10 ЛС | профиль | цитата
CriDos писал(а):
Не помешал бы компонент "Плавное изменение размеров формы"

Совершенно, не актуально. Ты первый, кто это просит
карма: 22

0
Ответов: 1841
Рейтинг: 369
#3: 2010-05-27 21:44:50 ЛС | профиль | цитата
хм, программа вылетает если использовать FPC компилятор
карма: 1
0
Ответов: 4641
Рейтинг: 334
#4: 2010-05-27 21:48:08 ЛС | профиль | цитата
CriDos, так что ли?
code_18540.txt
------------ Дoбавленo в 21.48:
CriDos писал(а):
использовать FPC компилятор

это из за таймера независимого...он же как и отдельные потоки под fpc не стабилен.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1code_18540.txt [893B] [129]
Ответов: 970
Рейтинг: 270
#5: 2010-05-27 21:49:10 ЛС | профиль | цитата
У меня на FPC компилируется, но с ошибками в отладке (если заменить на обычный таймер)

Отладка
Error[0]:
Подготовка к сборке проекта...
Генерация кода целевого языка
Компоновка проекта...
Command line: fpc.exe '"C:\Program Files\HiAsm\Elements\delphi\code\Project10.pas"' -Sd -Mdelphi '"-FEC:\Program Files\HiAsm\"' '"-FUC:\Program Files\HiAsm\Elements\delphi\code\units"' -FDtools\ -CX -dF_P
Free Pascal Compiler version 1.9.6 [2004/12/31] for i386
Copyright (c) 1993-2004 by Florian Klaempfl
Target OS: Win32 for i386
Compiling C:\Program Files\HiAsm\Elements\delphi\code\Project10.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiMainForm_214EED0.pas
Compiling WINDOWS.pas
WINDOWS.pas(1821,4) Warning: Illegal compiler directive "$NODEFINE"
WINDOWS.pas(1823,5) Warning: Illegal compiler directive "$HPPEMIT"
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiMainForm.pas
Compiling kol.pas
Compiling MESSAGES.pas
Compiling RichEdit.pas
kol.pas(5566,69) Warning: range check error while evaluating constants
kol.pas(5570,76) Warning: range check error while evaluating constants
kol.pas(6743,56) Warning: range check error while evaluating constants
kol.pas(6897,56) Warning: range check error while evaluating constants
kol.pas(10706,30) Warning: range check error while evaluating constants
Compiling SHELLAPI.pas
Compiling COMMDLG.pas
Compiling SHLOBJ.pas
kol.pas(19692,10) Warning: Function result does not seem to be set
kol.pas(23414,3) Warning: Some fields coming after "fCustom" weren't initialized
kol.pas(23424,3) Warning: Some fields coming after "fCustom" weren't initialized
kol.pas(41643,60) Warning: Mixing signed expressions and longwords gives a 64bit result
kol.pas(41646,60) Warning: Mixing signed expressions and longwords gives a 64bit result
kol.pas(50737,63) Warning: Mixing signed expressions and longwords gives a 64bit result
kol.pas(53410,28) Warning: Mixing signed expressions and longwords gives a 64bit result
kol.pas(53409,44) Warning: Conversion between ordinals and pointers is not portable
kol.pas(54982,63) Warning: Mixing signed expressions and longwords gives a 64bit result
kol.pas(55617,9) Note: Local variable "ClientAfter" is assigned but never used
kol.pas(61381,16) Warning: Class types "TAction" and "TObj" are not related
kol.pas(61568,22) Warning: Class types "TActionList" and "TObj" are not related
Compiling C:\Program Files\HiAsm\Elements\delphi\code\Share.pas
Compiling winsock.pas
winsock.pas(13,2) Warning: Illegal compiler directive "$WEAKPACKAGEUNIT"
winsock.pas(44,3) Warning: Illegal compiler directive "$HPPEMIT"
winsock.pas(51,4) Warning: Illegal compiler directive "$NODEFINE"
Compiling C:\Program Files\HiAsm\Elements\delphi\code\Debug.pas
Share.pas(2108,13) Warning: use extended syntax of NEW and DISPOSE for instances of objects
Compiling C:\Program Files\HiAsm\Elements\delphi\code\Win.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiHintManager.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\WinLayout.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiLayoutSpacer.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiTransparentManager.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiMainForm.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiRGN_OutlinePicture.pas
hiTransparentManager.pas(156,3) Note: Local variable "form" is assigned but never used
hiTransparentManager.pas(205,3) Note: Local variable "form" is assigned but never used
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiButton.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiSwitch.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiHub.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiSizeWindow.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiMath.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiMathParse.pas
hiMathParse.pas(623,9) Warning: "fdivp" without operand translated into "fdivp %st,%st(1)"
hiMathParse.pas(644,9) Warning: fdivrp without operand translated into fdivrpP
hiMathParse.pas(644,9) Warning: "fdivrp" without operand translated into "fdivrp %st,%st(1)"
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiCounter.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiIndexToChanel.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiMemory.pas
Compiling C:\Program Files\HiAsm\Elements\delphi\code\hiTimer.pas
Compiling resource C:\Program Files\HiAsm\Elements\delphi\code\allres.res
Linking C:\Program Files\HiAsm\Project10.exe
Project10.pas(19,1) Fatal: Can't open executable C:\Program Files\HiAsm\Project10.exe
Error: C:\Program Files\HiAsm\compiler\fpc\ppc386.exe returned an error exitcode (normal if you did not specifiy a source file to be compiled)
Сборка завершена.
карма: 0

0
Ответов: 1841
Рейтинг: 369
#6: 2010-05-27 21:51:18 ЛС | профиль | цитата
Ravilr писал(а):
CriDos, так что ли?

Ravilr, а ты попробуй нажать кнопку "Открыть" и не дожидаясь завершения изменения формы нажать ещё рас и так несколько рас
карма: 1
0
Ответов: 970
Рейтинг: 270
#7: 2010-05-27 21:51:22 ЛС | профиль | цитата
Ravilr, а если изменить размер формы? CrisDos'у вроде надо чтобы при любом размере можно было... И какие-то глюки при нажатии несколько раз на кнопку...

code_18541.txt
карма: 0

0
файлы: 1code_18541.txt [898B] [155]
Ответов: 1841
Рейтинг: 369
#8: 2010-05-27 21:53:48 ЛС | профиль | цитата
Genius, именно + в моей схеме можно поменяв пару линков плавно менять и ширину формы
карма: 1
0
Ответов: 4641
Рейтинг: 334
#9: 2010-05-27 22:08:51 ЛС | профиль | цитата
ну вы что...все за вас должен доделывать... сами уже дальше... начало то положено!
------------ Дoбавленo в 22.08:
кстати, CriDos, что бы не мучится с доделыванием схемы, просто блокируй кнопку, чтобы не нажимать ее несколько раз, а после таймера onstop разблокируй обратно.
Это будет наверно наиболее правильное решение.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 1841
Рейтинг: 369
#10: 2010-05-27 22:15:43 ЛС | профиль | цитата
Ravilr, зачем доделывать? я же попросил если есть такой вариант оптимизировать мою схему или может кто уже делал такое выложить свой вариант...

P.S. Я изначально перепробовал много вариантов но в конце пришёл к этому т.к. мне нужна была возможность плавного изменения (высоты или ширины) формы, чтобы в момент плавного изменения формы можно было моментально обратить действие, ну и чтобы плавное изменение работало на любом размере формы без изменения параметров схемы...
------------ Дoбавленo в 22.15:
Ravilr, почему то создатели Win 7 предпочли вариант с возможностью обращения плавного изменения формы в любой момент да и так красивей и удобней
карма: 1
0
Ответов: 4641
Рейтинг: 334
#11: 2010-05-27 22:18:12 ЛС | профиль | цитата
[flood]
CriDos писал(а):
почему то создатели Win 7

я не пользователь win7 и не особый любитель рюшечек... мне по барабану в какой момент времени обратить движение формы...на 0,5 секунды раньше или позже... так что извини.[/flood]
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Гость
Ответов: 17029
Рейтинг: 0
#12: 2010-05-27 22:27:23 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 11:20:17
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#13: 2010-05-27 22:28:11 ЛС | профиль | цитата
Выше - это я. Достало.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#14: 2010-05-27 22:35:00 ЛС | профиль | цитата
bzq-79-181-122-11.red.bez писал(а):
когда форма плавно возникает из центра, и призакрытии плавно сворачивается

Так это есть уже


Add(MainForm,3960906,154,315)
{
Width=494
Height=76
Visible=1
Name="form"
Caption="Плавное возникновение из центра"
BorderStyle=4
Position=1
Point(doHeight)
Point(Height)
Point(onClose)
link(onCreate,14839832:doTimer,[(194,335)(194,314)])
link(onClose,10116729:doWork2,[])
}
Add(UseWinAnimation,7963859,343,322)
{
ControlManager="form"
CENTER=0
Point(doActivationMode)
}
Add(Timer,14839832,203,308)
{
Interval=25
Enable=1
AutoStop=1
link(onTimer,10116729:doWork1,[(243,314)(243,335)])
}
Add(ChanelToIndex,10116729,252,329)
{
link(onIndex,2724978:doEvent1,[])
}
Add(Hub,2724978,301,329)
{
link(onEvent1,7963859:doActivationMode,[])
link(onEvent2,7963859:doAnimation,[(329,342)(329,328)])
}


Там, кстати, еще спецэффекты есть. Рекомендую посмотреть пример в Wiki
карма: 22

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#15: 2010-05-27 23:30:02 ЛС | профиль | цитата
Вот ваш пример, упрощенный -- дальше некуда

code_18542.txt
карма: 22

1
файлы: 1code_18542.txt [1.1KB] [175]
Голосовали:CriDos
Сообщение
...
Прикрепленные файлы
(файлы не залиты)