Maikele Posted August 3, 2017 Share Posted August 3, 2017 (edited) После нажатие на кнопку, не хочет удаляться функция обработчика из события, что не так сделал? ( onClientRender пробовал ) function mainDx () dxDrawImage(xn, xv, wn, hv, "images/bground.png", 0, 0, 0, tocolor(255, 255, 255, 210), false)--#Фон dxDrawText("Войти", xn + 106, xv + hv - 84, 120, 27, tocolor(255, 255, 255, 225), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("Купить", xn + 238, xv + hv - 84, 120, 27, tocolor(255, 255, 255, 225), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawText("Сменить ключ", xn + 148, xv + hv - 47, 120, 27, tocolor(255, 255, 255, 225), 1.00, "default-bold", "left", "top", false, false, false, false, false) end buyButton = guiCreateButton( xn + 64, xv + hv - 90, 120, 27, 'Купить', false ) guiSetAlpha(buyButton, 0) guiSetVisible (buyButton, false ) addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == buyButton then --#Если нажать на кнопку "купить", то removeEventHandler("onClientPreRender", getRootElement(), mainDx); --#Удаляет основное окно guiSetVisible ( buyButton, false ) --#Удаляет кнопку addEventHandler("onClientPreRender", getRootElement(), HouseWindowDx); --#Открывается новое окно end end Edited August 3, 2017 by Maikele Link to comment
CharlySHOMAN Posted August 5, 2017 Share Posted August 5, 2017 removeEventHandler("onClientPreRender", getRootElement(), mainDx) addEventHandler("onClientPreRender", getRootElement(), HouseWindowDx) У тебя названия функций разные. При removeEventHandler нужно использовать ту функцию, которую ты указывал в addEventHandler ---------------------------------------------------------------- addEventHandler( 'onClientGUIClick', root, function( btn ) А зачем ты прикрепляешь этот обработчик к корню? Гораздо легче будет, если вместо "root" указать саму кнопку ( buyButton ). И тогда условие if source == buyButton then не понадобится, т.к. событие будет запускаться только по нажатию на данную кнопку. 1 Link to comment
Maikele Posted August 5, 2017 Author Share Posted August 5, 2017 (edited) 8 hours ago, CharlySHOMAN said: Название разные, потому что у меня 2 окна. Открываешь одно окно, при нажатие на кнопку открывается другое, вот я и сделал так. addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hm_gui['icon_buy'] then guiSetVisible( hm_gui['wnd_key_onBuy'], true ); guiSetText( hm_gui['onBuy_edit'], 'Ключ' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseBuyWindow) elseif source == hm_gui['icon_sale'] then guiSetVisible( hm_gui['wnd_key_onSale'], true ); guiSetText( hm_gui['onSale_edit'], 'Key' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseSaleWindow) elseif source == hm_gui['icon_key'] then guiSetVisible( hm_gui['wnd_key_onChange'], true ); guiSetText( hm_gui['onChange_edit_Old'], 'Old key' ); guiSetText( hm_gui['onChange_edit_New'], 'New key' ); guiSetText( hm_gui['onChange_edit_RepeatNew'], 'Repeat new key' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseKeyWindow) elseif source == hm_gui['icon_newowner'] then guiSetVisible( hm_gui['wnd_key_onNewOwner'], true ); guiSetText( hm_gui['onNewOwner_keyEdit'], 'Key' ); guiSetText( hm_gui['onNewOwner_nameEdit'], 'Account Name' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseNewOwnerWindow) elseif source == hm_gui['icon_destroy'] then guiSetVisible( hm_gui['wnd_onDestroy'], true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) end end ) Вот весь код. Если нажимаешь кнопку в основном окне, то основное окно должно скрываться, а новое открываться и т.д. UPD: Не два окна, их несколько Edited August 5, 2017 by Maikele Link to comment
CharlySHOMAN Posted August 6, 2017 Share Posted August 6, 2017 20 hours ago, Maikele said: Название разные, потому что у меня 2 окна. Открываешь одно окно, при нажатие на кнопку открывается другое, вот я и сделал так. addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hm_gui['icon_buy'] then guiSetVisible( hm_gui['wnd_key_onBuy'], true ); guiSetText( hm_gui['onBuy_edit'], 'Ключ' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseBuyWindow) elseif source == hm_gui['icon_sale'] then guiSetVisible( hm_gui['wnd_key_onSale'], true ); guiSetText( hm_gui['onSale_edit'], 'Key' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseSaleWindow) elseif source == hm_gui['icon_key'] then guiSetVisible( hm_gui['wnd_key_onChange'], true ); guiSetText( hm_gui['onChange_edit_Old'], 'Old key' ); guiSetText( hm_gui['onChange_edit_New'], 'New key' ); guiSetText( hm_gui['onChange_edit_RepeatNew'], 'Repeat new key' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseKeyWindow) elseif source == hm_gui['icon_newowner'] then guiSetVisible( hm_gui['wnd_key_onNewOwner'], true ); guiSetText( hm_gui['onNewOwner_keyEdit'], 'Key' ); guiSetText( hm_gui['onNewOwner_nameEdit'], 'Account Name' ); guiSetInputEnabled( true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) addEventHandler("onClientPreRender", getRootElement(), houseNewOwnerWindow) elseif source == hm_gui['icon_destroy'] then guiSetVisible( hm_gui['wnd_onDestroy'], true ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) end end ) Вот весь код. Если нажимаешь кнопку в основном окне, то основное окно должно скрываться, а новое открываться и т.д. UPD: Не два окна, их несколько hm_gui это таблица из кнопок? Я тут посмотрел твой первый пост. Там ты скрываешь кнопку guiSetVisible (buyButton, false ). От скрытой кнопки разве будет запускаться событие? Вроде как нет. Может в этом то и проблема, то что кнопки все скрыты. Вообще событие onClientGUIClick запускается? Если нет, то проблема скорее всего в этих скрытых кнопках 1 Link to comment
Maikele Posted August 6, 2017 Author Share Posted August 6, 2017 (edited) 2 hours ago, CharlySHOMAN said: hm_gui это таблица из кнопок? Я тут посмотрел твой первый пост. Там ты скрываешь кнопку guiSetVisible (buyButton, false ). От скрытой кнопки разве будет запускаться событие? Вроде как нет. Может в этом то и проблема, то что кнопки все скрыты. Вообще событие onClientGUIClick запускается? Если нет, то проблема скорее всего в этих скрытых кнопках 1. Не-а, думаю не в этом дело, т.к. у меня есть функция > кнопка "закрыть", т.е. нажимаешь и все закрывается. hm_gui['btn_close'] = guiCreateButton( xn+350, xv + hv - 260, 25, 20, 'X', false ); guiSetAlpha(hm_gui['btn_close'], 0) guiSetVisible ( hm_gui['btn_close'], false ) addEventHandler( 'onClientGUIClick', hm_gui['btn_close'], function( btn ) if btn ~= 'left' then return false; end; triggerServerEvent( 'setFrozen', me, false ); removeEventHandler("onClientPreRender", getRootElement(), mainWindow) --#Кнопки guiSetVisible ( hm_gui['icon_buy'], false ) --#Текст guiSetVisible ( hm_gui['label_price'], false ) showCursor( false ); end, false ); А именно закрыть при нажатие на "купить", не закрывается.. 2. onClientGUIClick запускается) Edited August 6, 2017 by Maikele Link to comment
Maikele Posted August 6, 2017 Author Share Posted August 6, 2017 Кстати, возможно понял в чем проблема ( хотя не уверен ), но когда убираю с позиции кнопку, то работает........ 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