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

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

11. Kibor - 18 Апреля, 2023 - 12:00:59 - перейти к сообщению
 Martin пишет:
думал может как то по другому можно

можно и по другому.
Замените
CODE:
strcpy(#cl[0], line[n]);

на
CODE:
strcpy(#cl[0], utf8toansi (line[n]));


Будут корректно отображаться файлы в UTF-8. А в ANSI будут вопросы.
Определитесь с форматом.
12. Zireael - 18 Апреля, 2023 - 12:07:52 - перейти к сообщению
 Цитата:
Определитесь с форматом.

Начиная с Win10 у блокнота формат utf8 по умолчанию.
Ansi по сути устарел и уже мало где используется.
13. Martin - 23 Апреля, 2023 - 09:03:39 - перейти к сообщению
Как сделать чтобы чек боксы были не активные, серые, чтобы их не возможно было выбрать? И стали активные после нажатия другого чек бокса?

код (Отобразить)
14. Kibor - 23 Апреля, 2023 - 09:08:01 - перейти к сообщению
Не пользуйтесь только виз редактором.
Попытайтесь сделать окно и контролы руками
Много узнаете с помощью гугла.
15. Martin - 23 Апреля, 2023 - 09:23:45 - перейти к сообщению
Kibor , Спасибо, пробую. Возникла ошибка когда добавляю
CODE:
#define WS_DISABLED 0x08000000

брал от сюда(для просмотра ссылки Вам необходимо авторизоваться)
16. Kibor - 23 Апреля, 2023 - 09:26:09 - перейти к сообщению
В этой строчке ошибки нет
17. Martin - 23 Апреля, 2023 - 09:34:45 - перейти к сообщению
(для просмотра ссылки Вам необходимо авторизоваться)
не знаю баг ли это.
(Добавление)
Разобрался если ввести в ручную то всё заработало, если с сайта копировать то вот такая ошибка
18. Zireael - 23 Апреля, 2023 - 09:59:16 - перейти к сообщению
 Цитата:
если с сайта копировать то вот такая ошибка

Табуляция в скрипте не допускается.
19. Martin - 23 Апреля, 2023 - 10:09:35 - перейти к сообщению
Не получатся самостоятельно разобраться, как подать команду сделать кнопку активной?
Где ошибка? (Отобразить)
20. Kibor - 23 Апреля, 2023 - 10:28:06 - перейти к сообщению
Кстати если строка
for(i=0; i<4; i++)sendmessage(BM_SETCHECK, flag_check0[i], 0, formatiw(check0[i]));
то в ней ошибка.
Правильно
for(i=0; i<4; i++)sendmessage(BM_SETCHECK, 0, flag_check0[i], formatiw(check0[i]));


CODE:
#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define WS_BORDER 0x00800000
#define BS_MULTILINE 0x00002000
#define BS_AUTOCHECKBOX 0x00000003
#define BS_AUTORADIOBUTTON 0x00000009
#define BM_SETCHECK 0x00F1
#define BST_UNCHECKED 0x0000
#define BST_CHECKED 0x0001
#define TRUE 1
#define WM_SETFONT 0x0030
#define RUSSIAN_CHARSET 204
#define WS_DISABLED 0x08000000

external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
external(INT, "GetWindowRect", "GetWindowRect", "User32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
external(INT, "DeleteFile", "DeleteFileA", "kernel32.dll");
external(INT, "EnableWindow", "EnableWindow", "User32.dll");

int h_font;
string rn = formatic(13)+formatic(10);
int dialogPosX_0 = 809, dialogPosY_0 = 461;
int check0[4];
int flag_check0[4] = { 0, 0, 0, 0 };

createdialog(0);
showdialog(0, "Диалог0", dialogPosX_0, dialogPosY_0, 222, 170, 4, 1);

loop()
{
// тут нужный код
sleep(10);
}
end_0:;

function getmessage(0, WM_CREATE)
{
int i;
h_font = CreateFont(-12, 0, 0, 0, 400, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Arial");
check0[0] = CreateWindow(0, "BUTTON", "Активировать чекбоксы", BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD, 16, 16, 184, 20, gethwnd(0), 0, 0, 0);
check0[1] = CreateWindow(0, "BUTTON", "Новая функция", BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD, 16, 48, 136, 20, gethwnd(0), 0, 0, 0);
check0[2] = CreateWindow(0, "BUTTON", "Новая функция 2", BS_AUTOCHECKBOX | WS_DISABLED | WS_CHILD, 16, 72, 136, 20, gethwnd(0), 0, 0, 0);
check0[3] = CreateWindow(0, "BUTTON", "Новая функция 3", BS_AUTOCHECKBOX | WS_DISABLED | WS_CHILD, 16, 96, 136, 20, gethwnd(0), 0, 0, 0);
for(i=0; i<4; i++)sendmessage(BM_SETCHECK, 0, flag_check0[i], formatiw(check0[i]));
for(i=0; i<4; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(check0[i]));
sendmessage(BM_SETCHECK, 1, flag_check0[0], formatiw(check0[0]));
flag_check0[0] = 1;
}

function getmessage(0, WM_COMMAND)
{
int i;
for(i=0; i<4; i++) // обработка нажатий галок
{
if(message.lparam == check0[i])
{
if(flag_check0[i])flag_check0[i] = 0;
else flag_check0[i] = 1;
}
if (flag_check0[0]==1)EnableWindow(check0[1], 1);
else EnableWindow(check0[1], 0);
}



}

function getmessage(0, WM_CLOSE)
{
DeleteObject(h_font);
goto global end_0; // переход в метке
// close(); // закрыть кибор
}

Powered by ExBB FM 1.0 Final