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

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

11. ivantu - 30 Августа, 2019 - 06:46:01 - перейти к сообщению
не могу правильную последовательность выбрать.

CODE:

int win_id;

createdialog(0);
createdialog(1);
createdialog(2);
showdialog(0, "bot", 100, 100, 500, 750, 3, 0);
//showdialog(1, "bot", 100, 100, 500, 750, 3, 0);

function showdialog_(int id, string w_name) {
destroydialog(id);createdialog(id);
showdialog(id, w_name, 100, 100, 500, 750, 3, 0);
win_id=id;
//Пробовал return , не знаю уместно ли...
//return win_id;
}

messagebox(format(win_id));


function getmessage(0, WM_COMMAND)
{
// Вызываю Диалог по нажатию на кнопку
if (message.lparam==tab[0][0]){showdialog_(1, "Тестовый");}
}

// Дальше по моей логики должен создаться диалог с ID переданным из функции с содержимым из WM_CREATE
function getmessage(0, WM_CREATE)
{
if(win_id==0){messagebox("Кнопка1"); return;} // если flag 0, то выполнить эту часть
if(win_id==1){messagebox("Кнопка2"); return;} // если 1, то выполнить эту часть
}



Где то в последовательности накосячил я по ходу, подскажите как исправить.
12. Zireael - 30 Августа, 2019 - 07:20:40 - перейти к сообщению
Выкладывать надо запускаемый код. tab[0][0] не объявлена, кнопка не создана.
13. ivantu - 30 Августа, 2019 - 07:33:48 - перейти к сообщению
Zireael

CODE:
#define WS_VISIBLE 268435456 // Видимый контрл
#define WS_CHILD 1073741824 // Дочернее окно

external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int win_id;
int win_btn;
createdialog(0);
createdialog(1);

showdialog(0, "bot", 100, 100, 500, 750, 3, 0);

function showdialog_(int id, string w_name) {
destroydialog(id);createdialog(id);
showdialog(id, w_name, 100, 100, 500, 750, 3, 0);
win_id=id;
//Пробовал return , не знаю уместно ли...
//return win_id;
}

//messagebox(format(win_id));


function getmessage(0, WM_COMMAND)
{
// Вызываю Диалог по нажатию на кнопку
if (message.lparam==win_btn){showdialog_(1, "Тестовый");}
}

// Дальше по моей логике должен создаться диалог с ID переданным из функции с содержимым из WM_CREATE

function getmessage(1, WM_CREATE)
{
win_btn=CreateWindow(0, "BUTTON", "тыц", WS_VISIBLE | WS_CHILD, 50, 50, 89, 29, gethwnd(0), 0, 0, 0);
if(win_id==0){messagebox("Кнопка1"); return;} // если flag 0, то выполнить эту часть
if(win_id==1){messagebox("Кнопка2"); return;} // если 1, то выполнить эту часть
}

loop(){pause(100);}
14. 007wan - 30 Августа, 2019 - 07:36:57 - перейти к сообщению
Так чё надо то?
15. ivantu - 30 Августа, 2019 - 14:47:16 - перейти к сообщению
понял почему не получается, передается id диалога для создания, а вот эта чтуковина имеет статический ID и не может принимать переменную в первом параметре:
function getmessage(1, WM_CREATE)
из этого вывод... нифига у меня не получится создать разные диалоги с разным содержимым на лету... наверное
(Добавление)
Подскажите пожалуйста, почему win_id, не передается из функции после первого нажатия на кнопку, а только после второго?

CODE:

#define WS_VISIBLE 268435456 // Видимый контрл
#define WS_CHILD 1073741824 // Дочернее окно

external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int win_id;
int win_btn, win_btn2;
createdialog(0);

showdialog(0, "bot", 100, 100, 500, 750, 3, 0);

function showdialog_(int id, string w_name) {
createdialog(1);
sleep(100);
showdialog(1, w_name, 100, 100, 500, 750, 0, 1);
win_id=id;
}

//messagebox(format(win_id));
function getmessage(0, WM_CREATE)
{
win_btn=CreateWindow(0, "BUTTON", "тыц", WS_VISIBLE | WS_CHILD, 50, 50, 89, 29, gethwnd(0), 0, 0, 0);
}

function getmessage(0, WM_COMMAND)
{
// Вызываю Диалог по нажатию на кнопку
if (message.lparam==win_btn){showdialog_(1, "Тестовый");
}
}

// Дальше по моей логике должен создаться диалог с ID переданным из функции с содержимым из WM_CREATE

function getmessage(1, WM_CREATE)
{
win_btn2=CreateWindow(0, "BUTTON", "тыц", WS_VISIBLE | WS_CHILD, 50, 50, 89, 29, gethwnd(1), 0, 0, 0);
if(win_id==1){messagebox("Кнопка2");
messagebox(format(win_id));
}
}


loop(){
pause(100);
}
16. Zireael - 30 Августа, 2019 - 18:09:32 - перейти к сообщению
 Цитата:
Подскажите пожалуйста, почему win_id, не передается из функции после первого нажатия на кнопку, а только после второго?

Потому что сначала вызывается createdialog(1), а только потом переменной присваивается значение win_id=id.
Несколько диалогов с разным количеством контролов (Отобразить)
17. ivantu - 30 Августа, 2019 - 23:44:38 - перейти к сообщению
Мда... Вот рука мастера ))) сразу видно, не то что я там навыдумывал , спасибо огромное

Powered by ExBB FM 1.0 Final