Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.30 Доработка visualwindow. Вывод на диалог

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

1. Kibor - 14 Ноября, 2017 - 18:38:25 - перейти к сообщению
Доработка visualwindow.
Теперь можно указать первым параметром (не обязательный параметр) указатель win на любой диалог и visualwindow будет выводить изображение не на экран, а непосредственно на этот диалог.

Указывать можно указатели как на свои диалоги (не модальные) так принадлежащие чужим программам.

Пример создания не модального диалога и вывода на него изображения части экрана. Можно выводить с файла и окна.

CODE:
int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];

pos_size_button0[0][0]=4; pos_size_button0[0][1]=110; pos_size_button0[0][2]=105; pos_size_button0[0][3]=20;
text_button0[0]="Закрыть";

//////////

createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
//////////

showdialog(0, "Наш бот", 558, 234, 115, 170, 1, 1);
//////////

win aw=window("Наш бот");//Получаем указатель на наше окно

visualwindow(aw, 0, 0, 0, 100, 100, 5, 5 , 100, -1);//Включаем вывод на нашем окне

loop()
{
if (flag_button0[0]==1)
{
flag_button0[0]=0;
disablevisualwindow(0);
sleep(100);
destroydialog(0);
goto s;
}
sleep(10);//Убрать после теста
}

s:;


Внимание: Закрытие чужого диалога когда на него идет вывод может привести к ошибке.
2. 007wan - 15 Ноября, 2017 - 06:01:54 - перейти к сообщению
Kibor , Ай красава) яя тоже самое помню писал, только, используя win, но тут не много по другому, красава. ты упростил задачу, ай молодес) надеюсь буду чаще обовки
(Добавление)
Просто мне ваш вариант нравится тем, что картинка в окне грубо говоря, а мой вариант, он как бы был не очень, потому что картинка из визуалавиндов не успевала за диалогом, она как бы "отрывалась", когда ее перетаскиваешь
3. Kibor - 15 Ноября, 2017 - 06:09:41 - перейти к сообщению
Ты выводил на экран по координатам окна, а это выводит именно в окне. Это совсем другое.
4. 007wan - 16 Ноября, 2017 - 08:48:19 - перейти к сообщению
 Kibor пишет:
Ты выводил на экран по координатам окна, а это выводит именно в окне. Это совсем другое.

так да. я и считаю, что лучше ваш вариант.
Кстати можно доработать пару мелочей, у меня пока нету времени тестить это, но можно добавить пару переменных:
1)визуальный вывод будет поверх кнопок, галок, текстов итд.
Теперь хочу объяснить для чего то, что ниже: есть программы, меняющие размер окна...
2)так вот можно сделать так, что бы с изменением размера окна, так же менялся размер вывода визуальной картинки, т.е если растянуть окно в программе, которая меняет размер окна, то растянется и сама картинка визуалвиндов.
(Добавление)
Ой, т.е если растянуть диалог с визульной картинкой с помощью программы, которая меняет размер окна, то растянется в Диалоге и сама картинка визуала
(Добавление)
Так же переменным будет соответствующая маркировка:
1-работает, 0-не работает
5. Kibor - 16 Ноября, 2017 - 08:56:31 - перейти к сообщению
Делайте указатель на кнопку , на кнопку будет.
Все это описанное можно и надо (при необходимости) самому отслеживать и делать.
Все эти изменения окна и тд. и менять зону вывода.
Для этого не надо добавлять никаких параметров.
6. 007wan - 17 Ноября, 2017 - 07:27:23 - перейти к сообщению
 Kibor пишет:
Делайте указатель на кнопку , на кнопку будет.
Все это описанное можно и надо (при необходимости) самому отслеживать и делать.
Все эти изменения окна и тд. и менять зону вывода.
Для этого не надо добавлять никаких параметров.

А как это сделать? можно пример?
7. Kibor - 17 Ноября, 2017 - 08:52:00 - перейти к сообщению
CODE:
win aw1;
win aw=window ("Безымянный — Блокнот", "Notepad", -1);
X=aw.widthclient;
Y=aw.heightclient;

visualwindow(aw, 0, 0, 0, X-100, Y-100, 50, 50 , 100, -1);


int X, Y;
enabletimer(0);

loop()sleep(10);



CREATE_TIMER(0, 500)//следим за изменением размера окна блокнота
{
aw1=window ("Безымянный — Блокнот", "Notepad", -1);
if (X!=aw1.widthclient || Y!=aw1.heightclient)
{
aw=window ("Безымянный — Блокнот", "Notepad", -1);
X=aw.widthclient;
Y=aw.heightclient;
visualwindow(aw, 0, 0, 0, X-100, Y-100, 50, 50 , 100, -1);//изменяем вывод
}
}
8. 007wan - 18 Ноября, 2017 - 03:30:14 - перейти к сообщению
Kibor , Еще такая фича есть, если поменять прозрачность окна с помощью "tranparence", то размер визуальная накладка картинки не поменяет прозрачность, но можно ее регулировать напрямую параметрами прозрачность визуалвиндов и транспатенсив(я это ен проверял, но так на теории, хотя по идеи если меняешь прозрачность окна, то меняется прозрачность визуалвиндов, т.к визуалка является частью окна, оно в окне_
(Добавление)
 007wan пишет:
визуальный вывод будет поверх кнопок, галок, текстов итд.

Только наоборот...не поверх всего, это реально не удобно, заслоняет все кнопки и галки.
9. 007wan - 19 Ноября, 2017 - 05:22:24 - перейти к сообщению
Kibor , Реально не удобно, как можно сделать, что бы кнопки были поверх этого визуалвиндов? И при этом не использовать больше 1 картинки
(Добавление)
Кстати, с помощью визуалциндов можно показать картинкой границы статика, но я еще не пробовал, мне кажется текст будет не поверх статика, а будет спрятан, что очень не удобно
10. 007wan - 21 Ноября, 2017 - 10:04:06 - перейти к сообщению
Херня какая-то выходит с этим кодом:
CODE:
int Ничего[209][36];
loadimage (#Ничего[0][0], "C:\Users\Home\Desktop\МОЁ\тесты картинок\Ничего.bmp");
win aw=window ("Выбрать ник", "Button", window ("Добропожаловать в чат v1.0"));//Получаем указатель на наше окно
visualwindow(aw, 0, 0, 0, 80, 22, 0, 0 , 100, -1);//Включаем вывод на нашем окне


По сути должен искать кнопку "выбрать ник" в окне "Добропожаловать в чат v1.0", это работает, но когда жмешь кнопку, то происходит вот что(помните я делал превращение статика в эдит и наоборот? так вот жмешь кнопку статик "улетает", а эдит ставится где раньше была статика, и наоборот, когда жмем снова кнопку)у меня при нажатии кнопки визуальное окно выводится не на кнопку в окно, а в окно, но в самый угол(я полагаю по коррдинатам 0;0)
(Добавление)
Почему так происходит? наверное не находит ту самую кнопку, но она есть, просто за пределы диалога, ее не видно.

Powered by ExBB FM 1.0 Final