Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Описание: Возможности реализации
Velm
Отправлено: 20 Апреля, 2020 - 16:30:03
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 1
Дата рег-ции: Апр. 2020  
Репутация: 0




Всем привет!
Пробовал искать по форуму уже в течении нескольких часов. Поиск обвенчался неудачей, вот и решил создать тему.

Суть вопроса:
Можно ли создавать в Немодальных диалогах контролы динамически Джедаи ?

Что я хочу:
1. Инициализировать диалог с массивом EDIT контролов.
2. В процессе взаимодействия с диалогом - дополнить массив контролов динамически.

Ожидания:
1. После изменения массива EDIT (или другого типа) контрола - увидеть изменения на форме динамически.
2. Данные переменной массива EDIT контролов все так же связаны и я могу получить значение того или иного textbox в нужный мне момент времени.

Допустимые варианты решения проблемы:
1.Реализация через winApi. P.S. Уже пытался курить мануал, если кто нибудь поможет - буду благодарен.
 
 Top
Zireael
Отправлено: 20 Апреля, 2020 - 16:47:58
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Можно ли создавать в Немодальных диалогах контролы динамически

Можно.
CODE:
#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define SW_SHOW 5
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "ShowWindow", "ShowWindow", "User32.dll");


int button0;
int edit[5]; // массив для 5 edit
int count_edit = 0;


createdialog(0);
showdialog(0, "dialog",100, 100, 300, 300, 1, 1);

loop()sleep(10);

function getmessage(0, WM_CREATE)
{
// создать кнопку
button0=CreateWindow(0, "BUTTON", "Добавить edit", WS_VISIBLE | WS_CHILD, 10, 10, 110, 25, gethwnd(0), 0, 0, 0);

// создать edit, не отображаются, т. к. не указан стиль WS_VISIBLE
for(int i=0; i<sizearray(edit); i++)
edit[i]=CreateWindow(0, "EDIT", "", WS_CHILD | WS_BORDER, 10, 50+i*25, 80, 20, gethwnd(0), 0, 0, 0);
}


function getmessage(0, WM_COMMAND)
{

if(message.lparam == button0) // если нажата кнопка
{
if(count_edit < sizearray(edit)) // если видимо меньше 5 edit (по размеру массива)
{
ShowWindow(edit[count_edit], SW_SHOW); // показать edit
count_edit++; // увеличивает счётчик на 1
}
else messagebox("Уже создано максимальное число edit");
}
}
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by