PSPNoobster Posted February 27, 2012 Share Posted February 27, 2012 Вот хочу узнать, есть ли такое в гуи: или нет? если есть, то поподробнее... P.S. Где можно посмотреть какие объекты есть в гуи? Link to comment
MX_Master Posted February 27, 2012 Share Posted February 27, 2012 именно такой вид не гарантирую, но есть guiCreateScrollBar Link to comment
PSPNoobster Posted February 27, 2012 Author Share Posted February 27, 2012 именно такой вид не гарантирую, но есть guiCreateScrollBar Но как я понимаю, это скролл... а мне бы хотелось чтоб такая штучка меняла значение переменной... Или я не правильно понимаю? P.S. Такого вида точно нет, это просто как пример из Virtual DJ Link to comment
MX_Master Posted February 27, 2012 Share Posted February 27, 2012 guiScrollPaneGetVerticalScrollPosition для получения позиции скрола, поэтому он как бегунок тоже подходит. Для примера можно посмотреть горизонтальные бегунки в настройках МТА. Правда, на вики там нет инфы по позиции скрола, сегодня добавлю Link to comment
PSPNoobster Posted February 27, 2012 Author Share Posted February 27, 2012 guiScrollPaneGetVerticalScrollPosition для получения позиции скрола, поэтому он как бегунок тоже подходит. Для примера можно посмотреть горизонтальные бегунки в настройках МТА. Правда, на вики там нет инфы по позиции скрола, сегодня добавлю Да, мне становится яснее, как это должно выглядеть... но. Но я не верю что всё так просто Ок, буду ждать... спс Link to comment
MX_Master Posted February 27, 2012 Share Posted February 27, 2012 OK, добавил инфо. Значение колеблется от 0 до 100, с шагом по 0.1. Link to comment
lil Toady Posted February 27, 2012 Share Posted February 27, 2012 При всем желании можно точь в точь как на рисунке сделать, двумя картинками для ползунка и фона, передвигая ползунок за мышкой если удерживается ЛКМ. Но если с луа еще не особо знаком, лучше начать познавать с чего-то попроще. Link to comment
PSPNoobster Posted February 27, 2012 Author Share Posted February 27, 2012 При всем желании можно точь в точь как на рисунке сделать, двумя картинками для ползунка и фона, передвигая ползунок за мышкой если удерживается ЛКМ. Но если с луа еще не особо знаком, лучше начать познавать с чего-то попроще. С луа очень слабо знаком... Да и в гуи не силён... Но попробовать стоит... Link to comment
PSPNoobster Posted February 27, 2012 Author Share Posted February 27, 2012 Эм... может я чего-то не понимаю, но как не кручу верчу, ничего не появляется... window = guiCreateWindow(15,300,150,200,"test",false) guiWindowSetSizable(window,false) guiSetVisible(window, false) pane = guiCreateScrollPane(0,0,50,100,false,window) Координаты менял... всё менял... всё равно ничего не видно... Что не так? Link to comment
MX_Master Posted February 27, 2012 Share Posted February 27, 2012 окно же сделал невидимым guiSetVisible(window, false) Link to comment
PSPNoobster Posted February 27, 2012 Author Share Posted February 27, 2012 окно же сделал невидимым guiSetVisible(window, false) Это же не весть код! Оно становится видимым, но только само окно, а бегунок всё равно невидно Link to comment
MX_Master Posted February 27, 2012 Share Posted February 27, 2012 Начни с показа кода (: Link to comment
PSPNoobster Posted February 27, 2012 Author Share Posted February 27, 2012 Начни с показа кода (: Смысл показывать код не вижу, т.к. я уже сказал, что окно появляется, и кнопка появляется, а бегунок как не тыкай - нет! Ну ладно, client.lua addEventHandler("onClientResourceStart", resourceRoot, function() bindKey("F4", "down", showRadio) local vol = 0.2 local position = guiScrollPaneGetVerticalScrollPosition( vpane ) end ) function startRadio() if not sound then sound = playSound('http://188.134.8.54:24680', false) setSoundVolume(sound, vol) else destroyElement(sound) sound = nil end end function showRadio() if ( guiGetVisible ( window) == true ) then guiSetVisible ( window, false ) showCursor(false) elseif ( guiGetVisible ( window) == false ) then guiSetVisible ( window, true ) showCursor(true) end end window = guiCreateWindow(15,300,150,200,"[CSRP] Radio Panel",false) guiWindowSetSizable(window,false) guiSetVisible(window, false) radio = guiCreateButton(25,25,100,50,"Play/Stop Radio",false,window) addEventHandler ( "onClientGUIClick", radio, startRadio, false ) vpane = guiCreateScrollPane(0,0,50,100,false,window) Link to comment
MX_Master Posted February 28, 2012 Share Posted February 28, 2012 я канеш без П почему нет скролла, ну пример с вики попробуй Link to comment
PSPNoobster Posted February 28, 2012 Author Share Posted February 28, 2012 я канеш без П почему нет скролла, ну пример с вики попробуй Ну во первых, я зря поверил тебе на слово и взял команды "guiCreateScrollBar" и "guiScrollPaneGetVerticalScrollPosition", когда надо было "guiCreateScrollPane" и "guiScrollPaneGetVerticalScrollPosition"... Но самое интересное, что guiCreateScrollBar создаётся норм и всё видно... и дебаг орёт что в аргументах guiScrollPaneGetVerticalScrollPosition ожидал увидеть guiCreateScrollPane, а не guiCreateScrollBar. Однако если поставить вместо guiCreateScrollBar - guiCreateScrollPane, то ничего не появляется... Взял код guiCreateScrollPane с вики потестить - в левом углу появляется пустое окно, и на этом всё! Неужели guiCreateScrollPane - баганутая вещь? Link to comment
MX_Master Posted February 28, 2012 Share Posted February 28, 2012 Соряй, я не заметил свою же ошибку, конечно, scroll pane (: Link to comment
PSPNoobster Posted February 28, 2012 Author Share Posted February 28, 2012 Соряй, я не заметил свою же ошибку, конечно, scroll pane (: Ок, соряю. Но всё таки скролл пане не появляется.. и так и сяк а в примере на вики нерабочий код, как я понимаю... Link to comment
Lex128 Posted February 28, 2012 Share Posted February 28, 2012 Вобще scrollpane это для показа чего-то большого, на маленькой области с простой прокруткой содержимого.. например можно в маленьком window создать scrollpane и уже в ней создавать все другие gui элементы, они будут видны как и без scrollpane, но когда элементы начнут выходить за рамки window, то появятся соответствующие скролы этого самого scrollpane и можно будет "прокрутить" окно к вышедшим за рамки элементам. А для guiCreateScrollBar посоветую использовать guiScrollBarGetScrollPosition для получения текущей прокрутки твоего отдельного скролбара, кстати на вики эти 2 функции для работы со скролбаром находятся с его созданием) https://wiki.multitheftauto.com/wiki/Cli ... Scrollbars Link to comment
PSPNoobster Posted February 29, 2012 Author Share Posted February 29, 2012 Вобще scrollpane это для показа чего-то большого, на маленькой области с простой прокруткой содержимого..например можно в маленьком window создать scrollpane и уже в ней создавать все другие gui элементы, они будут видны как и без scrollpane, но когда элементы начнут выходить за рамки window, то появятся соответствующие скролы этого самого scrollpane и можно будет "прокрутить" окно к вышедшим за рамки элементам. А для guiCreateScrollBar посоветую использовать guiScrollBarGetScrollPosition для получения текущей прокрутки твоего отдельного скролбара, кстати на вики эти 2 функции для работы со скролбаром находятся с его созданием) https://wiki.multitheftauto.com/wiki/Cli ... Scrollbars Ок, попробую, отпишусь позже... Link to comment
PSPNoobster Posted March 19, 2012 Author Share Posted March 19, 2012 Да, немного получилось, но как сделать проверку на числовое значение переменной scrollvolume? Например если число от 0 до 20 то вызывать функцию startA, а если от 20 до 40, то startB? function OnScroll() scrollvolume = guiScrollBarGetScrollPosition ( scrolll ) if scrollvolume > 0 and < 20 then startA else if scrollvolume > 20 and < 40 then startB else if scrollvolume > 40 and < 60 then startC else if scrollvolume > 60 and < 80 then startD else if scrollvolume > 80 and < 100 then startE end addEventHandler("onClientGUIScroll",getRootElement(),OnScroll) Реально не знаю даже такой примитив Link to comment
TwiX! Posted March 19, 2012 Share Posted March 19, 2012 Да, немного получилось, но как сделать проверку на числовое значение переменной scrollvolume? Например если число от 0 до 20 то вызывать функцию startA, а если от 20 до 40, то startB? function OnScroll() scrollvolume = guiScrollBarGetScrollPosition ( scrolll ) if scrollvolume > 0 and < 20 then startA else if scrollvolume > 20 and < 40 then startB else if scrollvolume > 40 and < 60 then startC else if scrollvolume > 60 and < 80 then startD else if scrollvolume > 80 and < 100 then startE end addEventHandler("onClientGUIScroll",getRootElement(),OnScroll) Реально не знаю даже такой примитив function OnScroll() scrollvolume = guiScrollBarGetScrollPosition ( scrolll ) Volume = scrollvolume/100 if Volume > 0 and < 20 then startA() else if Volume > 20 and < 40 then startB() else if Volume > 40 and < 60 then startC() else if Volume > 60 and < 80 then startD() else if Volume > 80 and < 100 then startE() end addEventHandler("onClientGUIScroll",getRootElement(),OnScroll) Link to comment
PSPNoobster Posted March 19, 2012 Author Share Posted March 19, 2012 function OnScroll() scrollvolume = guiScrollBarGetScrollPosition ( scrolll ) Volume = scrollvolume/100 if Volume > 0 and < 20 then startA() else if Volume > 20 and < 40 then startB() else if Volume > 40 and < 60 then startC() else if Volume > 60 and < 80 then startD() else if Volume > 80 and < 100 then startE() end addEventHandler("onClientGUIScroll",getRootElement(),OnScroll) дебаг пишет - 77 - unexpected symbol near '<' и как это исправить? оО Link to comment
Kenix Posted March 19, 2012 Share Posted March 19, 2012 function fOnScroll( ) local scrollvolume = guiScrollBarGetScrollPosition ( scrolll ) if scrollvolume > 0 and scrollvolume < 20 then startA( ) elseif scrollvolume > 20 and scrollvolume < 40 then startB( ) elseif scrollvolume > 40 and scrollvolume < 60 then startC( ) elseif scrollvolume > 60 and scrollvolume < 80 then startD( ) elseif scrollvolume > 80 and scrollvolume < 100 then startE( ) end end addEventHandler( "onClientGUIScroll", root, fOnScroll ) Условия неверные были. viewtopic.php?f=141&t=32458 Link to comment
TwiX! Posted March 20, 2012 Share Posted March 20, 2012 function OnScroll() scrollvolume = guiScrollBarGetScrollPosition ( scrolll ) Volume = scrollvolume/100 if Volume > 0 and < 20 then startA() else if Volume > 20 and < 40 then startB() else if Volume > 40 and < 60 then startC() else if Volume > 60 and < 80 then startD() else if Volume > 80 and < 100 then startE() end addEventHandler("onClientGUIScroll",getRootElement(),OnScroll) дебаг пишет - 77 - unexpected symbol near '<' и как это исправить? оО я тебе примерно показал... не для ctrl +c ctrl +v.. Link to comment
PSPNoobster Posted March 20, 2012 Author Share Posted March 20, 2012 я тебе примерно показал... не для ctrl +c ctrl +v.. Ну я тоже же не с пустыми руками пришёл... Тем более твой вариант тоже не работал... Kenix, just thanks Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now