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

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

1. ivantu - 27 Июня, 2018 - 07:21:35 - перейти к сообщению
Друзья помогите пожалуйста реализовать вкладки в программе, что то типо вот такого:

Картинка (Отобразить)


Пока никак не могу сам реализовать, надеюсь на вашу помощь.
2. Dantes3000 - 27 Июня, 2018 - 07:25:19 - перейти к сообщению
С помощью Кибор? Никак.
Можно сделать кнопки вместо вкладок, при нажатии на которые, будет полностью меняться содержимое диалога
3. Kibor - 27 Июня, 2018 - 07:32:39 - перейти к сообщению
4. ivantu - 27 Июня, 2018 - 07:44:41 - перейти к сообщению
 Kibor пишет:
Создание диалогового окна и любых конторолов в dll с MFC
С помощью сторонней программы. Необходимы минимальные знания.


Уважаемый Кибор, я смотрел этот урок, и скачал демку, но есть пару НО, во первых как бы банально это не звучало нифига не понял...
Второе скачав демо работы запустил, посмотрел все работает, закрываю диалог, само окно закрыто, а в пуске весит окно при наведении на него всплывает подсказка что скрипт запущен, так вот я не понял, это баг или не доработка...
Но и третье очень прошу помочь мне т.к. сам скорее всего не смогу сделать вкладки, да и другим пример будет еще один наглядный, т.к. в самом Кибор, не так много инструментов для "Дизайна" своей программы

вот видео : тык
5. Kibor - 27 Июня, 2018 - 07:58:11 - перейти к сообщению
Какая недоработка.
там цикл loop()
Окно закрыли, а цикл остался. Так пример сделан.

Ну а от того что я буду делать еще пример, так понятнее он никому не станет, так как там нужны некоторые знания работы с визуал студией. Только мне работы.
6. ivantu - 27 Июня, 2018 - 08:12:50 - перейти к сообщению
Печаль.... Огорчение
7. Kibor - 27 Июня, 2018 - 08:31:25 - перейти к сообщению
Лучше действительно строить средствами кибор. На основе диалоговых окон которые будут заменять друг друга.
Сами по себе вкладки даже в визуал студии не такая простая задача, как простой контрол типа ползунка и тд.
8. ivantu - 27 Июня, 2018 - 08:40:49 - перейти к сообщению
Тогда можно небольшой Пинок, как это можно реализовать?
9. AdryV - 27 Июня, 2018 - 11:34:27 - перейти к сообщению
 Kibor пишет:
Лучше действительно строить средствами кибор. На основе диалоговых окон которые будут заменять друг друга.

если это делать средствами кибор то как минимум 500-ми крит закрытиями не обойдется....

 Kibor пишет:
Создание диалогового окна и любых конторолов в dll с MFC
С помощью сторонней программы. Необходимы минимальные знания.

Скачать исходник с готовым демо примером скрипта Кибор и dll

так я бы принял это за пример.... но к сожалению даже при переносе в vc 2015 проект ломатся
ну хер с этим чутка правил заработал
далее начинаю изменять сам диалог в vc 2015 блять передвинул кнопку все dll - ка не работает даже при откате....
короч все эта хрень....
примеров толком нет... гадай и угадывай...
(Добавление)
 ivantu пишет:
Тогда можно небольшой Пинок, как это можно реализовать?

делать кучу списков или чередовать диалоги
что довольно таки тяжко)))
10. Kibor - 27 Июня, 2018 - 12:03:49 - перейти к сообщению
 ivantu пишет:
Тогда можно небольшой Пинок, как это можно реализовать?

ниже код


 AdryV пишет:
если это делать средствами кибор то как минимум 500-ми крит закрытиями не обойдется....


Щелкайте до посинения.. Или до крита..

 Цитата:
int pos_size_button0[3][4];
string text_button0[3];
int flag_button0[3];

pos_size_button0[0][0]=5; pos_size_button0[0][1]=6; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
pos_size_button0[1][0]=111; pos_size_button0[1][1]=6; pos_size_button0[1][2]=100; pos_size_button0[1][3]=20;
pos_size_button0[2][0]=214; pos_size_button0[2][1]=6; pos_size_button0[2][2]=100; pos_size_button0[2][3]=20;
text_button0[0]="Вкладка 1"; text_button0[1]="Вкладка 2"; text_button0[2]="Вкладка 3";

//////////

int pos_size_check0[1][4];
string text_check0[1];
int flag_check0[1];

pos_size_check0[0][0]=13; pos_size_check0[0][1]=50; pos_size_check0[0][2]=60; pos_size_check0[0][3]=20;
text_check0[0]="Галка 0";
flag_check0[0]=0;

////////////////////////////////////////////////////////////////

int pos_size_button1[3][4];
string text_button1[3];
int flag_button1[3];

pos_size_button1[0][0]=5; pos_size_button1[0][1]=6; pos_size_button1[0][2]=100; pos_size_button1[0][3]=20;
pos_size_button1[1][0]=111; pos_size_button1[1][1]=6; pos_size_button1[1][2]=100; pos_size_button1[1][3]=20;
pos_size_button1[2][0]=214; pos_size_button1[2][1]=6; pos_size_button1[2][2]=100; pos_size_button1[2][3]=20;
text_button1[0]="Вкладка 1"; text_button1[1]="Вкладка 2"; text_button1[2]="Вкладка 3";

//////////

int pos_size_combo1[1][4];
string text_combo1[1][1];
int strok_combo1[1];
int flag_combo1[1];

pos_size_combo1[0][0]=9; pos_size_combo1[0][1]=49; pos_size_combo1[0][2]=100; pos_size_combo1[0][3]=80;
strok_combo1[0]=1;
text_combo1[0][0]="Список 0";
flag_combo1[0]=0;

/////////////////////////////////////////////////////////////

int pos_size_button2[4][4];
string text_button2[4];
int flag_button2[4];

pos_size_button2[0][0]=5; pos_size_button2[0][1]=6; pos_size_button2[0][2]=100; pos_size_button2[0][3]=20;
pos_size_button2[1][0]=111; pos_size_button2[1][1]=6; pos_size_button2[1][2]=100; pos_size_button2[1][3]=20;
pos_size_button2[2][0]=214; pos_size_button2[2][1]=6; pos_size_button2[2][2]=100; pos_size_button2[2][3]=20;
pos_size_button2[3][0]=11; pos_size_button2[3][1]=49; pos_size_button2[3][2]=100; pos_size_button2[3][3]=20;
text_button2[0]="Вкладка 1"; text_button2[1]="Вкладка 2"; text_button2[2]="Вкладка 3"; text_button2[3]="Кнопка";

//////////

createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0]);
showdialog(0, "Вкладка 1", 558, 234, 323, 134, 1, 0);
//////////

enabletimer(0);

loop()
{
//код
sleep(10);
}


CREATE_TIMER(0, 100)//Номер таймера, выполнение таймера через мсек.
{
if (flag_button0[1]==1)
{
flag_button0[1]=0;
destroydialog(0);
createdialog(1, BUTTON, #pos_size_button1[0][0], #text_button1[0], #flag_button1[0] |
COMBO, #pos_size_combo1[0][0], #text_combo1[0][0], #strok_combo1[0], #flag_combo1[0]);
showdialog(1, "Вкладка 2", 558, 234, 323, 134, 1, 0);
}
if (flag_button0[2]==1)
{
flag_button0[2]=0;
destroydialog(0);
createdialog(2, BUTTON, #pos_size_button2[0][0], #text_button2[0], #flag_button2[0]);
showdialog(2, "Вкладка 3", 558, 234, 323, 134, 1, 0);
}
//////////
if (flag_button1[0]==1)
{
flag_button1[0]=0;
destroydialog(1);
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0]);
showdialog(0, "Вкладка 1", 558, 234, 323, 134, 1, 0);
}
if (flag_button1[2]==1)
{
flag_button1[2]=0;
destroydialog(1);
createdialog(2, BUTTON, #pos_size_button2[0][0], #text_button2[0], #flag_button2[0]);
showdialog(2, "Вкладка 3", 558, 234, 323, 134, 1, 0);
}
//////////
if (flag_button2[0]==1)
{
flag_button2[0]=0;
destroydialog(2);
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0]);
showdialog(0, "Вкладка 1", 558, 234, 323, 134, 1, 0);
}
if (flag_button2[1]==1)
{
flag_button2[1]=0;
destroydialog(2);
createdialog(1, BUTTON, #pos_size_button1[0][0], #text_button1[0], #flag_button1[0] |
COMBO, #pos_size_combo1[0][0], #text_combo1[0][0], #strok_combo1[0], #flag_combo1[0]);
showdialog(1, "Вкладка 2", 558, 234, 323, 134, 1, 0);
}
}





или вариант без пересоздания диалогов

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

pos_size_button0[0][0]=5; pos_size_button0[0][1]=6; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
pos_size_button0[1][0]=111; pos_size_button0[1][1]=6; pos_size_button0[1][2]=100; pos_size_button0[1][3]=20;
pos_size_button0[2][0]=214; pos_size_button0[2][1]=6; pos_size_button0[2][2]=100; pos_size_button0[2][3]=20;
text_button0[0]="Вкладка 1"; text_button0[1]="Вкладка 2"; text_button0[2]="Вкладка 3";

//////////

int pos_size_check0[1][4];
string text_check0[1];
int flag_check0[1];

pos_size_check0[0][0]=13; pos_size_check0[0][1]=50; pos_size_check0[0][2]=60; pos_size_check0[0][3]=20;
text_check0[0]="Галка 0";
flag_check0[0]=0;

////////////////////////////////////////////////////////////////

int pos_size_button1[3][4];
string text_button1[3];
int flag_button1[3];

pos_size_button1[0][0]=5; pos_size_button1[0][1]=6; pos_size_button1[0][2]=100; pos_size_button1[0][3]=20;
pos_size_button1[1][0]=111; pos_size_button1[1][1]=6; pos_size_button1[1][2]=100; pos_size_button1[1][3]=20;
pos_size_button1[2][0]=214; pos_size_button1[2][1]=6; pos_size_button1[2][2]=100; pos_size_button1[2][3]=20;
text_button1[0]="Вкладка 1"; text_button1[1]="Вкладка 2"; text_button1[2]="Вкладка 3";

//////////

int pos_size_combo1[1][4];
string text_combo1[1][1];
int strok_combo1[1];
int flag_combo1[1];

pos_size_combo1[0][0]=9; pos_size_combo1[0][1]=49; pos_size_combo1[0][2]=100; pos_size_combo1[0][3]=80;
strok_combo1[0]=1;
text_combo1[0][0]="Список 0";
flag_combo1[0]=0;

/////////////////////////////////////////////////////////////

int pos_size_button2[4][4];
string text_button2[4];
int flag_button2[4];

pos_size_button2[0][0]=5; pos_size_button2[0][1]=6; pos_size_button2[0][2]=100; pos_size_button2[0][3]=20;
pos_size_button2[1][0]=111; pos_size_button2[1][1]=6; pos_size_button2[1][2]=100; pos_size_button2[1][3]=20;
pos_size_button2[2][0]=214; pos_size_button2[2][1]=6; pos_size_button2[2][2]=100; pos_size_button2[2][3]=20;
pos_size_button2[3][0]=11; pos_size_button2[3][1]=49; pos_size_button2[3][2]=100; pos_size_button2[3][3]=20;
text_button2[0]="Вкладка 1"; text_button2[1]="Вкладка 2"; text_button2[2]="Вкладка 3"; text_button2[3]="Кнопка";

//////////

createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0]);

createdialog(1, BUTTON, #pos_size_button1[0][0], #text_button1[0], #flag_button1[0] |
COMBO, #pos_size_combo1[0][0], #text_combo1[0][0], #strok_combo1[0], #flag_combo1[0]);

createdialog(2, BUTTON, #pos_size_button2[0][0], #text_button2[0], #flag_button2[0]);


showdialog(0, "Вкладка 1", 558, 234, 323, 134, 1, 0);
//////////





enabletimer(0);

loop()
{
//код
sleep(10);
}


CREATE_TIMER(0, 100)//Номер таймера, выполнение таймера через мсек.
{
if (flag_button0[1]==1)
{
flag_button0[1]=0;
hidedialog(0);
showdialog(1, "Вкладка 2", 558, 234, 323, 134, 1, 0);
}
if (flag_button0[2]==1)
{
flag_button0[2]=0;
hidedialog(0);
showdialog(2, "Вкладка 3", 558, 234, 323, 134, 1, 0);
}
//////////
if (flag_button1[0]==1)
{
flag_button1[0]=0;
hidedialog(1);
showdialog(0, "Вкладка 1", 558, 234, 323, 134, 1, 0);
}
if (flag_button1[2]==1)
{
flag_button1[2]=0;
hidedialog(1);
showdialog(2, "Вкладка 3", 558, 234, 323, 134, 1, 0);
}
//////////
if (flag_button2[0]==1)
{
flag_button2[0]=0;
hidedialog(2);
showdialog(0, "Вкладка 1", 558, 234, 323, 134, 1, 0);
}
if (flag_button2[1]==1)
{
flag_button2[1]=0;
hidedialog(2);
showdialog(1, "Вкладка 2", 558, 234, 323, 134, 1, 0);
}
}



 AdryV пишет:
но к сожалению даже при переносе в vc 2015 проект ломатся

А зачем его переносить в vc 2015?????
там есть архив по ссылкам со студией в которой это делалось. Зачем надо именно самому искать сложности? Там все хватает для диалогов.

 AdryV пишет:
примеров толком нет... гадай и угадывай...

Примеры работы со студией по созданию диалогов в интернете. Это пример интеграции готовой dll

 AdryV пишет:
делать кучу списков или чередовать диалоги
что довольно таки тяжко)))

5 минут = 3 диалога связанные в код.

Powered by ExBB FM 1.0 Final