AdryV |
Отправлено: 30 Апреля, 2018 - 17:13:25
|
Специалист
Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016
Репутация: 11
|
konctantin777 пишет: int n==(text_edit0[2]);
int n=formatsn(text_edit0[2]);//формат конвертирует из текста в число
пример
CODE:int pos_size_edit0[1][4];
string text_edit0[1];
pos_size_edit0[0][0]=72; pos_size_edit0[0][1]=126; pos_size_edit0[0][2]=100; pos_size_edit0[0][3]=20;
text_edit0[0]="0";
//////////
createdialog(0, EDIT, #pos_size_edit0[0][0], #text_edit0[0]);
//////////
showdialog(0, "1111", 835, 390, 250, 300, 1, 1);
int n;
loop()
{
text_edit0[0]=format(rand(0, 20));
n=formatsn(text_edit0[0]);
textout(1, 10, 50,"n = "+format(n), 0);
sleep(50);
} |
|
|
Zireael |
Отправлено: 30 Апреля, 2018 - 20:36:50
|
Эксперт
Просматривает форум
Сообщений всего: 4462
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: готовый проверенный код сохранить настройки ?
Пример сохранения настроек диалогового окна в ini файл (Отобразить)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]=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]
}
}
Вводим новые значения в поля edit, сохраняем настройки, перезапускаем диалоговое окно. В Edit впишутся последние значения. |
|
|
ivantu |
Отправлено: 15 Ноября, 2018 - 15:04:59
|
Эксперт
Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
|
Подскажите пожалуйста как комбобокс задействовать, ошибка вылетает, я так понял это из за того что разные типы данных?
CODE:
if(fopen(path, "r")!=0)
{
fclose();
GetPrivateProfileString ("Default", "repeat", 0, address (#str[0]), 255, path);
text_edit0[0]=format (#str[0]);
GetPrivateProfileString ("Default", "sell", 0, address (#str[0]), 255, path);
text_edit0[1]=format (#str[0]);
GetPrivateProfileString ("Default", "combo", 0, address (#str[0]), 255, path);
flag_combo0[0]=format (#str[0]);
}
enabletimer(0);
loop() sleep(10);
CREATE_TIMER(0, 500)
{
if(flag_button0[0]>0)
{
flag_button0[0]=0;
WritePrivateProfileString ("Default", "repeat", text_edit0[0], path);
WritePrivateProfileString ("Default", "sell", text_edit0[1], path);
WritePrivateProfileString ("Default", "combo", flag_combo0[0], path);
}
}
(Отредактировано автором: 15 Ноября, 2018 - 15:08:26) |
|
|
ivantu |
Отправлено: 15 Ноября, 2018 - 15:32:16
|
Эксперт
Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
|
Kibor пишет: Для чего служит функция format?
И какого типа переменная flag_combo0?
Цитата: format- Привод целго число int или дробного double или массива char к string
Я пробовал убирать, не помогает. |
|
|
ivantu |
Отправлено: 15 Ноября, 2018 - 15:44:36
|
Эксперт
Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
|
Kibor пишет: flag_combo0 string?
flag_combo0[0]=formatsn(format (#str[0]));
Спасибо теперь стало ясно, я понимаю Ваши эмоции
Я просто начинаю только этот путь
(Добавление)
странно сделал все как вы писали, теперь при выборе в комбо боксе пункт 2 кибор виснет и закрывается (
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]=72; pos_size_button0[0][1]=164; pos_size_button0[0][2]=100; pos_size_button0[0][3]=29;
text_button0[0]="Сохранить";
//////////
int pos_size_edit0[2][4];
string text_edit0[2];
pos_size_edit0[0][0]=67; pos_size_edit0[0][1]=17; pos_size_edit0[0][2]=100; pos_size_edit0[0][3]=20;
pos_size_edit0[1][0]=68; pos_size_edit0[1][1]=58; pos_size_edit0[1][2]=100; pos_size_edit0[1][3]=20;
text_edit0[0]="Поле 0"; text_edit0[1]="Поле 1";
//////////
int pos_size_combo0[1][4];
string text_combo0[1][2];
int strok_combo0[1];
int flag_combo0[1];
pos_size_combo0[0][0]=69; pos_size_combo0[0][1]=94; pos_size_combo0[0][2]=100; pos_size_combo0[0][3]=80;
strok_combo0[0]=2;
text_combo0[0][0]="Да"; text_combo0[0][1]="Нет";
flag_combo0[0]=0;
//////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
EDIT, #pos_size_edit0[0][0], #text_edit0[0] |
COMBO, #pos_size_combo0[0][0], #text_combo0[0][0], #strok_combo0[0], #flag_combo0[0]);
//////////
showdialog(0, "Диалог", 515, 362, 250, 300, 1, 1);
//////////
if(fopen(path, "r")!=0) // если файл с настройками открылся, т. е. существует
{
fclose();
GetPrivateProfileString ("Default", "repeat", 0, address (#str[0]), 255, path); // читаем значение для text_edit0[0]
text_edit0[0]=format (#str[0]);
GetPrivateProfileString ("Default", "sell", 0, address (#str[0]), 255, path); // читаем значение для text_edit0[1]
text_edit0[1]=format (#str[0]);
GetPrivateProfileString ("Default", "combo", 0, address (#str[0]), 255, path); // читаем значение для text_edit0[1]
flag_combo0[0]=formatsn(format (#str[0]));
}
enabletimer(0);
loop() sleep(10);
CREATE_TIMER(0, 500)
{
if(flag_button0[0]>0) // если нажата кнопка сохранить настройки
{
flag_button0[0]=0;
WritePrivateProfileString ("Default", "repeat", text_edit0[0], path); // записываем значение text_edit0[0]
WritePrivateProfileString ("Default", "sell", text_edit0[1], path); // записываем значение text_edit0[1]
WritePrivateProfileString ("Default", "combo", flag_combo0[0], path); // записываем значение text_edit0[1]
}
}
(Добавление)
забыл поправки внести, с ними так же вылет
flag_combo0[0]=formatsn(format (#str[0])); |
|
|
|