Подскажите как реализовать сохранение галок при закрытие кибор.
Может есть какие то примеры
1. gorgadzo - 03 Мая, 2021 - 16:19:26 - перейти к сообщению
2. Zireael - 03 Мая, 2021 - 16:48:46 - перейти к сообщению
Цитата:
как реализовать сохранение галок при закрытие кибор.
Записывать в txt или ini файл состояние галок. На форуме есть примеры.
3. gorgadzo - 04 Мая, 2021 - 15:14:08 - перейти к сообщению
Zireael пишет:
Цитата:
как реализовать сохранение галок при закрытие кибор.
Записывать в txt или ini файл состояние галок. На форуме есть примеры.
Можете поделится ссылкой примера вчера весь форум обшарил так и не нашел ни чего.
(Добавление)
На форуме столько тем и решений проблем но очень тяжело найти нужный ответ поиск как то криво ищет. Или может я криво ищу приходится часто в ручную искать
4. Zireael - 04 Мая, 2021 - 15:21:46 - перейти к сообщению
Как создаются контролы? Скиньте код с диалоговым окном, на котором галки.
Просто он не ищет код под спойлерами, поэтому много чего не найти.
Цитата:
поиск как то криво ищет
Просто он не ищет код под спойлерами, поэтому много чего не найти.
5. gorgadzo - 04 Мая, 2021 - 18:25:01 - перейти к сообщению
CODE:
#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define SW_HIDE 0
#define SW_SHOW 5
#define TCIF_TEXT 1
#define TCM_GETCURSEL 4875
#define TCM_INSERTITEMA 4871
#define BS_AUTOCHECKBOX 3
#define BS_BITMAP 128
#define BM_GETIMAGE 246
#define BM_SETIMAGE 247
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "ShowWindow", "ShowWindow", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll" );
external(INT, "LoadImage", "LoadImageA", "User32.dll");
int TabControl;
string text_tab[3] = {"main", "accaunt", "help"}
char text_tab_c[99];
int current_tab=0, temp_current_tab;
int TCITEMA[7]={TCIF_TEXT, 0, 0, address(#text_tab_c[0]), sizearray(text_tab_c), 0, 0};
int control[3][10]; // массив, в котором будут храниться хендлы контролов таба
int flag=0;
char buf[255];
int image1;
image1=LoadImage(0, "C:\Button2.BMP", 0, 50, 50, 16); // загрузка картинки 100*34
createdialog(0);
showdialog(0, "Dialog", 50, 50, 400, 450, 1, 1);
enabletimer(0);
metka_start:;
while(flag==0)sleep(10);
function getmessage(0, WM_CREATE)
{
TabControl=CreateWindow(0, "SysTabControl32", "", WS_VISIBLE | WS_CHILD, 10, 10, 375, 400, gethwnd(0), 0, 0, 0); // создать tab
for(int i=0; i<3; i++) // цикл чтобы добавить вкладки
{
strcpy(#text_tab_c[0], text_tab[i]);
sendmessage(TCM_INSERTITEMA, i, address(#TCITEMA[0]), formatiw(TabControl));
}
initialarray(#control[0][0], 0);
// добавить контролы для первой вкладки
control[0][0]=1; // на первой вкладке 3 контрола
control[0][1] = CreateWindow(0, "BUTTON", "Start", WS_VISIBLE | WS_CHILD, 10, 40, 70, 20, gethwnd(0), 0, 0, 0);
// добавить контролы для второй вкладки, без стиля WS_VISIBLE
control[1][0]=4; // на второй вкладке 4 контролов
control[1][1] = CreateWindow(0, "BUTTON", "0", BS_AUTOCHECKBOX | WS_CHILD, 30, 90, 50, 20, gethwnd(0), 0, 0, 0); // создать галку
control[1][2] = CreateWindow(0, "BUTTON", "", BS_BITMAP | WS_CHILD, 20, 35, 50, 50, gethwnd(0), 0, 0, 0); // создать галку
control[1][3] = CreateWindow(0, "BUTTON", "1", BS_AUTOCHECKBOX | WS_CHILD, 90, 90, 50, 20, gethwnd(0), 0, 0, 0); // создать галку
control[1][4] = CreateWindow(0, "BUTTON", "", BS_BITMAP | WS_CHILD, 80, 35, 50, 50, gethwnd(0), 0, 0, 0); // создать галку
sendmessage(BM_SETIMAGE, 0, image1, formatiw(control[1][2])); // установить изображение image1
sendmessage(BM_SETIMAGE, 0, image1, formatiw(control[1][4])); // установить изображение image1
// добавить контролы для третьей вкладки, без стиля WS_VISIBLE
control[2][0]=0; // на третьей вкладке 2 контрола
}
function getmessage(0, WM_COMMAND)
{
// обработка сообщений
{
if (message.lparam==control[0][1])
{
if(GetWindowText(control[0][1], address(#buf[0]), sizearray(buf))) // ???????? ????? ??????
{
if(format(#buf[0])=="Start") // ???? '?????'
{
flag=1; // ????????? ??????? ?????????? ??????
SetWindowText(control[0][1], "Stop"); // ????????????? ??????
}
else // ?????
{
flag=0; // ????????? ??????? ?????????? ??????
resettextout(1); // ?????? textout, ????? ??????
SetWindowText(control[0][1], "Start"); // ????????????? ??????
goto global metka_start; // ??????? ? ?????
}
}
}
}
}
CREATE_TIMER(0, 300)
{
temp_current_tab=sendmessage(TCM_GETCURSEL, 0, 0, formatiw(TabControl)); // узнать текущую выбранную вкладку
if(temp_current_tab != current_tab) // если она не равна текущей выбранной вкладке
{
for(int tab_control_show=0; tab_control_show < control[current_tab][0]; tab_control_show++)
ShowWindow(control[current_tab][tab_control_show+1], SW_HIDE); // скрыть контролы текущей вкладки
current_tab=temp_current_tab; // запомнить какая выбрана вкладка
for(tab_control_show=0; tab_control_show < control[current_tab][0]; tab_control_show++)
ShowWindow(control[current_tab][tab_control_show+1], SW_SHOW); // показать контролы выбранной вкладки
}
}
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define SW_HIDE 0
#define SW_SHOW 5
#define TCIF_TEXT 1
#define TCM_GETCURSEL 4875
#define TCM_INSERTITEMA 4871
#define BS_AUTOCHECKBOX 3
#define BS_BITMAP 128
#define BM_GETIMAGE 246
#define BM_SETIMAGE 247
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "ShowWindow", "ShowWindow", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll" );
external(INT, "LoadImage", "LoadImageA", "User32.dll");
int TabControl;
string text_tab[3] = {"main", "accaunt", "help"}
char text_tab_c[99];
int current_tab=0, temp_current_tab;
int TCITEMA[7]={TCIF_TEXT, 0, 0, address(#text_tab_c[0]), sizearray(text_tab_c), 0, 0};
int control[3][10]; // массив, в котором будут храниться хендлы контролов таба
int flag=0;
char buf[255];
int image1;
image1=LoadImage(0, "C:\Button2.BMP", 0, 50, 50, 16); // загрузка картинки 100*34
createdialog(0);
showdialog(0, "Dialog", 50, 50, 400, 450, 1, 1);
enabletimer(0);
metka_start:;
while(flag==0)sleep(10);
function getmessage(0, WM_CREATE)
{
TabControl=CreateWindow(0, "SysTabControl32", "", WS_VISIBLE | WS_CHILD, 10, 10, 375, 400, gethwnd(0), 0, 0, 0); // создать tab
for(int i=0; i<3; i++) // цикл чтобы добавить вкладки
{
strcpy(#text_tab_c[0], text_tab[i]);
sendmessage(TCM_INSERTITEMA, i, address(#TCITEMA[0]), formatiw(TabControl));
}
initialarray(#control[0][0], 0);
// добавить контролы для первой вкладки
control[0][0]=1; // на первой вкладке 3 контрола
control[0][1] = CreateWindow(0, "BUTTON", "Start", WS_VISIBLE | WS_CHILD, 10, 40, 70, 20, gethwnd(0), 0, 0, 0);
// добавить контролы для второй вкладки, без стиля WS_VISIBLE
control[1][0]=4; // на второй вкладке 4 контролов
control[1][1] = CreateWindow(0, "BUTTON", "0", BS_AUTOCHECKBOX | WS_CHILD, 30, 90, 50, 20, gethwnd(0), 0, 0, 0); // создать галку
control[1][2] = CreateWindow(0, "BUTTON", "", BS_BITMAP | WS_CHILD, 20, 35, 50, 50, gethwnd(0), 0, 0, 0); // создать галку
control[1][3] = CreateWindow(0, "BUTTON", "1", BS_AUTOCHECKBOX | WS_CHILD, 90, 90, 50, 20, gethwnd(0), 0, 0, 0); // создать галку
control[1][4] = CreateWindow(0, "BUTTON", "", BS_BITMAP | WS_CHILD, 80, 35, 50, 50, gethwnd(0), 0, 0, 0); // создать галку
sendmessage(BM_SETIMAGE, 0, image1, formatiw(control[1][2])); // установить изображение image1
sendmessage(BM_SETIMAGE, 0, image1, formatiw(control[1][4])); // установить изображение image1
// добавить контролы для третьей вкладки, без стиля WS_VISIBLE
control[2][0]=0; // на третьей вкладке 2 контрола
}
function getmessage(0, WM_COMMAND)
{
// обработка сообщений
{
if (message.lparam==control[0][1])
{
if(GetWindowText(control[0][1], address(#buf[0]), sizearray(buf))) // ???????? ????? ??????
{
if(format(#buf[0])=="Start") // ???? '?????'
{
flag=1; // ????????? ??????? ?????????? ??????
SetWindowText(control[0][1], "Stop"); // ????????????? ??????
}
else // ?????
{
flag=0; // ????????? ??????? ?????????? ??????
resettextout(1); // ?????? textout, ????? ??????
SetWindowText(control[0][1], "Start"); // ????????????? ??????
goto global metka_start; // ??????? ? ?????
}
}
}
}
}
CREATE_TIMER(0, 300)
{
temp_current_tab=sendmessage(TCM_GETCURSEL, 0, 0, formatiw(TabControl)); // узнать текущую выбранную вкладку
if(temp_current_tab != current_tab) // если она не равна текущей выбранной вкладке
{
for(int tab_control_show=0; tab_control_show < control[current_tab][0]; tab_control_show++)
ShowWindow(control[current_tab][tab_control_show+1], SW_HIDE); // скрыть контролы текущей вкладки
current_tab=temp_current_tab; // запомнить какая выбрана вкладка
for(tab_control_show=0; tab_control_show < control[current_tab][0]; tab_control_show++)
ShowWindow(control[current_tab][tab_control_show+1], SW_SHOW); // показать контролы выбранной вкладки
}
}
есть 2 галки как записать их состояние в txt или ini файл. Что бы при следующим запуске программы, загружало выбранные перед закрытием программы галки
6. Zireael - 05 Мая, 2021 - 03:25:35 - перейти к сообщению