Jump to content

Есть такое или нет?


Recommended Posts

именно такой вид не гарантирую, но есть guiCreateScrollBar

Но как я понимаю, это скролл... а мне бы хотелось чтоб такая штучка меняла значение переменной...

Или я не правильно понимаю?

P.S. Такого вида точно нет, это просто как пример из Virtual DJ :mrgreen:

Link to comment

guiScrollPaneGetVerticalScrollPosition для получения позиции скрола, поэтому он как бегунок тоже подходит. Для примера можно посмотреть горизонтальные бегунки в настройках МТА. Правда, на вики там нет инфы по позиции скрола, сегодня добавлю

Link to comment
guiScrollPaneGetVerticalScrollPosition для получения позиции скрола, поэтому он как бегунок тоже подходит. Для примера можно посмотреть горизонтальные бегунки в настройках МТА. Правда, на вики там нет инфы по позиции скрола, сегодня добавлю

Да, мне становится яснее, как это должно выглядеть... но. :!:

Но я не верю что всё так просто :mrgreen:

Ок, буду ждать... спс

Link to comment

При всем желании можно точь в точь как на рисунке сделать, двумя картинками для ползунка и фона, передвигая ползунок за мышкой если удерживается ЛКМ. Но если с луа еще не особо знаком, лучше начать познавать с чего-то попроще.

Link to comment
При всем желании можно точь в точь как на рисунке сделать, двумя картинками для ползунка и фона, передвигая ползунок за мышкой если удерживается ЛКМ. Но если с луа еще не особо знаком, лучше начать познавать с чего-то попроще.

С луа очень слабо знаком... Да и в гуи не силён... Но попробовать стоит... :fadein:

Link to comment

Эм... может я чего-то не понимаю, но как не кручу верчу, ничего не появляется... :|

  
       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
Начни с показа кода (:

Смысл показывать код не вижу, т.к. я уже сказал, что окно появляется, и кнопка появляется, а бегунок как не тыкай - нет!

Ну ладно, 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
я канеш без П почему нет скролла, ну пример с вики попробуй

Ну во первых, я зря поверил тебе на слово и взял команды "guiCreateScrollBar" и "guiScrollPaneGetVerticalScrollPosition", когда надо было "guiCreateScrollPane" и "guiScrollPaneGetVerticalScrollPosition"...

Но самое интересное, что guiCreateScrollBar создаётся норм и всё видно... и дебаг орёт что в аргументах guiScrollPaneGetVerticalScrollPosition ожидал увидеть guiCreateScrollPane, а не guiCreateScrollBar. Однако если поставить вместо guiCreateScrollBar - guiCreateScrollPane, то ничего не появляется... Взял код guiCreateScrollPane с вики потестить - в левом углу появляется пустое окно, и на этом всё! Неужели guiCreateScrollPane - баганутая вещь? :shock:

Link to comment
Соряй, я не заметил свою же ошибку, конечно, scroll pane (:

Ок, соряю. Но всё таки скролл пане не появляется.. и так и сяк а в примере на вики нерабочий код, как я понимаю...

Link to comment

Вобще scrollpane это для показа чего-то большого, на маленькой области с простой прокруткой содержимого..

например можно в маленьком window создать scrollpane и уже в ней создавать все другие gui элементы, они будут видны как и без scrollpane, но когда элементы начнут выходить за рамки window, то появятся соответствующие скролы этого самого scrollpane и можно будет "прокрутить" окно к вышедшим за рамки элементам.

А для guiCreateScrollBar посоветую использовать guiScrollBarGetScrollPosition для получения текущей прокрутки твоего отдельного скролбара, кстати на вики эти 2 функции для работы со скролбаром находятся с его созданием)

https://wiki.multitheftauto.com/wiki/Cli ... Scrollbars

Link to comment
Вобще scrollpane это для показа чего-то большого, на маленькой области с простой прокруткой содержимого..

например можно в маленьком window создать scrollpane и уже в ней создавать все другие gui элементы, они будут видны как и без scrollpane, но когда элементы начнут выходить за рамки window, то появятся соответствующие скролы этого самого scrollpane и можно будет "прокрутить" окно к вышедшим за рамки элементам.

А для guiCreateScrollBar посоветую использовать guiScrollBarGetScrollPosition для получения текущей прокрутки твоего отдельного скролбара, кстати на вики эти 2 функции для работы со скролбаром находятся с его созданием)

https://wiki.multitheftauto.com/wiki/Cli ... Scrollbars

Ок, попробую, отпишусь позже...

Link to comment
  • 3 weeks later...

Да, немного получилось, но как сделать проверку на числовое значение переменной 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
Да, немного получилось, но как сделать проверку на числовое значение переменной 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
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
  
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
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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...