Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: Блок кода выполняющийся до создания графической оболочки. INITDIALOG
Kibor
Отправлено: 05 Февраля, 2014 - 09:41:19
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Часто бывает необходимо выполнить код до вывода главного окна программы.
Пример - загрузка ранее введенных настроек контролов с файла и установка их в контролах.

Добавлен блок INITDIALOG
Находящийся в нем код выполняется первым до создания диалогового окна и контролов.
Он имеет доступ ко всем переменным и функциям в основном теле программы.

синтаксис

INITDIALOG
{
// Тут добавить код который будет выполняться до запуска графической оболочки...

}


Найти его можно в меню правой кнопки мышки - создание интерфейса - блок кода выполняющегося до интерфейса.

Важно
Переменные объявленные таким образом в основном коде
int a=5
не будут иметь те значения что им присвоили в момент объявления, так как код в INITDIALOG выполнится перед тем как а станет равно 5.
Поэтому если a надо использовать в INITDIALOG надо объявить его в основном коде, а присвоить 5 ему в INITDIALOG
Пример
 Цитата:
int a;
INITDIALOG
{
a=5;
messagebox(a);
}



Блок может располагаться в любом месте

Пример:
 Цитата:
messagebox ("а тут основной код.");

INITDIALOG
{
// Тут добавить код который будет выполняться до запуска графической оболочки...
int Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds;
getlocaltime(Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds);
sendcontrol(STATIC_0, "Текущее время");
sendcontrol(CHECK_0, 1); //Ставим галку
sendcontrol(EDIT_0, format(Hour)+":"+format(Minute)+":"+format(Second));
sendcontrol(COMBO_0, 0, "Теперь пункт такой"); //меняем название пункта в списке по номеру
sendcontrol(COMBO_0, "Выбор строки 2", "А этот по имени такой"); //меняем название пункта в списке по названию
messagebox ("Данные контролов изменены");
}






CREATE_INTERFACE
{
DIALOG "Название окна" 237 180 //РазмерX РазмерY
BUTTONSCRIPT "Запустить" 125 121 100 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......
STATIC_0 "Статичный текст" 10 10 90 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_0 "Текст по умолчанию" 105 8 120 18 //ПозицияX ПозицияY РазмерX РазмерY
CHECK_0 0 /*Выключена*/ "Включить опцию" 10 130 105 18 //ПозицияX ПозицияY РазмерX РазмерY
COMBO_0 0 /*Начальный выбор*/ "Выбор строки 1" | "Выбор строки 2" | "Выбор строки 3" 10 40 212 200 //ПозицияX ПозицияY РазмерX РазмерY_выпадающий список
}


Сохранение настроек CREATE_INTERFACE
CODE:
int N;

N=formatsn(getcontrol(EDIT_0));




if (fopen ("C:\config.txt", "w")!=0)
{//если открылся
fwrite(N); fwrite (ENDL);
fclose();//закрываем файл
}


messagebox (N);


INITDIALOG
{
if (fopen ("C:\config.txt", "r")!=0)//открываем файл для чтения "r"
{//если открылся
fread(N);

sendcontrol(EDIT_0, format(N));
fclose();//закрываем файл
}
}




CREATE_INTERFACE
{
DIALOG "Название окна" 237 180 //РазмерX РазмерY
BUTTONSCRIPT "Запустить" 125 121 100 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......
STATIC_0 "Статичный текст" 10 10 90 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_0 "5" 105 8 120 18 //ПозицияX ПозицияY РазмерX РазмерY

}



Доработана функция sendcontrol для списков.
Теперь можно менять названия в списках.
 Цитата:
sendcontrol(COMBO_0, 0, "Теперь пункт такой"); //меняем название пункта в списке по номеру
sendcontrol(COMBO_0, "Выбор строки 2", "А этот по имени такой"); //меняем название пункта в списке по названию
 
 Top
007wan
Отправлено: 07 Апреля, 2017 - 19:07:08
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




А как сделать, что бы время шло непрерывно, т.е шло в реальном времени и не стояло

(Отредактировано автором: 07 Апреля, 2017 - 19:19:55)

 
 Top
petyanka
Отправлено: 20 Апреля, 2022 - 04:16:35
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 92
Дата рег-ции: Сент. 2014  
Репутация: 1




Для тех кто так же как и я будет искать, как сделать сохранение для интерфейса в визуальном редакторе, вот вам код. (Написал сам)
CODE:

if (fopen ("C:\config.txt", "r")!=0)
{
fread(text_edit0[0]);

fclose();
}
loop ()
{
//Ваш код


if (fopen ("C:\config.txt", "w")!=0)
{
fwrite(text_edit0[0]); fwrite (ENDL);
fclose();
sleep (10);
}
}

(Отредактировано автором: 20 Апреля, 2022 - 04:17:17)

 
 Top
Zireael
Отправлено: 20 Апреля, 2022 - 11:13:07
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




Постоянно перезаписывать файл нет смысла. Нужно это делать при наступлении какого-то события, например, нажатии кнопки Сохранить настройки или изменении текста контрола.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by