Budni |
Отправлено: 06 Июня, 2019 - 16:26:39
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Kibor пишет: А почему вместо перезапуска просто не реализовать получение новых координат?
Или простой переход в начало работы скрипта? В том то и дело, что получение новых координат не работает, пробовал и в начало скрипта и перед функцией и в самой функции и везде сразу.
(Добавление)
Ещё тут ошибка почему то
CODE:sleep(1000);
ddd();
function ddd() {
sleep(300);
for (int a=0; a<210; a)
{
waitoff();
}
}
messagebox("цикл пройден");
function waitoff() {
a++;
} |
|
|
Budni |
Отправлено: 06 Июня, 2019 - 16:58:55
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Budni пишет: Ещё тут ошибка почему то
Разобрался не задана глобальная переменная.
Но вот то, что переменные не перезаписываются проблема осталась(Отредактировано автором: 06 Июня, 2019 - 17:00:40) |
|
|
Budni |
Отправлено: 07 Июня, 2019 - 13:13:04
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Почему код не работает? И можно ли как то сократить его?
CODE:external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "SetScrollRange", "SetScrollRange", "User32.dll" );
external(INT, "SetScrollPos", "SetScrollPos", "User32.dll" );
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );
int b1, b2, s1[3], hText[3], hwnd;
createdialog(0);
showdialog(0, "Диалог",100, 100, 240, 290, 1, 1);
int min[3]=0, max[3]=200, pos[3]=95;
SetScrollRange(s1[0],2,min[0],max[0],1);
SetScrollPos(s1[0],2,pos[0],1);
dalnost();
loop()sleep(1);
function dalnost()
{
SetWindowText(hText[0], format(pos[0])); // Отображает текст на экране
SetWindowText(hText[1], format(pos[1])); // Отображает текст на экране
SetWindowText(hText[2], format(pos[2])); // Отображает текст на экране
}
function getmessage(0, WM_HSCROLL)
{
if (message.lparam==s1[0])
{
if (message.wparam==1 || message.wparam==3)//SB_LINERIGHT
{
pos[0]=pos[0]+10;
if (pos[0]>max[0])pos[0]=max[0];
SetScrollPos(s1[0],2,pos[0],1);
dalnost();
return;
}
if (message.wparam==0 || message.wparam==2)//SB_LINELEFT
{
pos[0]=pos[0]-10;
if (pos[0]<min[0])pos[0]=min[0];
SetScrollPos(s1[0],2,pos[0],1);
dalnost();
return;
}
///////////
if (loword(message.wparam)==5)//Зажали и двигаем
{
pos[0]=pos[0]-(pos[0]-hiword(message.wparam));
if (pos[0]>max[0])pos[0]=max[0];
if (pos[0]<min[0])pos[0]=min[0];
SetScrollPos(s1[0],2,pos[0],1);
dalnost();
}
}
}
//
function getmessage(0, WM_CREATE)//Создание кнопок
{
hwnd = gethwnd(0);
s1[0]=CreateWindow(0, "scrollbar", 0, 1342177280, 10, 50, 200, 20, hwnd, 0, 0, 0);// сам скролл
hText[0] = CreateWindow(0, "STATIC", "",1342177280, 10, 80, 100, 15, hwnd, 0, 0, 0);//Tекст
s1[1]=CreateWindow(0, "scrollbar", 0, 1342177280, 10, 120, 200, 20, hwnd, 0, 0, 0);// сам скролл
hText[1] = CreateWindow(0, "STATIC", "",1342177280, 30, 150, 100, 15, hwnd, 0, 0, 0);//Tекст
s1[2]=CreateWindow(0, "scrollbar", 0, 1342177280, 10, 200, 200, 20, hwnd, 0, 0, 0);// сам скролл
hText[2] = CreateWindow(0, "STATIC", "",1342177280, 30, 220, 100, 15, hwnd, 0, 0, 0);//Tекст
} |
|
|
Zireael |
Отправлено: 07 Июня, 2019 - 14:00:45
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Почему код не работает?
Цитата: int min[3]=0
Так нельзя, надо так:
CODE:int min[3]={0, 0, 0}
code (Отобразить)CODE:#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "SetScrollRange", "SetScrollRange", "User32.dll" );
external(INT, "SetScrollPos", "SetScrollPos", "User32.dll" );
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );
int i;
int b1, b2, s1[3], hText[3], hwnd;
createdialog(0);
showdialog(0, "Диалог",100, 100, 240, 290, 1, 1);
int count_scroll=3; // количество скроллов
int min[3]={0, 0, 0}
int max[3]={200, 200, 200}
int pos[3]={95, 50, 133}
for(i=0; i<count_scroll; i++)
{
SetScrollRange(s1[i],2,min[i],max[i],1);
SetScrollPos(s1[i],2,pos[i],1);
}
dalnost();
loop()sleep(1);
function dalnost()
{
SetWindowText(hText[0], format(pos[0])); // Отображает текст на экране
SetWindowText(hText[1], format(pos[1])); // Отображает текст на экране
SetWindowText(hText[2], format(pos[2])); // Отображает текст на экране
}
function getmessage(0, WM_HSCROLL)
{
for(i=0; i<count_scroll; i++)
{
if (message.lparam==s1[i])
{
if (message.wparam==1 || message.wparam==3)//SB_LINERIGHT
{
pos[i]=pos[i]+10;
if (pos[i]>max[i])pos[i]=max[i];
SetScrollPos(s1[i],2,pos[i],1);
dalnost();
return;
}
if (message.wparam==0 || message.wparam==2)//SB_LINELEFT
{
pos[i]=pos[i]-10;
if (pos[i]<min[i])pos[i]=min[i];
SetScrollPos(s1[i],2,pos[i],1);
dalnost();
return;
}
///////////
if (loword(message.wparam)==5)//Зажали и двигаем
{
pos[i]=pos[i]-(pos[i]-hiword(message.wparam));
if (pos[i]>max[i])pos[i]=max[i];
if (pos[i]<min[i])pos[i]=min[i];
SetScrollPos(s1[i],2,pos[i],1);
dalnost();
}
}
}
}
function getmessage(0, WM_CREATE)//Создание кнопок
{
hwnd = gethwnd(0);
s1[0]=CreateWindow(0, "scrollbar", 0, WS_CHILD | WS_VISIBLE, 10, 50, 200, 20, hwnd, 0, 0, 0);// сам скролл
hText[0] = CreateWindow(0, "STATIC", "", WS_CHILD | WS_VISIBLE, 10, 80, 100, 15, hwnd, 0, 0, 0);//Tекст
s1[1]=CreateWindow(0, "scrollbar", 0, WS_CHILD | WS_VISIBLE, 10, 120, 200, 20, hwnd, 0, 0, 0);// сам скролл
hText[1] = CreateWindow(0, "STATIC", "", WS_CHILD | WS_VISIBLE, 30, 150, 100, 15, hwnd, 0, 0, 0);//Tекст
s1[2]=CreateWindow(0, "scrollbar", 0, WS_CHILD | WS_VISIBLE, 10, 200, 200, 20, hwnd, 0, 0, 0);// сам скролл
hText[2] = CreateWindow(0, "STATIC", "", WS_CHILD | WS_VISIBLE, 30, 220, 100, 15, hwnd, 0, 0, 0);//Tекст
}
Цитата: т.к fopen грузит из файла текст Ansi
В бинарном режиме без разницы что читать.
Цитата: Как загружать любые символы в строку.
И что делать со строкой? |
|
|
|