Budni |
Отправлено: 07 Июня, 2019 - 16:59:42
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Kibor пишет: Почему не хочет?
Он прекрасно выведет строку
"pathfolder()+setting.ini"
Вот тут не работает код если полностью путь не указать
код (Отобразить)external (INT, "GetPrivateProfileString", "GetPrivateProfileStringA", "kernel32.dll");
external (INT, "WritePrivateProfileString", "WritePrivateProfileStringA", "kernel32.dll");
char str[255];
string path="pathfolder()+setting.ini"; // ïóòü ê ôàéëó íàñòðîåê
int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];
pos_size_button0[0][0]=17; pos_size_button0[0][1]=85; pos_size_button0[0][2]=140; pos_size_button0[0][3]=20;
text_button0[0]="Ñîõðàíèòü íàñòðîéêè";
int pos_size_edit0[2][4];
string text_edit0[2];
pos_size_edit0[0][0]=18; pos_size_edit0[0][1]=18; pos_size_edit0[0][2]=100; pos_size_edit0[0][3]=20;
pos_size_edit0[1][0]=18; pos_size_edit0[1][1]=50; pos_size_edit0[1][2]=100; pos_size_edit0[1][3]=20;
text_edit0[0]="111"; text_edit0[1]="qwe"; // çíà÷åíèÿ ïî óìîë÷àíèþ, ìîæíî íå óêàçûâàòü
if(fopen(path, "r")!=0) // åñëè ôàéë ñ íàñòðîéêàìè îòêðûëñÿ, ò. å. ñóùåñòâóåò
{
fclose();
GetPrivateProfileString ("Default", "Edit0", 0, address (#str[0]), 255, path); // ÷èòàåì çíà÷åíèå äëÿ text_edit0[0]
text_edit0[0]=format (#str[0]);
GetPrivateProfileString ("Default", "Edit1", 0, address (#str[0]), 255, path); // ÷èòàåì çíà÷åíèå äëÿ text_edit0[1]
text_edit0[1]=format (#str[0]);
}
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
EDIT, #pos_size_edit0[0][0], #text_edit0[0]);
showdialog(0, "Äèàëîã", 835, 390, 222, 160, 1, 1);
enabletimer(0);
loop() sleep(10);
CREATE_TIMER(0, 500)
{
if(flag_button0[0]>0) // åñëè íàæàòà êíîïêà ñîõðàíèòü íàñòðîéêè
{
flag_button0[0]=0;
WritePrivateProfileString ("Default", "Edit0", text_edit0[0], path); // çàïèñûâàåì çíà÷åíèå text_edit0[0]
WritePrivateProfileString ("Default", "Edit1", text_edit0[1], path); // çàïèñûâàåì çíà÷åíèå text_edit0[1]
}
} (Отредактировано автором: 07 Июня, 2019 - 17:00:07) |
|
|
Kibor |
Отправлено: 07 Июня, 2019 - 17:12:29
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Budni пишет: "pathfolder()+setting.ini"
это не указать путь, а указать текст
"pathfolder()+setting.ini"
Путь указать так
CODE:pathfolder()+"setting.ini" |
|
|
Budni |
Отправлено: 07 Июня, 2019 - 18:02:03
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
А тут почему ошибка?
Вроде как тут format (#str[0]); но как исправить не понимаю
код (Отобразить)#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" );
external (INT, "GetPrivateProfileString", "GetPrivateProfileStringA", "kernel32.dll");
external (INT, "WritePrivateProfileString", "WritePrivateProfileStringA", "kernel32.dll");
char str[255];
string path=pathfolder()+"setting.ini"; // ïóòü ê ôàéëó íàñòðîåê
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);
}
if(fopen(path, "r")!=0) // åñëè ôàéë ñ íàñòðîéêàìè îòêðûëñÿ, ò. å. ñóùåñòâóåò
{
fclose();
GetPrivateProfileString ("Default", "Edit0", 0, address (#str[0]), 255, path); //pos[0]
pos[0]=format (#str[0]);
GetPrivateProfileString ("Default", "Edit1", 0, address (#str[0]), 255, path); //pos[1]
pos[1]=format (#str[0]);
GetPrivateProfileString ("Default", "Edit2", 0, address (#str[0]), 255, path); //pos[2]
pos[2]=format (#str[0]);
}
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åêñò
}
function getmessage(0, WM_CLOSE)
{
WritePrivateProfileString ("Default", "Edit0", pos[0], path); // çàïèñûâàåì çíà÷åíèå
WritePrivateProfileString ("Default", "Edit1", pos[1], path);
WritePrivateProfileString ("Default", "Edit2", pos[2], path);
}
|
|
|
|