Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Интерфейс игровых меню   Найти похожие ветки 

 
alexus   (2003-05-05 13:05) [0]

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


 
Darthman   (2003-05-05 15:02) [1]

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


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

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


 
k-man ©   (2003-05-05 22:04) [3]

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


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

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


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

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

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);

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


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

Чуть не забыл
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;



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.056 c
1-41168
АлексейКотляр
2003-11-03 18:50
2003.11.13
Как програмно нажать кнопку мыши?


1-41464
E_v_g_e_n_i_y
2003-10-29 08:55
2003.11.13
Операции с файлами


3-40797
Tornado
2003-10-22 15:08
2003.11.13
Проверка наличия таблицы


1-41285
Nucl
2003-10-31 14:31
2003.11.13
Проблема с QuickReport


8-41744
Smok_er
2003-07-11 16:38
2003.11.13
Skinable Interface