Kibor |
Отправлено: 15 Ноября, 2018 - 17:27:54
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
ivantu пишет: я понимаю Ваши эмоции
Это не эмоции, а попытка заставить идти по другому пути, вместо гадания, так как он не приведет никуда. Или к таким вот вопросам, который возник сейчас.
Цитата: WritePrivateProfileString ("Default", "combo", flag_combo0[0], path); // записываем значение text_edit0[1]
flag_combo0[0] это int, а тут должен быть параметр string
Надо преобразовать int к string
CODE:WritePrivateProfileString ("Default", "combo", format(flag_combo0[0]), path); // записываем значение text_edit0[1] |
|
|
konctantin777 |
Отправлено: 11 Мая, 2019 - 08:49:09
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
код (Отобразить)external (INT, "GetPrivateProfileString", "GetPrivateProfileStringA", "kernel32.dll");
external (INT, "WritePrivateProfileString", "WritePrivateProfileStringA", "kernel32.dll");
char str[255];
string path="C:\Настр.ini"; // путь к файлу настроек
/////
////// начало с редактора диалогов
int pos_size_check0[4][4];
string text_check0[4];
int flag_check0[4];
pos_size_check0[0][0]=12; pos_size_check0[0][1]=20; pos_size_check0[0][2]=60; pos_size_check0[0][3]=20;
pos_size_check0[1][0]=12; pos_size_check0[1][1]=46; pos_size_check0[1][2]=60; pos_size_check0[1][3]=20;
pos_size_check0[2][0]=12; pos_size_check0[2][1]=110; pos_size_check0[2][2]=60; pos_size_check0[2][3]=20;
pos_size_check0[3][0]=13; pos_size_check0[3][1]=134; pos_size_check0[3][2]=60; pos_size_check0[3][3]=20;
text_check0[0]="Галка 0"; text_check0[1]="Галка 1"; text_check0[2]="Галка 2"; text_check0[3]="Галка 3";
flag_check0[0]=0; flag_check0[1]=0; flag_check0[2]=0; flag_check0[3]=0;
//////////
int pos_size_combo0[1][4];
string text_combo0[1][4];
int strok_combo0[1];
int flag_combo0[1];
pos_size_combo0[0][0]=12; pos_size_combo0[0][1]=79; pos_size_combo0[0][2]=100; pos_size_combo0[0][3]=100;
strok_combo0[0]=4;
text_combo0[0][0]="65"; text_combo0[0][1]="75"; text_combo0[0][2]="150"; text_combo0[0][3]="уп";
flag_combo0[0]=0;
//////////
createdialog(0, CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0] |
COMBO, #pos_size_combo0[0][0], #text_combo0[0][0], #strok_combo0[0], #flag_combo0[0]);
//////////
showdialog(0, "Диалог", 835, 390, 250, 300, 1, 1);
//////////
////// конец с редактора диалогов
if(fopen(path, "r")!=0) // если файл с настройками открылся, т. е. существует
{
fclose();
GetPrivateProfileString ("Default", "combo", 0, address (#str[0]), 255, path); // читаем значение
flag_combo0[0]=formatsn(format (#str[0]));
}
loop() sleep(100);//Убрать после теста
{
WritePrivateProfileString ("Default", "combo", format(flag_combo0[0]), path); // записываем значение
}
Взял с редактора диалогов код и совместил- не работает.. Подскажите где ошибка ? |
|
|
Zireael |
Отправлено: 11 Мая, 2019 - 10:28:15
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Подскажите где ошибка ?
CODE:loop() sleep(100);//Убрать после теста
Эта строка зациклит скрипт, всё что дальше выполняться не будет.
Надо так:
CODE:loop()
{
WritePrivateProfileString ("Default", "combo", format(flag_combo0[0]), path); // записываем значение
sleep(100);//Убрать после теста
}
Сохранять настройки 10 раз в секунду нет смысла. Добавьте кнопку для сохранения:
Сохранить настройки (Отобразить)CODE:external (INT, "GetPrivateProfileString", "GetPrivateProfileStringA", "kernel32.dll");
external (INT, "WritePrivateProfileString", "WritePrivateProfileStringA", "kernel32.dll");
char str[255];
string path="C:\Настр.ini"; // путь к файлу настроек
int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];
pos_size_button0[0][0]=20; pos_size_button0[0][1]=200; pos_size_button0[0][2]=130; pos_size_button0[0][3]=20;
text_button0[0]="Сохранить настройки";
/////
////// начало с редактора диалогов
int pos_size_check0[4][4];
string text_check0[4];
int flag_check0[4];
pos_size_check0[0][0]=12; pos_size_check0[0][1]=20; pos_size_check0[0][2]=60; pos_size_check0[0][3]=20;
pos_size_check0[1][0]=12; pos_size_check0[1][1]=46; pos_size_check0[1][2]=60; pos_size_check0[1][3]=20;
pos_size_check0[2][0]=12; pos_size_check0[2][1]=110; pos_size_check0[2][2]=60; pos_size_check0[2][3]=20;
pos_size_check0[3][0]=13; pos_size_check0[3][1]=134; pos_size_check0[3][2]=60; pos_size_check0[3][3]=20;
text_check0[0]="Галка 0"; text_check0[1]="Галка 1"; text_check0[2]="Галка 2"; text_check0[3]="Галка 3";
flag_check0[0]=0; flag_check0[1]=0; flag_check0[2]=0; flag_check0[3]=0;
//////////
int pos_size_combo0[1][4];
string text_combo0[1][4];
int strok_combo0[1];
int flag_combo0[1];
pos_size_combo0[0][0]=12; pos_size_combo0[0][1]=79; pos_size_combo0[0][2]=100; pos_size_combo0[0][3]=100;
strok_combo0[0]=4;
text_combo0[0][0]="65"; text_combo0[0][1]="75"; text_combo0[0][2]="150"; text_combo0[0][3]="уп";
flag_combo0[0]=0;
//////////
createdialog(0, CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0] |
COMBO, #pos_size_combo0[0][0], #text_combo0[0][0], #strok_combo0[0], #flag_combo0[0] |
BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
//////////
showdialog(0, "Диалог", 835, 390, 250, 300, 1, 1);
//////////
////// конец с редактора диалогов
if(fopen(path, "r")!=0) // если файл с настройками открылся, т. е. существует
{
fclose();
sleep(300);
if(GetPrivateProfileString ("Default", "combo", 0, address (#str[0]), 255, path))
flag_combo0[0]=formatsn(format (#str[0]));
if(GetPrivateProfileString ("Default", "Button0", 0, address (#str[0]), 255, path))
flag_check0[0]=formatsn(format (#str[0]));
if(GetPrivateProfileString ("Default", "Button1", 0, address (#str[0]), 255, path))
flag_check0[1]=formatsn(format (#str[0]));
if(GetPrivateProfileString ("Default", "Button2", 0, address (#str[0]), 255, path))
flag_check0[2]=formatsn(format (#str[0]));
if(GetPrivateProfileString ("Default", "Button3", 0, address (#str[0]), 255, path))
flag_check0[3]=formatsn(format (#str[0]));
}
enabletimer(0);
loop()sleep(100);
CREATE_TIMER(0, 200)
{
if(flag_button0[0])
{
flag_button0[0]=0;
WritePrivateProfileString ("Default", "combo", format(flag_combo0[0]), path);
WritePrivateProfileString ("Default", "Button0", format(flag_check0[0]), path);
WritePrivateProfileString ("Default", "Button1", format(flag_check0[1]), path);
WritePrivateProfileString ("Default", "Button2", format(flag_check0[2]), path);
WritePrivateProfileString ("Default", "Button3", format(flag_check0[3]), path);
messagebox("Настройки сохранены");
}
} |
|
|
konctantin777 |
Отправлено: 11 Мая, 2019 - 21:35:37
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
Работает- спс ) А как правильно делать из текстового поля ? пробовал разные варианты, но без понимания...
external (INT, "GetPrivateProfileString", "GetPrivateProfileStringA", "kernel32.dll");
external (INT, "WritePrivateProfileString", "WritePrivateProfileStringA", "kernel32.dll");
char str[255];
string path="C:\GoW.ini"; // путь к файлу настроек
if(fopen(path, "r")!=0) // если файл с настройками открылся, т. е. существует
{
fclose();
sleep(300);
GetPrivateProfileString ("Default", "sell", 0, address (#str[0]), 255, path); // читаем значение для text_edit0[1]
text_edit0[2]=format (#str[0]);
GetPrivateProfileString ("Default", "sell", 0, address (#str[0]), 255, path); // читаем значение для text_edit0[1]
text_edit0[3]=format (#str[0]);
GetPrivateProfileString ("Default", "sell", 0, address (#str[0]), 255, path); // читаем значение для text_edit0[1]
text_edit0[4]=format (#str[0]);
GetPrivateProfileString ("Default", "sell", 0, address (#str[0]), 255, path); // читаем значение для text_edit0[1]
text_edit0[5]=format (#str[0]);
}
loop()
{
pause(1000);
WritePrivateProfileString ("Default", "sell", text_edit0[2], path); // записываем значение text_edit0[2]
WritePrivateProfileString ("Default", "sell", text_edit0[3], path); // записываем значение text_edit0[2]
WritePrivateProfileString ("Default", "sell", text_edit0[4], path); // записываем значение text_edit0[2]
WritePrivateProfileString ("Default", "sell", text_edit0[5], path); // записываем значение text_edit0[2]
} |
|
|
Zireael |
Отправлено: 11 Мая, 2019 - 22:11:46
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: А как правильно делать из текстового поля ?
Также как и остальное.
Цитата: WritePrivateProfileString ("Default", "sell2", text_edit0[2], path); // записываем значение text_edit0[2]
WritePrivateProfileString ("Default", "sell3", text_edit0[3], path); // записываем значение text_edit0[2]
Имена ключей должны отличаться, у вас же записывается в sell сначала text_edit0[2], потом text_edit0[3] и т.д. |
|
|
Zireael |
Отправлено: 14 Сентября, 2019 - 16:14:21
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: flag_combo0[1]
В диалоге 2 комбо?
Цитата: if(flag_combo0[1]==0){string pathh="C:\настр1.ini";}
if(flag_combo0[1]==1){string pathh="C:\настр2.ini";}
CODE:string pathh;
if(flag_combo0[1]==0){pathh="C:\настр1.ini";}
if(flag_combo0[1]==1){pathh="C:\настр2.ini";} |
|
|
|