Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Интерфейс игровых меню


alexus ©   (2003-05-05 13:05:00) 

Привет всем.
Не подскажете идею как на основе стандартных компонентов собрать интерфейс менюшек, с анимацией и визуальными эффектами (кнопочки красивые там, открытие/закрытие окон и пр.).
Ставить аvi и jpeg"и и обрабатывать щелчки на них муторно, так как много памяти жрут. Может есть некий способ?


KefiR   (2003-05-06 22:47:00) [1]

Чуть не забыл
procedure Delay(Time:integer);
var TimeOut:TDateTime;
begin ( 0,Time div 3600, time div 60, time)

Чуть не забыл
procedure Delay(Time:integer);
var TimeOut:TDateTime;
begin
TimeOut:=Now + EncodeTime(0,Time div 3600, time div 60, time);
while now<timeout do Application.ProcessMessages;
end;


KefiR   (2003-05-06 22:45:00) [2]

Когда-то писал процедурку, чтоб двигать контрол по форме:

procedure TForm1.MoveControl(var control: TControl; DestPoint: TPoint; DelayTime: integer); //<<<---DelayTime - in seconds
procedure
var LastPoint:TPoint;
DelayBetween:integer;
dx,dy:single;
Rasst:single;
count:integer;
begin
LastPoint.x:=Control.Left; LastPoint.y:=control.Top; Rasst:=sqrt(sqr(LastPoint.x-DestPoint.x)+sqr(LastPoint.y-DestPoint.y));
DelayBetween:=Round(delaytime/rasst);
dx:=(DestPoint.x-LastPoint.x)/rasst;
dy:=(DestPoint.y-LastPoint.y)/rasst;
count:=1;
repeat
count:=count+1;
Control.Left:=LastPoint.x+round(count*dx);
control.Top:=LastPoint.y+round(count*dy);
Delay(delayBetween);
until (Control.top=destpoint.y) and (control.left=destpoint.x);
end;

Оптимизацией не занимался, т.к. саму процедуру писал около 10 минут. Недостаток - двигает только один контрол. Вызов:

MoveControl(TControl(Button1),Point(10,10),2);

особо на глючность не тестировал


alexus   (2003-05-06 12:20:00) [3]

Понял, спасибо за инфу.
Привет всем!


k-man   (2003-05-05 22:04:00) [4]

Ну не знаю, наверняка есть какие-нибудь компоненты.
Ну а если по делать простенькую менюшку, то могут помочь компоненты с событиями OnMouseLeave и OnMouseEnter.
Вешаешь на них какие-нибудь изменения и вполне пристойная менюшка может получиться. Но это довольно примитивное решение.
Если делать серьезно то самому.
Поэтому согласен с Darthman"ом лучше не использовать стандартные средства.


Плохой человек   (2003-05-05 20:25:00) [5]

Можно пустить на задним фон бегущий слой. И использовать TLayers.


Darthman   (2003-05-05 15:02:00) [6]

Есть один...
Не использовать стандартные средства.


Наверх

Титульная страница Поиск, карта сайта Написать письмо