Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » destroydialog

Страниц (2): [1] 2 »
 

1. ivantu - 30 Августа, 2019 - 05:21:55 - перейти к сообщению
Друзья обьясните пожалуйста, как правильно использовать функцию, точнее алгоритм использования destroydialog,

я так понял есть ограничение в 3 диалога, но можно уничтожать и создавать в пределах трех, так вот я не совсем понял как этим пользоваться, к примеру создаем три диалога,
CODE:
createdialog(0);
createdialog(1);
createdialog(2);


в определенный момент нужно уничтожить к примеру createdialog(1); и создать такой же ?

А как тогда учесть что у них разное содержимое, подскажите, что то я запутался чуток...
2. Zireael - 30 Августа, 2019 - 05:29:47 - перейти к сообщению
 Цитата:
в определенный момент нужно уничтожить к примеру createdialog(1); и создать такой же ?

CODE:
destroydialog(1); // уничтожить диалог
createdialog(1); // создать новый, при этом сработает WM_CREATE если он есть в скрипте
 Цитата:
А как тогда учесть что у них разное содержимое

Перед вызовом createdialog в переменную записать что-нибудь, в обработчике WM_CREATE проверять что в переменной и на основании этого добавлять нужные контролы.
3. ivantu - 30 Августа, 2019 - 05:34:15 - перейти к сообщению
 Zireael пишет:
Перед вызовом createdialog в переменную записать что-нибудь, в обработчике WM_CREATE проверять что в переменной и на основании этого добавлять нужные контролы.


Нифига не понял, но спасибо )))
4. Zireael - 30 Августа, 2019 - 05:39:21 - перейти к сообщению
 Цитата:
Нифига не понял

CODE:
int flag=0;
createdialog(1);
destroydialog(1);

flag=1;
createdialog(1);


function getmessage(1, WM_CREATE)
{
if(flag==0){messagebox("Кнопка1"); return;} // если flag 0, то выполнить эту часть
if(flag==1){messagebox("Кнопка2"); return;} // если 1, то выполнить эту часть
}
5. ivantu - 30 Августа, 2019 - 05:42:06 - перейти к сообщению
Вот щас понял ) спасибо еще раз
(Добавление)
А можно как то универсально сделать, функцию чтоли, мне кажется заплутаться есть большая вероятность в этих флагах и созданиях с уничтожением,

что то то типо function (и передать что то я еще не понял...)
и у нас создался диалог с нужным содержимым а предыдущий, с таким же id, сам закрылся,
хочется просто использовать больше трех, пусть даже не одновременно, но хотя бы более универсальным способом.
6. Zireael - 30 Августа, 2019 - 05:55:41 - перейти к сообщению
 Цитата:
что то то типо function

Ну так вызвать нужную функцию из WM_CREATE.
7. ivantu - 30 Августа, 2019 - 06:01:16 - перейти к сообщению
Уважаемый Zireael , я бы вызвал елиб логика была прокачена как Ваша подскажите пожалуйста логически как это выглядеть должно.
8. Zireael - 30 Августа, 2019 - 06:03:43 - перейти к сообщению
CODE:
int flag=0;
createdialog(1);
destroydialog(1);

flag=1;
createdialog(1);


function getmessage(1, WM_CREATE)
{
if(flag==0){f1(); return;} // если flag 0, то выполнить эту часть
if(flag==1){f2(); return;} // если 1, то выполнить эту часть
}

function f1()
{
messagebox("Кнопка1");
}

function f2()
{
messagebox("Кнопка2");
}
9. ivantu - 30 Августа, 2019 - 06:08:36 - перейти к сообщению
Это я понимаю, я имелл ввиду создать диалог через функцию, а не вызвать функцию через дилог.

просто вот эта часть кода напрягает...
CODE:

int flag=0;
createdialog(1);
destroydialog(1);

flag=1;
createdialog(1);



Если таких далогов будет 10 к примеру, запутаться можно с созданием и уничтожением, я вот про что говорил.
10. Zireael - 30 Августа, 2019 - 06:15:47 - перейти к сообщению
Также вызвать функцию, передав в неё нужные параметры, какой диалог удалить, какой создать, флаг и прочее.

Powered by ExBB FM 1.0 Final