Zireael |
Отправлено: 06 Декабря, 2019 - 13:34:35
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Что-то я не много запутался.
Цитата: string Text_Checkboxes[3][3]; // двухмерный
int Checkboxes[3][3];
Text_Checkboxes[v] // одномерный
Checkboxes[y] |
|
|
007wan |
Отправлено: 06 Декабря, 2019 - 13:48:02
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: Цитата: Что-то я не много запутался.
Цитата: string Text_Checkboxes[3][3]; // двухмерный
int Checkboxes[3][3];
Text_Checkboxes[v] // одномерный
Checkboxes[y]
так при создании галочки я использую один массив, который в начале и ТОЛЬКО, а если бы второй, то написал бы так:CODE:Checkboxes[][v] = CreateWindow(0, "BUTTON", Text_Checkboxes[][v], BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 75+Step, 180, 20, gethwnd(0), 0, 0, 0);
(Добавление)
Суть в том, что при создании галочки опяределяется номер галочки и группа у нее какая(два массива)
(Добавление)
Как создать 9 галочек в CreateWindow, ИСПОЛЬЗУЯ двумерный массив, который будет указавать:
-первый массив указывает на группу галочки, всего 3 группы
-второй указывает на количество галочек в этой группе, всего 3.
В каждой гурппе по 3 галочки, не понять разобраться как мне скрыть одну группу и показать другую группу галочек, там же двумерный массив, я не знаю как это работает с ними при создании галочки. |
|
|
Zireael |
Отправлено: 07 Декабря, 2019 - 00:38:17
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Как из масива char удалить перевод строки?
CODE:char c[999]={'1', '2', '3', 13, 10, '4', '5', '6', 0}
messagebox(format(#c[0])); // с переносом строки
string temp;
regexreplace(-1, #temp, format(#c[0]), "[\r\n]", ""); // удалить все символы \r и \n
strcpy(#c[0], temp);
messagebox(format(#c[0])); // без переноса строки |
|
|
Zireael |
Отправлено: 07 Декабря, 2019 - 08:48:38
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
code (Отобразить)CODE:#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define BS_AUTOCHECKBOX 3
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
string Text_Checkboxes[3][3];
Text_Checkboxes[0][0] = "Галочка Klondike №1"; Text_Checkboxes[0][1] = "Галочка Klondike №2"; Text_Checkboxes[0][2] = "Галочка Klondike №3";
Text_Checkboxes[1][0] = "Галочка Tankionline №1"; Text_Checkboxes[1][1] = "Галочка Tankionline №2"; Text_Checkboxes[1][2] = "Галочка Tankionline №3";
Text_Checkboxes[2][0] = "Галочка Crossout №1"; Text_Checkboxes[2][1] = "Галочка Crossout №2"; Text_Checkboxes[2][2] = "Галочка Crossout №3";
int Checkboxes[3][3];
int group=1;
createdialog(0);
showdialog(0, "Dialog", 100, 100, 250, 300, 1, 1);
loop()sleep(100);
function getmessage(0, WM_CREATE)
{
int Step = 0;
for (int i=0; i<sizearray(Checkboxes); i++)
{
Checkboxes[group][i] = CreateWindow(0, "BUTTON", Text_Checkboxes[group][i], BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 75+Step, 180, 20, gethwnd(0), 0, 0, 0);
Step = Step+20;
}
} |
|
|
007wan |
Отправлено: 07 Декабря, 2019 - 09:51:23
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael , Спасибо! Ошибка...
CODE:if (sizearray(Object_Checkbox[]) == u))
{
messagebox(sizearray(Object_Checkbox[]));
messagebox(u);
}
Почему-то messagebox выдает 4 в первом случаи, потом 0, но 4 НЕ равно же 0! и как и 1,2,3, а код выполнится...
(Добавление)
Е (Отобразить)CODE:int Step = 0;
for (int i=0; i<sizearray(Object_Checkbox); i++)
{
for (int u=0; u<sizearray(Object_Checkbox[]); u++)
{
if (sizearray(Object_Checkbox[]) == u))
{
messagebox(sizearray(Object_Checkbox[]));
messagebox(u);
}
Object_Checkbox[i][u] = CreateWindow(0, "BUTTON", Text_Checkbox[i][u], BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 75+Step, 180, 20, gethwnd(0), 0, 0, 0);
Step = Step+20;
}
}
(Добавление)
Если наоборот, то идеально (Отобразить)CODE:
int Step = 0;
for (int i=0; i<sizearray(Object_Checkbox); i++)
{
for (int u=0; u<sizearray(Object_Checkbox[]); u++)
{
if (u == sizearray(Object_Checkbox[])-1)
{
Step = 0;
}
Object_Checkbox[i][u] = CreateWindow(0, "BUTTON", Text_Checkbox[i][u], BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 75+Step, 180, 20, gethwnd(0), 0, 0, 0);
Step = Step+20;
}
}
(Добавление)
Помогите код исправить, работает криво, я мальца запутался.\
При переключении/создании/удалении вкладки - Показывает/скрывает нужные контроллы
Код (Отобразить)CODE:
for (int b=0; b<sizearray(Text_Tab); b++)
{
for (int f=0; f<sizearray(Object_Checkbox[]); f++)
{
if (format(#Buffer1[0]) == Text_Tab[b])
{
ShowWindow(Object_Checkbox[b][f], SW_SHOW);
ShowWindow(Object_Static1, SW_HIDE);
ShowWindow(Object_Listbox1, SW_HIDE);
}
else
{
ShowWindow(Object_Checkbox[b][f], SW_HIDE);
}
if (format(#Buffer1[0]) == "Новая вкладка")
{
ShowWindow(Object_Static1, SW_SHOW);
ShowWindow(Object_Listbox1, SW_SHOW);
EnableWindow(Object_Button6, 0);
}
}
}
|
|
|
007wan |
Отправлено: 07 Декабря, 2019 - 12:18:24
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
__________________
Как мне поставить условие выделенным красным цветом так, что бы создавались все галочки(3 группы галочек и по 4 шт в каждой группе):
Уже пробовал:
sizearray(Object_Checkbox[])-1
sizearray(Object_Checkbox[])+1
if (u+1
if (u-1
В таких варианта либо одна галочка не создается, либо меняется позиция, либо еще чего, везде не так...
Code (Отобразить) Цитата:
int Object_Checkbox[3][4];
string Text_Checkbox[3][4];
Text_Checkbox[0][0] = "Галочка Klondike №1";
Text_Checkbox[0][1] = "Галочка Klondike №2";
Text_Checkbox[0][2] = "Галочка Klondike №3";
Text_Checkbox[0][3] = "Галочка Klondike №4";
Text_Checkbox[1][0] = "Галочка Tankionline №1";
Text_Checkbox[1][1] = "Галочка Tankionline №2";
Text_Checkbox[1][2] = "Галочка Tankionline №3";
Text_Checkbox[1][3] = "Галочка Tankionline №4";
Text_Checkbox[2][0] = "Галочка Crossout №1";
Text_Checkbox[2][1] = "Галочка Crossout №2";
Text_Checkbox[2][2] = "Галочка Crossout №3";
Text_Checkbox[2][3] = "Галочка Crossout №4";
int Step = 0;
for (int i=0; i<sizearray(Object_Checkbox); i++)
{
for (int u=0; u<sizearray(Object_Checkbox[]); u++)
{
if (u == sizearray(Object_Checkbox[]))
{
Step = 0;
}
Object_Checkbox[u] = CreateWindow(0, "BUTTON", Text_Checkbox[i][u], BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 75+Step, 180, 20, gethwnd(0), 0, 0, 0);
ShowWindow(Object_Checkbox[i][u], SW_HIDE);
Step = Step+20;
}
}
[i](Добавление)
Это условие обязательно, которое выделил, что бы не вставлять функцию MoveWindow или SetWindowPos
(Добавление)
Решил проблему. Сделал Вместо этого условия u==0 и Step обнуляется после этого |
|
|
|