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

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

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

> Без описания
koba
Отправлено: 05 Декабря, 2022 - 03:06:53
Post Id



Пользователь
Участник


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




После нажатия "Кнопка1" в тексте должно прибавляться 1, т.е. было "0", нажали на "Кнопка1" стало в тексте 1, затем нажали снова, стало 2, и т.д.
Как сделать?
Растерялся
CODE:
int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];

pos_size_button0[0][0]=67; pos_size_button0[0][1]=34; pos_size_button0[0][2]=100; pos_size_button0[0][3]=34;
text_button0[0]="Кнопка1";

//////////

int pos_size_static0[1][4];
string text_static0[1];

pos_size_static0[0][0]=100; pos_size_static0[0][1]=133; pos_size_static0[0][2]=100; pos_size_static0[0][3]=20;
text_static0[0]="0";

//////////

createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
STATIC, #pos_size_static0[0][0], #text_static0[0]);
//////////

showdialog(0, "Диалог", 835, 390, 250, 214, 1, 1);
//////////

loop() sleep(10);//Убрать после теста
 
 Top
Zireael
Отправлено: 05 Декабря, 2022 - 10:06:46
Post Id



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


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




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

pos_size_button0[0][0]=67; pos_size_button0[0][1]=34; pos_size_button0[0][2]=100; pos_size_button0[0][3]=34;
text_button0[0]="Кнопка1";

//////////

int pos_size_static0[1][4];
string text_static0[1];

pos_size_static0[0][0]=100; pos_size_static0[0][1]=133; pos_size_static0[0][2]=100; pos_size_static0[0][3]=20;
text_static0[0]="0";

//////////

createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
STATIC, #pos_size_static0[0][0], #text_static0[0]);
//////////

showdialog(0, "Диалог", 835, 390, 250, 214, 1, 1);
//////////

loop()
{
if(flag_button0[0]) // если нажата кнопка
{
flag_button0[0]=0; // сбросить флаг что кнопка нажата
text_static0[0] = format(formatsn(text_static0[0])+1); // увеличить значение на 1
}
sleep(10);
}
 
 Top
koba
Отправлено: 05 Декабря, 2022 - 10:47:56
Post Id



Пользователь
Участник


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




 Zireael пишет:
[code][/code]

Четко, а чтобы текст если двухзначный трехзн. и т.д., то сдвигался влево на длину знака,
т.е. если текст поместить в крайнее правое положение, то он не заходил бы за края диалога когда становился двух трех четырехзначные и т.д.

(Отредактировано автором: 05 Декабря, 2022 - 11:01:17)

 
 Top
Zireael
Отправлено: 05 Декабря, 2022 - 11:12:28
Post Id



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


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




 Цитата:
а чтобы текст если двухзначный трехзн. и т.д., то сдвигался влево на длину знака,

Тогда создавать окно нужно используя:
Версия 5.50 Получение и обработка сообщений в немодальных окнах Кибор
Редактор диалогов
CODE:
#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define WS_BORDER 0x00800000
#define BS_MULTILINE 0x00002000
#define SS_EDITCONTROL 0x00002000
#define TRUE 1
#define WM_SETFONT 0x0030
#define RUSSIAN_CHARSET 204
#define SS_RIGHT 0x00000002

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");
int h_font;
string rn = formatic(13)+formatic(10);
int dialogPosX_0 = 567, dialogPosY_0 = 250;
int button0[1];
int flag_button0[1] = { 0 };
int static0[1];
char text_static0[256];

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

loop()
{
if(flag_button0[0]) // если нажата кнопка
{
flag_button0[0]=0; // сбросить флаг что кнопка нажата
GetWindowText(static0[0], address(#text_static0[0]), 256);
SetWindowText(static0[0], format(formatsn(format(#text_static0[0]))+1));
}
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");
button0[0] = CreateWindow(0, "BUTTON", "Button0", WS_VISIBLE | WS_CHILD, 48, 16, 80, 20, gethwnd(0), 0, 0, 0);
static0[0] = CreateWindow(0, "STATIC", "0", WS_VISIBLE | WS_CHILD | SS_RIGHT, 130, 48, 40, 20, gethwnd(0), 0, 0, 0);
for(i=0; i<1; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(button0[i]));
for(i=0; i<1; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(static0[i]));
}

function getmessage(0, WM_COMMAND)
{
int i;
for(i=0; i<1; i++) // обработка нажатий кнопок
{
if(message.lparam == button0[i])
{
if(flag_button0[i])flag_button0[i] = 0;
else flag_button0[i] = 1;
return;
}
}
}

function getmessage(0, WM_CLOSE)
{
DeleteObject(h_font);
goto global end_0; // переход в метке
// close(); // закрыть кибор
}
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by