Создание менеджера конфигурации Celestia
Обоснование и выбор программных средств обеспечения проектирования и разработки структуры классов. Математические методы и специальные алгоритмы решения задачи. Описание входной, выходной и промежуточной информации. Разработка экранного интерфейса.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 18.05.2014 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
else
EndingProv("extras\\", "Ulysses-full", "JACKulysses-xyz.ssc", CheckBox57);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingProv("data\\spacecrafts\\venus-missions\\", "Venera", "JACKveneraUSSR-xyz.ssc", CheckBox58);
else
EndingProv("extras\\", "Venera", "JACKveneraUSSR-xyz.ssc", CheckBox58);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingProv("data\\spacecrafts\\mars-missions\\", "Viking-full", "viking.ssc", CheckBox59);
else
EndingProv("extras\\", "Viking-full", "viking.ssc", CheckBox59);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingProv("data\\spacecrafts\\interplanetary-missions\\", "Zond 3", "JACKzondUSSR-xyz.ssc", CheckBox60);
else
EndingProv("extras\\", "Zond 3", "JACKzondUSSR-xyz.ssc", CheckBox60);
//ПРОВЕРКА LUA-ИНСТРУМЕНТОВ
String ShowP="";
String ShowInf="enable_info = ";
String ShowCoord="enable_coordinates = ";
String ShowKep="enable_Kepler_param = ";
String ShowComp="enable_compass = ";
String SelectCockpit="cockpitTexture = ";
String Zoom="enable_magnification = ";
String HR="enable_HR = ";
String Navi="enable_virtual_pad = ";
String LP="";
String LocalTime="show_local_time = ";
String CompasCenter="center_compass = ";
String AltAzim="alt_azimuthal_mode = ";
String CustomDuration="custom_goto_duration = ";
String DigitDur="";
//Проверка версии Lua-инструментов
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
{
LuaAdr="\lua-applications\\lua_universal_tools_v2\\";
LuaTab->Caption="Lua Universal Tools v2.0";
ShowP="show_lua_universal_tools_v2 = ";
GroupBox8->Height=281;
RadioGroup1->Visible=true;
CheckBox5->Enabled=false;
CheckBox6->Enabled=false;
CheckBox11->Enabled=false;
CheckBox12->Enabled=false;
CheckBox7->Enabled=false;
CheckBox13->Enabled=false;
CheckBox8->Enabled=false;
CheckBox15->Enabled=false;
CheckBox16->Enabled=false;
Label11->Caption=" "+StringsLocale[5];
Label11->Visible=true;
}
else
{
if(FileExists(ExtractFilePath(Application->ExeName)+"\extras\\lua_universal_tools_v2\\"+"config.lua"))
{
LuaAdr="\extras\\lua_universal_tools_v2\\";
LuaTab->Caption="Lua Universal Tools v2.0";
ShowP="show_lua_universal_tools_v2 = ";
GroupBox8->Height=281;
RadioGroup1->Visible=true;
CheckBox5->Enabled=false;
CheckBox6->Enabled=false;
CheckBox11->Enabled=false;
CheckBox12->Enabled=false;
CheckBox7->Enabled=false;
CheckBox13->Enabled=false;
CheckBox8->Enabled=false;
CheckBox15->Enabled=false;
CheckBox16->Enabled=false;
Label11->Caption=" "+StringsLocale[5];
Label11->Visible=true;
}
if(FileExists(ExtractFilePath(Application->ExeName)+"\extras\\lua_universal_tools\\"+"config.lua"))
{
LuaAdr="\extras\\lua_universal_tools\\";
LuaTab->Caption="Lua Universal Tools v1.0";
ShowP="show_lua_universal_tools = ";
GroupBox8->Height=281;
RadioGroup1->Visible=true;
}
else
{
if(FileExists(ExtractFilePath(Application->ExeName)+"\extras\\lua_edu_tools\\"+"config.lua"))
{
LuaAdr="\extras\\lua_edu_tools\\";
LuaTab->Caption="Lua Edu Tools v1.2 beta 8";
ShowP="show_lua_edu_tools = ";
}
if(FileExists(ExtractFilePath(Application->ExeName)+"\extras\\lua_edu_tools-b9\\"+"config.lua"))
{
LuaAdr="\extras\\lua_edu_tools-b9\\";
LuaTab->Caption="Lua Edu Tools v1.2 beta 9";
ShowP="show_lua_edu_tools = ";
}
}
if (LuaAdr=="")
{
LuaAdr="none";
LuaTab->Caption=StringsLocale[6];
//Перечисляем все компоненты страницы для деактивации
CheckBox4->Enabled=false;
CheckBox5->Enabled=false;
CheckBox6->Enabled=false;
CheckBox7->Enabled=false;
CheckBox8->Enabled=false;
CheckBox11->Enabled=false;
CheckBox12->Enabled=false;
CheckBox13->Enabled=false;
CheckBox14->Enabled=false;
CheckBox15->Enabled=false;
CheckBox16->Enabled=false;
ComboBox2->Enabled=false;
Edit4->Enabled=false;
BitBtn3->Enabled=false;
Label11->Visible=true;
Label12->Visible=true;
Label14->Visible=true;
return;
}
}
TStringList *Lua=new TStringList;
Lua->LoadFromFile(ExtractFilePath(Application->ExeName)+LuaAdr+"config.lua");
//Отображение панели
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(ShowP))
LP=Lua->Strings[i];
if (LP.Pos(ShowP+"true"))
CheckBox4->Checked=true;
else
CheckBox4->Checked=false;
}
//Отображение информации
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(ShowInf))
LP=Lua->Strings[i];
if (LP=="enable_info = true" || LP==" enable_info = true")
CheckBox5->Checked=true;
else
CheckBox5->Checked=false;
}
//Отображение координат
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(ShowCoord))
LP=Lua->Strings[i];
if (LP=="enable_coordinates = true" || LP==" enable_coordinates = true")
CheckBox6->Checked=true;
else
CheckBox6->Checked=false;
}
//Режим "Увеличение"
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Zoom))
LP=Lua->Strings[i];
if (LP=="enable_magnification = true" || LP==" enable_magnification = true")
CheckBox11->Checked=true;
else
CheckBox11->Checked=false;
}
//Диаграмма Г-Р
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(HR))
LP=Lua->Strings[i];
if (LP=="enable_HR = true" || LP==" enable_HR = true")
CheckBox12->Checked=true;
else
CheckBox12->Checked=false;
}
//Отображение Кеплеровых параметров
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(ShowKep))
LP=Lua->Strings[i];
if (LP=="enable_Kepler_param = true" || LP==" enable_Kepler_param = true")
CheckBox7->Checked=true;
else
CheckBox7->Checked=false;
}
//Джойстик
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Navi))
LP=Lua->Strings[i];
if (LP=="enable_virtual_pad = true" || LP==" enable_virtual_pad = true")
CheckBox13->Checked=true;
else
CheckBox13->Checked=false;
}
//Отображение компаса
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(ShowComp))
LP=Lua->Strings[i];
if (LP=="enable_compass = true" || LP==" enable_compass = true")
CheckBox8->Checked=true;
else
CheckBox8->Checked=false;
}
//Пояс астероидов
TStringList *Addon = new TStringList;
Addon->LoadFromFile(ExtractFilePath(Application->ExeName)+LuaAdr+"\\adds\\Asteroid_Belt\\"+"Asteroid_Belt.ssc");
if(Addon->Text.Pos("Visible true"))
CheckBox63->Checked=true;
else
CheckBox63->Checked=false;
delete Addon;
//Показывать местное время
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(LocalTime))
LP=Lua->Strings[i];
if (LP=="show_local_time = true" || LP==" show_local_time = true")
CheckBox14->Checked=true;
else
CheckBox14->Checked=false;
}
//Компас по центру
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(CompasCenter))
LP=Lua->Strings[i];
if (LP=="center_compass = true" || LP==" center_compass = true")
CheckBox15->Checked=true;
else
CheckBox15->Checked=false;
}
//Режим Альт-Азимут
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(AltAzim))
LP=Lua->Strings[i];
if (LP=="alt_azimuthal_mode = true" || LP==" alt_azimuthal_mode = true")
{
CheckBox16->Checked=true;
CheckBox16->Caption=StringsLocale[9];
}
else
{
CheckBox16->Checked=false;
CheckBox16->Caption=StringsLocale[10];
}
}
//Формат даты
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos("date_format = "))
LP=Lua->Strings[i];
if (LP=="date_format = \"country_default\"" || LP==" date_format = \"country_default\"")
ComboBox2->ItemIndex=0;
if (LP=="date_format = \"day/month/year\"" || LP==" date_format = \"day/month/year\"")
ComboBox2->ItemIndex=1;
if (LP=="date_format = \"month/day/year\"" || LP==" date_format = \"month/day/year\"")
ComboBox2->ItemIndex=2;
if (LP=="date_format = \"year/month/day\"" || LP==" date_format = \"year/month/day\"")
ComboBox2->ItemIndex=3;
}
//Скорость перелета к объекту
for (int i=0;i<Lua->Count;i++)
if ((op=Lua->Strings[i].Pos(CustomDuration))>0)
for (int k=op;k<=Lua->Strings[i].Length();k++)
if (isdigit(Lua->Strings[i][k]))
DigitDur+=Lua->Strings[i][k];
Edit4->Text=DigitDur;
//Цветовые схемы
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(" cFrameFill = "))
if (Lua->Strings[i]==" cFrameFill = {0, 0 , 0, 0}")
RadioGroup1->ItemIndex=0;
if (Lua->Strings[i]==" cFrameFill = {0, 0 , 0.5, 0.4}")
RadioGroup1->ItemIndex=1;
if (Lua->Strings[i]==" cFrameFill = {0.2, 0.4 , 0.3, 0.4}")
RadioGroup1->ItemIndex=2;
if (Lua->Strings[i]==" cFrameFill = {0.4, 0.3, 0.6, 0.4}")
RadioGroup1->ItemIndex=3;
}
delete Lua;
}
}
//---------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////
// СОХРАНЕНИЕ НАСТРОЕК //
////////////////////////////////////////////////////////////////////////////////
//ОСНОВНЫЕ
void __fastcall TMainForm::BitBtn1Click(TObject *Sender)
{
TStringList *Main=new TStringList;
String Orbit=" OrbitPathSamplePoints ";
String Rings=" RingSystemSections ";
Main->LoadFromFile(ExtractFilePath(Application->ExeName) + "celestia.cfg");
//Точки орбит и кольца планет
if (Edit2->Text!="" && StrToInt(Edit2->Text)>=80 && StrToInt(Edit2->Text)<=400)
{
if (Edit3->Text!="" && StrToInt(Edit3->Text)>=100 && StrToInt(Edit3->Text)<=2000)
{
for (int i=0;i<Main->Count;i++)
{
if(Main->Strings[i].Pos(Orbit))
Main->Strings[i]=" OrbitPathSamplePoints "+Edit2->Text;
if (Main->Strings[i].Pos(Rings))
Main->Strings[i]=" RingSystemSections "+Edit3->Text;
}
}
else
{
Application->MessageBox(MessegesLocale[2].c_str(), Application->Title.c_str(), MB_OK | MB_ICONERROR);
Edit3->Color=clRed;
Edit3->Font->Color=clWhite;
return;
}
}
else
{
Application->MessageBox(MessegesLocale[2].c_str(), Application->Title.c_str(), MB_OK | MB_ICONERROR);
Edit2->Color=clRed;
Edit2->Font->Color=clWhite;
return;
}
//Папки с дополнениями
for (int i=0;i<Main->Count;i++)
if ((Main->Strings[i].Pos("ExtrasDirectories")>0) && (Main->Strings[i][1] != '#'))
{
S[0]=""; S[1]=""; S[2]="";
sl = Main->Strings[i]; // " "
int n,k, dl ;
if (EditDir1->Text.Length() >0)
S[0]=StringReplace(EditDir1->Text,"\\","/",TReplaceFlags()<< rfReplaceAll);
if (EditDir2->Text.Length() >0)
S[1]=StringReplace(EditDir2->Text,"\\","/",TReplaceFlags()<< rfReplaceAll);
if (EditDir3->Text.Length() >0)
S[2]=StringReplace(EditDir3->Text,"\\","/",TReplaceFlags()<< rfReplaceAll);
if ((n=Main->Strings[i].Pos("["))>0)
{
sl=sl.SubString(1,n) ;
if (S[0].Length()) sl=sl+ " \""+S[0] ;
if (S[1].Length()) sl=sl+"\" \""+S[1] ;
if (S[2].Length()) sl=sl+"\" \""+S[2] ;
sl=sl+"\" ]";
Main->Strings[i]=sl;
break;
}
}
if (EditDir1->Text=="")
Application->MessageBox(MessegesLocale[3].c_str(), Application->Title.c_str(), MB_OK | MB_ICONERROR);
//Курсор
if (RadioButton1->Checked)
{
for (int i=0;i<Main->Count;i++)
{
if(Main->Strings[i].Pos(" Cursor \""))
Main->Strings[i]=" Cursor \"crosshair\"";
}
}
if (RadioButton2->Checked)
{
for (int i=0;i<Main->Count;i++)
{
if(Main->Strings[i].Pos(" Cursor \""))
Main->Strings[i]=" Cursor \"inverting crosshair\"";
}
}
if (RadioButton3->Checked)
{
for (int i=0;i<Main->Count;i++)
{
if(Main->Strings[i].Pos(" Cursor \""))
Main->Strings[i]=" Cursor \"arrow\"";
}
}
//Директория скриншотов
int n;
for (int i=0;i<Main->Count;i++)
if ((Main->Strings[i].Pos("ScriptScreenshotDirectory")>0) && (Main->Strings[i][1] != '#'))
{
S[4]="";
sl = Main->Strings[i]; // " "
if (EditScreenDir->Text.Length() >0)
S[4]=StringReplace(EditScreenDir->Text,"\\","/",TReplaceFlags()<< rfReplaceAll);
if ((n=Main->Strings[i].Pos("\""))>0)
{
sl=sl.SubString(1,n) ;
if (S[4].Length()) sl=sl+S[4] ;
sl=sl+"\"";
Main->Strings[i]=sl;
break;
}
}
//Параметр ScriptSystemAccessPolicy
for (int i=0;i<Main->Count;i++)
{
if(Main->Strings[i].Pos(" ScriptSystemAccessPolicy"))
{
if (ComboBox1->ItemIndex==0)
Main->Strings[i]=" ScriptSystemAccessPolicy \"ask\"";
if (ComboBox1->ItemIndex==1)
Main->Strings[i]=" ScriptSystemAccessPolicy \"allow\"";
if (ComboBox1->ItemIndex==2)
Main->Strings[i]=" ScriptSystemAccessPolicy \"deny\"";
}
}
//Стартовый сценарий
for (int i=0;i<Main->Count;i++)
if ((Main->Strings[i].Pos("InitScript")>0) && (Main->Strings[i][1] != '#'))
{
S[5]="";
sl = Main->Strings[i]; // " "
if (EditStartScript->Text.Length() >0)
S[5]=StringReplace(EditStartScript->Text,"\\","/",TReplaceFlags()<< rfReplaceAll);
else
{
Application->MessageBox(MessegesLocale[4].c_str(), Application->Title.c_str(), MB_OK | MB_ICONERROR);
return;
}
if ((n=Main->Strings[i].Pos("\""))>0)
{
sl=sl.SubString(1,n) ;
if (S[5].Length()) sl=sl+S[5] ;
sl=sl+"\"";
Main->Strings[i]=sl;
break;
}
}
//Demo сценарий
for (int i=0;i<Main->Count;i++)
if ((Main->Strings[i].Pos("DemoScript")>0) && (Main->Strings[i][1] != '#'))
{
S[6]="";
sl = Main->Strings[i]; // " "
if (EditDemoScript->Text.Length() >0)
S[6]=StringReplace(EditDemoScript->Text,"\\","/",TReplaceFlags()<< rfReplaceAll);
else
{
Application->MessageBox(MessegesLocale[5].c_str(), Application->Title.c_str(), MB_OK | MB_ICONERROR);
return;
}
if ((n=Main->Strings[i].Pos("\""))>0)
{
sl=sl.SubString(1,n) ;
if (S[6].Length()) sl=sl+S[6] ;
sl=sl+"\"";
Main->Strings[i]=sl;
break;
}
}
//Скорость вращения
if (Edit5->Text!="" && StrToInt(Edit5->Text)>=5 && StrToInt(Edit5->Text)<=400)
{
for (int i=0;i<Main->Count;i++)
{
if(Main->Strings[i].Pos(" RotateAcceleration "))
Main->Strings[i]=" RotateAcceleration "+Edit5->Text+".0";
}
}
else
{
Application->MessageBox(MessegesLocale[2].c_str(), Application->Title.c_str(), MB_OK | MB_ICONERROR);
Edit5->Color=clRed;
Edit5->Font->Color=clWhite;
return;
}
//Чувствительность мыши
FormatSettings.DecimalSeparator='.';
for (int i=0;i<Main->Count;i++)
{
if(Main->Strings[i].Pos(" MouseRotationSensitivity "))
Main->Strings[i]=" MouseRotationSensitivity "+Edit1->Text;
}
FormatSettings.DecimalSeparator=',';
Main->SaveToFile(ExtractFilePath(Application->ExeName)+"celestia.cfg");
delete Main;
//Музыкальный проигрыватель для Celestia EP v2.0
if(GroupBox6->Visible==true)
{
EP = new TIniFile(ExtractFilePath(Application->ExeName)+"celestia_ep.ini");
if(CheckBox21->Checked==true)
EP->WriteString("Settings","Music","true");
else
EP->WriteString("Settings","Music","false");
EP->WriteString("Settings","Player",PlayerEdit->Text);
delete EP;
}
if(AutoSave==false)
Application->MessageBox(MessegesLocale[6].c_str(), Application->Title.c_str(), MB_OK | MB_ICONINFORMATION);
}
//ОБЪЕКТЫ И ВРЕМЯ
void __fastcall TMainForm::BitBtn2Click(TObject *Sender)
{
//Солнечные вспышки
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
ObjectSave("data\\solar-system\\sun\\","sun_flares",CheckBox1);
else
ObjectSave("extras\\","sun_flares",CheckBox1);
//Кольца Юпитера
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
ObjectSave("data\\solar-system\\planets-&-moons\\jupiter-&-moons\\","Jupiter Rings",CheckBox2);
else
ObjectSave("extras\\","Jupiter Rings",CheckBox2);
//Достопримечательности Марса
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
ObjectSave("data\\solar-system\\planets-&-moons\\mars\\","Mars Surface Features",CheckBox10);
else
ObjectSave("extras\\Solar System\\Planet\\Mars\\","Mars Surface Features",CheckBox10);
//Пояс Койпера
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
ObjectSave("data\\solar-system\\","kuiper-belt",CheckBox17);
else
ObjectSave("extras\\","Kuiper_Belt",CheckBox17);
//Динамическая атмосфера Юпитера
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
ObjectSave("data\\solar-system\\planets-&-moons\\jupiter-&-moons\\","JupClouds",CheckBox18);
else
ObjectSave("extras\\","Jupiter_Clouds",CheckBox18);
//Вулканы Ио
if(Label19->Caption.Pos("Celestia Extended Pack v1.0")) //недочет в самой сборке
ObjectSave("extras\\","iovolcanoes\\iovolcanoes",CheckBox19);
else
{
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
ObjectSave("data\\solar-system\\planets-&-moons\\jupiter-&-moons\\","iovolcanoes",CheckBox19);
else
ObjectSave("extras\\","iovolcanoes",CheckBox19);
}
//Космический лифт
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
ObjectSave("data\\fiction-objects\\","space-lift",CheckBox20);
else
ObjectSave("extras\\","Space Lift",CheckBox20);
//Облако Оорта
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
ObjectSave("data\\solar-system\\","oort-cloud",CheckBox61);
else
ObjectSave("extras\\","Oort_Cloud",CheckBox61);
//Подсветка частиц колец Сатурна
HSatRingsSave("data\\solar-system\\planets-&-moons\\saturn\\saturn-rings-model\\models\\saturn-ring-element.cmod", CheckBox62);
//Космические аппараты...
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\near-earth-missions\\", "mir", "mir.ssc", CheckBox9);
else
EndingSave("extras-standard\\", "mir", "mir.ssc", CheckBox9);
//if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
//EndingSave("data\\spacecrafts\\jupiter-missions\\", "galileo", "galileo.ssc", CheckBox3);
//else
//EndingSave("extras-standard\\", "galileo", "galileo.ssc", CheckBox3);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\saturn-missions\\", "cassini", "cassini.ssc", CheckBox23);
else
EndingSave("extras\\", "Cassini-Huygens", "cassini_huygens.ssc", CheckBox23);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\near-earth-missions\\", "Sputnik 1", "sputnik-1.ssc", CheckBox24);
else
EndingSave("extras\\", "Sputnik 1", "sputnik-1.ssc", CheckBox24);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\near-earth-missions\\", "Spoutnik 2", "Spoutnik.ssc", CheckBox25);
else
EndingSave("extras\\", "Spoutnik 2", "Spoutnik.ssc", CheckBox25);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\near-earth-missions\\", "Sputnik 3", "Spoutnik3.ssc", CheckBox26);
else
EndingSave("extras\\", "Sputnik 3", "Spoutnik3.ssc", CheckBox26);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\near-earth-missions\\", "Salyut7", "JACKsalyut7.ssc", CheckBox27);
else
EndingSave("extras\\", "", "JACKsalyut7.ssc", CheckBox27);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\venus-missions\\", "Mariner2", "JACKmariner2-xyz.ssc", CheckBox28);
else
EndingSave("extras\\", "Mariner2", "JACKmariner2-xyz.ssc", CheckBox28);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\mars-missions\\", "Mariner9", "mariner 9.ssc", CheckBox28);
else
EndingSave("extras\\", "Mariner9", "mariner 9.ssc", CheckBox28);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\venus-missions\\", "venus_express", "venus_express.ssc", CheckBox29);
else
EndingSave("extras\\", "venus_express", "venus_express.ssc", CheckBox29);
//EndingSave("extras\\", "Chandra X-Ray Observatory", "chandra.ssc", CheckBox30); нет информации об Ending'е
//EndingSave("extras\\", "Corot", "Corot.ssc", CheckBox31); нет информации об Ending'е
//if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
//EndingSave("data\\spacecrafts\\space-observatories\\", "herschel", "herschel.ssc", CheckBox32);
//else
//EndingSave("extras\\", "herschel", "herschel.ssc", CheckBox32);
//EndingSave("extras\\", "Voyager", "voyager.ssc", CheckBox33); нет информации об Ending'е
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\kuiper-belt-missions\\", "new_horizons_jpg_v2_small", "new_horizons.ssc", CheckBox34);
else
EndingSave("extras\\", "new_horizons_jpg_v2_small", "new_horizons.ssc", CheckBox34);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\near-earth-missions\\", "Spitzer", "JACKspitzer-xyz.ssc", CheckBox35);
else
EndingSave("extras\\", "Spitzer", "JACKspitzer-xyz.ssc", CheckBox35);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\space-observatories\\", "ISO", "JACKiso.ssc", CheckBox36);
else
EndingSave("extras\\", "ISO", "JACKiso.ssc", CheckBox36);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\near-earth-missions\\", "envisat", "envisat.ssc", CheckBox37);
else
EndingSave("extras\\", "envisat", "envisat.ssc", CheckBox37);
//EndingSave("extras\\", "ao7", "AO7.ssc", CheckBox38); нет информации об Ending'е
//if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
//EndingSave("data\\spacecrafts\\moon-missions\\", "apollo10", "apollo10.ssc", CheckBox39);
//else
//EndingSave("extras\\", "apollo10", "apollo10.ssc", CheckBox39);
//
//if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
//EndingSave("data\\spacecrafts\\moon-missions\\", "Apollo_11", "apollo.ssc", CheckBox39);
//else
//EndingSave("extras\\", "Apollo_11", "apollo.ssc", CheckBox39);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\main-belt-missions\\", "Dawn", "dawn.ssc", CheckBox40);
else
EndingSave("extras\\", "Dawn", "dawn.ssc", CheckBox40);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\cometary-missions\\", "DeepImpact", "DeepImpact.ssc", CheckBox41);
else
EndingSave("extras\\", "DeepImpact", "DeepImpact.ssc", CheckBox41);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\cometary-missions\\", "Giotto", "JACKgiottoflyby-xyz-ssc.ssc", CheckBox42);
else
EndingSave("extras\\", "Giotto", "JACKgiottoflyby-xyz-ssc.ssc", CheckBox42);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\sun-missions\\", "Helios", "JACKheliosSolarProbe-xyz.ssc", CheckBox43);
else
EndingSave("extras\\", "Helios", "JACKheliosSolarProbe-xyz.ssc", CheckBox43);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\cometary-missions\\", "ice", "ice-xyz.ssc", CheckBox44);
else
EndingSave("extras\\", "ice", "ice-xyz.ssc", CheckBox44);
//EndingSave("extras\\", "lunarlanders", "lunarlandingsites.ssc", CheckBox45); нет информации об Ending'е
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\moon-missions\\", "lro", "lro.ssc", CheckBox46);
else
EndingSave("extras\\", "lro", "lro.ssc", CheckBox46);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\venus-missions\\", "Magellan-full", "JACKmagellan_venus.ssc", CheckBox47);
else
EndingSave("extras\\", "Magellan-full", "JACKmagellan_venus.ssc", CheckBox47);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\mars-missions\\", "Mars Express", "mars express.ssc", CheckBox48);
else
EndingSave("extras\\", "Mars Express", "mars express.ssc", CheckBox48);
//EndingSave("extras\\", "EC_MGSf", "MGS.ssc", CheckBox49); нет информации об Ending'е
//EndingSave("extras\\", "Mars Reconaissance Orbiter", "MRO.ssc", CheckBox50); нет информации об Ending'е
//EndingSave("extras\\", "messenger", "messenger.ssc", CheckBox51); нет информации об Ending'е
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\mars-missions\\", "Nozomi", "JACKplanet-bfull-xyz.ssc", CheckBox52);
else
EndingSave("extras\\", "Nozomi", "JACKplanet-bfull-xyz.ssc", CheckBox52);
//EndingSave("extras\\", "phoenix_lander", "phoenix_lander.ssc", CheckBox53); нет информации об Ending'е
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\interplanetary-missions\\", "Pioneers", "JACKearly_pioneers-xyz.ssc", CheckBox54);
else
EndingSave("extras\\", "Pioneers", "JACKearly_pioneers-xyz.ssc", CheckBox54);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\space-observatories\\", "planck", "planck.ssc", CheckBox55);
else
EndingSave("extras\\", "planck", "planck.ssc", CheckBox55);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\space-observatories\\", "planck", "planck_fov.ssc", CheckBox55);
else
EndingSave("extras\\", "planck", "planck_fov.ssc", CheckBox55);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\cometary-missions\\", "rosetta_brianj", "rosetta.ssc", CheckBox56);
else
EndingSave("extras\\", "rosetta_brianj", "rosetta.ssc", CheckBox56);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\space-observatories\\", "Ulysses-full", "JACKulysses-xyz.ssc", CheckBox57);
else
EndingSave("extras\\", "Ulysses-full", "JACKulysses-xyz.ssc", CheckBox57);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\venus-missions\\", "Venera", "JACKveneraUSSR-xyz.ssc", CheckBox58);
else
EndingSave("extras\\", "Venera", "JACKveneraUSSR-xyz.ssc", CheckBox58);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\mars-missions\\", "Viking-full", "viking.ssc", CheckBox59);
else
EndingSave("extras\\", "Viking-full", "viking.ssc", CheckBox59);
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EndingSave("data\\spacecrafts\\interplanetary-missions\\", "Zond 3", "JACKzondUSSR-xyz.ssc", CheckBox60);
else
EndingSave("extras\\", "Zond 3", "JACKzondUSSR-xyz.ssc", CheckBox60);
if(AutoSave==false)
Application->MessageBox(MessegesLocale[6].c_str(), Application->Title.c_str(), MB_OK | MB_ICONINFORMATION);
}
//LUA-ИНСТРУМЕНТЫ
void __fastcall TMainForm::BitBtn3Click(TObject *Sender)
{
String Show;
if(LuaTab->Caption.Pos("Lua Universal Tools v1.0"))
Show="show_lua_universal_tools = ";
else
{
if(LuaTab->Caption.Pos("Lua Universal Tools v2.0"))
Show="show_lua_universal_tools_v2 = ";
else
Show="show_lua_edu_tools = ";
}
String Info="enable_info = ";
String Coordinates="enable_coordinates = ";
String Kepler="enable_Kepler_param = ";
String Compass="enable_compass = ";
String Cockpit="cockpitTexture = ";
String Zoom="enable_magnification = ";
String HR="enable_HR = ";
String Navi="enable_virtual_pad = ";
String LocalTime="show_local_time = ";
String CenterCompass="center_compass = ";
String AltAzim="alt_azimuthal_mode = ";
String CustomDuration="custom_goto_duration = ";
String DigitDur="";
TStringList *Lua=new TStringList;
Lua->LoadFromFile(ExtractFilePath(Application->ExeName)+LuaAdr+"config.lua");
//Показывать панель
if (CheckBox4->Checked)
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Show))
Lua->Strings[i]=Show+"true";
}
}
else
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Show))
Lua->Strings[i]=Show+"false";
}
}
//Инфо об обьекте
if (CheckBox5->Checked)
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Info))
Lua->Strings[i]="enable_info = true";
}
}
else
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Info))
Lua->Strings[i]="enable_info = false";
}
}
//Координаты
if (CheckBox6->Checked)
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Coordinates))
Lua->Strings[i]="enable_coordinates = true";
}
}
else
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Coordinates))
Lua->Strings[i]="enable_coordinates = false";
}
}
//Режим "Увеличение"
if (CheckBox11->Checked)
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Zoom))
Lua->Strings[i]="enable_magnification = true";
}
}
else
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Zoom))
Lua->Strings[i]="enable_magnification = false";
}
}
//Диаграмма Г-Р
if (CheckBox12->Checked)
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(HR))
Lua->Strings[i]="enable_HR = true";
}
}
else
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(HR))
Lua->Strings[i]="enable_HR = false";
}
}
//Кеплеровы параметры
if (CheckBox7->Checked)
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Kepler))
Lua->Strings[i]="enable_Kepler_param = true";
}
}
else
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Kepler))
Lua->Strings[i]="enable_Kepler_param = false";
}
}
//Джойстик
if (CheckBox13->Checked)
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Navi))
Lua->Strings[i]="enable_virtual_pad = true";
}
}
else
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Navi))
Lua->Strings[i]="enable_virtual_pad = false";
}
}
//Компас
if (CheckBox8->Checked)
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Compass))
Lua->Strings[i]="enable_compass = true";
}
}
else
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(Compass))
Lua->Strings[i]="enable_compass = false";
}
}
//Пояс астероидов
TStringList *Addon = new TStringList;
Addon->LoadFromFile(ExtractFilePath(Application->ExeName)+LuaAdr+"\\adds\\Asteroid_Belt\\"+"Asteroid_Belt.ssc");
if (CheckBox63->Checked==true)
Addon->Text=StringReplace(Addon->Text,"Visible false","Visible true",TReplaceFlags()<< rfReplaceAll);
else
Addon->Text=StringReplace(Addon->Text,"Visible true","Visible false",TReplaceFlags()<< rfReplaceAll);
Addon->SaveToFile(ExtractFilePath(Application->ExeName)+LuaAdr+"\\adds\\Asteroid_Belt\\"+"Asteroid_Belt.ssc");
delete Addon;
//Показывать местное время
if (CheckBox14->Checked)
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(LocalTime))
Lua->Strings[i]="show_local_time = true";
}
}
else
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(LocalTime))
Lua->Strings[i]="show_local_time = false";
}
}
//Компасс по центру
if (CheckBox15->Checked)
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(CenterCompass))
Lua->Strings[i]="center_compass = true";
}
}
else
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(CenterCompass))
Lua->Strings[i]="center_compass = false";
}
}
//Режим Альт-Азимут
if (CheckBox16->Checked)
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(AltAzim))
Lua->Strings[i]="alt_azimuthal_mode = true";
}
}
else
{
for (int i=0;i<Lua->Count;i++)
{
if (Lua->Strings[i].Pos(AltAzim))
Lua->Strings[i]="alt_azimuthal_mode = false";
}
}
//Формат даты
for (int i=0;i<Lua->Count;i++)
{
if(Lua->Strings[i].Pos("date_format = "))
{
if (ComboBox2->ItemIndex==0)
Lua->Strings[i]="date_format = \"country_default\"";
if (ComboBox2->ItemIndex==1)
Lua->Strings[i]="date_format = \"day/month/year\"";
if (ComboBox2->ItemIndex==2)
Lua->Strings[i]="date_format = \"month/day/year\"";
if (ComboBox2->ItemIndex==3)
Lua->Strings[i]="date_format = \"year/month/day\"";
}
}
//Длительность перелета к объекту
if (Edit4->Text!="" && StrToInt(Edit4->Text)>=0 && StrToInt(Edit4->Text)<=20)
{
for (int i=0;i<Lua->Count;i++)
{
if(Lua->Strings[i].Pos(CustomDuration))
Lua->Strings[i]="custom_goto_duration = "+Edit4->Text;
}
}
else
{
Application->MessageBox(MessegesLocale[2].c_str(), Application->Title.c_str(), MB_OK | MB_ICONERROR);
Edit4->Color=clRed;
Edit4->Font->Color=clWhite;
return;
}
//Цветовая схема
for (int i=0;i<Lua->Count;i++)
{
if(Lua->Strings[i].Pos(" cFrameFill = "))
{
if (RadioGroup1->ItemIndex==0)
{
Lua->Strings[i]=" cFrameFill = {0, 0 , 0, 0}";
Lua->Strings[i+1]=" cDisplFill = {0, 0 , 0, 0}";
Lua->Strings[i+2]="";
}
if (RadioGroup1->ItemIndex==1)
{
Lua->Strings[i]=" cFrameFill = {0, 0 , 0.5, 0.4}";
Lua->Strings[i+1]=" cDisplFill = {0, 0.5, 0.5, 0.4}";
Lua->Strings[i+2]=" cPanelFill = {0.05, 0.1 , 0.1, 0.9}";
}
if (RadioGroup1->ItemIndex==2)
{
Lua->Strings[i]=" cFrameFill = {0.2, 0.4 , 0.3, 0.4}";
Lua->Strings[i+1]=" cDisplFill = {0, 0.3, 0.7, 0.4}";
Lua->Strings[i+2]="";
}
if (RadioGroup1->ItemIndex==3)
{
Lua->Strings[i]=" cFrameFill = {0.4, 0.3, 0.6, 0.4}";
Lua->Strings[i+1]=" cDisplFill = {0, 0.5, 0.5, 0.4}";
Lua->Strings[i+2]="";
}
}
}
Lua->SaveToFile(ExtractFilePath(Application->ExeName)+LuaAdr+"config.lua");
delete Lua;
if(AutoSave==false)
Application->MessageBox(MessegesLocale[6].c_str(), Application->Title.c_str(), MB_OK | MB_ICONINFORMATION);
}
//О ПРОГРАММЕ
void __fastcall TMainForm::LabelLink2Click(TObject *Sender)
{
ShellExecute(Handle, NULL, L"http://www.celestiaproject.ru", NULL, NULL, SW_SHOWNORMAL);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::LabelLink2MouseLeave(TObject *Sender)
{
LabelLink2->Font->Style = TFontStyles() >> fsUnderline;
}
void __fastcall TMainForm::LabelLink2MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
LabelLink2->Font->Style = TFontStyles() << fsUnderline;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit2KeyPress(TObject *Sender, char &Key)
{
if (Key >='0' && Key <='9' || Key==VK_BACK)
return;
else
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit3KeyPress(TObject *Sender, char &Key)
{
if (Key >='0' && Key <='9' || Key==VK_BACK)
return;
else
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit2Click(TObject *Sender)
{
Edit2->Color=clWindow;
Edit2->Font->Color=clWindowText;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit3Click(TObject *Sender)
{
Edit3->Color=clWindow;
Edit3->Font->Color=clWindowText;
}
//---------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////
// ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЙ ПО УМОЛЧАНИЮ //
////////////////////////////////////////////////////////////////////////////////
void __fastcall TMainForm::BitBtn4Click(TObject *Sender)
{
if (Application->MessageBox(MessegesLocale[7].c_str(), Application->Title.c_str(), MB_YESNO | MB_ICONQUESTION)==IDYES)
{
//Для того, чтобы при выполнении кнопок "Сохранить" не выскакивало сообщение
AutoSave=true;
//Основные
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
{
EditDir1->Text="data";
EditDir2->Text="lua-applications";
EditDir3->Text="extras";
}
else
{
EditDir1->Text="extras-standard";
EditDir2->Text="extras";
EditDir3->Text="";
}
Edit2->Text="100";
Edit3->Text="100";
RadioButton1->Checked=true;
EditScreenDir->Text="";
ComboBox1->ItemIndex=0;
if(Label19->Caption.Pos("Celestia Extended Pack v3.0"))
EditStartScript->Text="start.celx";
else
EditStartScript->Text="start.cel";
EditDemoScript->Text="demo.cel";
Edit5->Text="120";
ScrollBar1->Position=120;
Edit1->Text="1.0";
ScrollBar2->Position=10;
BitBtn1->Click();
//Объекты и время
CheckBox1->State=0;
CheckBox2->State=1;
CheckBox10->State=1;
CheckBox17->State=0;
CheckBox18->State=1;
CheckBox19->State=0;
CheckBox20->State=0;
CheckBox61->State=0;
CheckBox62->State=0;
//Космические аппараты
CheckBox9->State=0;
CheckBox3->State=0;
CheckBox23->State=0;
CheckBox24->State=0;
CheckBox25->State=0;
CheckBox26->State=0;
CheckBox27->State=0;
CheckBox28->State=0;
CheckBox29->State=0;
CheckBox32->State=0;
CheckBox34->State=0;
CheckBox35->State=0;
CheckBox36->State=0;
CheckBox37->State=0;
CheckBox39->State=0;
CheckBox40->State=0;
CheckBox41->State=0;
CheckBox42->State=0;
CheckBox43->State=0;
CheckBox44->State=0;
CheckBox46->State=0;
CheckBox47->State=0;
CheckBox48->State=0;
CheckBox52->State=0;
CheckBox54->State=0;
CheckBox55->State=0;
CheckBox56->State=0;
CheckBox57->State=0;
CheckBox58->State=0;
CheckBox59->State=0;
CheckBox60->State=0;
BitBtn2->Click();
//LUA-инструменты
if(Label11->Visible==false) //если Lua-инструменты установлены
{
CheckBox4->State=1;
CheckBox5->State=0;
CheckBox6->State=0;
CheckBox11->State=0;
CheckBox12->State=0;
CheckBox7->State=0;
CheckBox13->State=0;
CheckBox8->State=0;
CheckBox63->State=0;
CheckBox14->State=1;
CheckBox15->State=0;
CheckBox16->State=0;
ComboBox2->ItemIndex=0;
Edit4->Text="15";
if(LuaTab->Caption.Pos("Lua Universal Tools"))
RadioGroup1->ItemIndex=1;
BitBtn3->Click();
}
AutoSave=false;
Application->MessageBox(MessegesLocale[8].c_str(), Application->Title.c_str(), MB_OK | MB_ICONINFORMATION);
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::RadioButton1Click(TObject *Sender)
{
RadioButton2->Checked=false;
RadioButton3->Checked=false;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::RadioButton2Click(TObject *Sender)
{
RadioButton1->Checked=false;
RadioButton3->Checked=false;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::RadioButton3Click(TObject *Sender)
{
RadioButton1->Checked=false;
RadioButton2->Checked=false;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit2Change(TObject *Sender)
{
Edit2->Color=clWindow;
Edit2->Font->Color=clWindowText;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit3Change(TObject *Sender)
{
Edit3->Color=clWindow;
Edit3->Font->Color=clWindowText;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ButtonDir1Click(TObject *Sender)
{
S[0] = S[3];
if (SelectDirectory(StringsLocale[7].c_str(), L"", S[0]))
EditDir1->Text = S[0] ;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ButtonDir2Click(TObject *Sender)
{
S[1] = S[3];
if (SelectDirectory(StringsLocale[7].c_str(), L"", S[1]))
EditDir2->Text = S[1] ;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ButtonDir3Click(TObject *Sender)
{
S[2] = S[3];
if (SelectDirectory(StringsLocale[7].c_str(), "", S[2]))
EditDir3->Text = S[2] ;
}
//---------------------------------------------------------------------------
//Обработка клика по картинкам курсоров
void __fastcall TMainForm::Image2Click(TObject *Sender)
{
RadioButton1->Checked=true;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Image3Click(TObject *Sender)
{
RadioButton2->Checked=true;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Image4Click(TObject *Sender)
{
RadioButton3->Checked=true;
}
//---------------------------------------------------------------------------
//Запрет редактирования полей папок
void __fastcall TMainForm::Label10MouseLeave(TObject *Sender)
{
Label10->Font->Style = TFontStyles() >> fsUnderline;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Label10MouseMove(TObject *Sender, TShiftState Shift, int X,
int Y)
{
Label10->Font->Style = TFontStyles() << fsUnderline;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Label10Click(TObject *Sender)
{
ShellExecute(Handle, NULL, LinkLocale[8].c_str(), NULL, NULL, SW_SHOWNORMAL);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Label14MouseMove(TObject *Sender, TShiftState Shift, int X,
int Y)
{
Label14->Font->Style = TFontStyles() << fsUnderline;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Label14MouseLeave(TObject *Sender)
{
Label14->Font->Style = TFontStyles() >> fsUnderline;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Label14Click(TObject *Sender)
{
ShellExecute(Handle, NULL, LinkLocale[7].c_str(), NULL, NULL, SW_SHOWNORMAL);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Label16MouseMove(TObject *Sender, TShiftState Shift, int X,
int Y)
{
Label16->Font->Style = TFontStyles() << fsUnderline;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Label16MouseLeave(TObject *Sender)
{
Label16->Font->Style = TFontStyles() >> fsUnderline;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Label16Click(TObject *Sender)
{
ShellExecute(Handle, NULL, LinkLocale[2].c_str(), NULL, NULL, SW_SHOWNORMAL);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Button1Click(TObject *Sender)
{
if (SelectDirectory(StringsLocale[8].c_str(), "", S[4]))
EditScreenDir->Text = S[4] ;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit5Change(TObject *Sender)
{
Edit5->Color=clWindow;
Edit5->Font->Color=clWindowText;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit5Click(TObject *Sender)
{
Edit5->Color=clWindow;
Edit5->Font->Color=clWindowText;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit5KeyPress(TObject *Sender, char &Key)
{
if (Key >='0' && Key <='9' || Key==VK_BACK)
return;
else
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ScrollBar1Change(TObject *Sender)
{
Edit5->Text=ScrollBar1->Position;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ScrollBar2Change(TObject *Sender)
{
float pos, tmpp;
String st;
FormatSettings.DecimalSeparator='.';
pos=ScrollBar2->Position;
tmpp=pos/10;
st=FloatToStrF(tmpp,ffFixed,2,1);
Edit1->Text=st;
FormatSettings.DecimalSeparator=',';
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit1Change(TObject *Sender)
{
Edit1->Color=clWindow;
Edit1->Font->Color=clWindowText;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit1Click(TObject *Sender)
{
Edit1->Color=clWindow;
Edit1->Font->Color=clWindowText;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit4Change(TObject *Sender)
{
Edit4->Color=clWindow;
Edit4->Font->Color=clWindowText;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit4Click(TObject *Sender)
{
Edit4->Color=clWindow;
Edit4->Font->Color=clWindowText;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Edit4KeyPress(TObject *Sender, char &Key)
{
if (Key >='0' && Key <='9' || Key==VK_BACK)
return;
else
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CheckBox16Click(TObject *Sender)
{
if (CheckBox16->Checked)
CheckBox16->Caption=StringsLocale[9];
else
CheckBox16->Caption=StringsLocale[10];
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Button2Click(TObject *Sender)
{
if(PlayerDialog->Execute())
{
PlayerEdit->Text=PlayerDialog->FileName;
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CheckBox22Click(TObject *Sender)
{
if (CheckBox22->Checked==true)
CheckAll(true);
else
CheckAll(false);
}
//---------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////
// НОВЫЕ ФУНКЦИИ //
////////////////////////////////////////////////////////////////////////////////
//Проверка вкладки Объекты и время
void TMainForm::ObjectProv(String PodFolder, String Folder, String SSC, TCheckBox *Check)
{
if (FileExists(ExtractFilePath(Application->ExeName)+PodFolder+Folder+"\\"+SSC) || FileExists(ExtractFilePath(Application->ExeName)+"temp\\"+Folder+"\\"+SSC))
{
Check->Enabled=true;
if (FileExists(ExtractFilePath(Application->ExeName)+PodFolder+Folder+"\\"+SSC))
Check->Checked=true;
else
Check->Checked=false;
}
else
{
Check->Checked=false;
Check->Enabled=false;
//Добавляем ссылки на скачивание
if(Check==CheckBox10) //Достопримечательности Марса
Label16->Visible=true;
if(Check==CheckBox17) //Пояс Койпера
Label13->Visible=true;
if(Check==CheckBox18) //Динамическая модель атмосферы Юпитера
Label33->Visible=true;
if(Check==CheckBox61) //Облако Оорта
Label8->Visible=true;
if(Check==CheckBox20) //Космический Лифт
Label15->Visible=true;
}
}
//Сохранение настроек вкладки Объекты и время
void TMainForm::ObjectSave(String PodFolder, String Folder, TCheckBox *Check)
{
String path1,path2;
if (Check->Checked==true)
{
path1=ExtractFilePath(Application->ExeName)+"temp\\"+Folder;
path2=ExtractFilePath(Application->ExeName)+PodFolder+Folder;
MoveFileEx(path1.w_str(), path2.w_str(), MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING);
}
else
{
path1=ExtractFilePath(Application->ExeName)+PodFolder+Folder;
path2=ExtractFilePath(Application->ExeName)+"temp\\"+Folder;
MoveFileEx(path1.w_str(), path2.w_str(), MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING);
}
path1 = NULL;
path2 = NULL;
}
//Проверка космических аппаратов
void TMainForm::EndingProv(String Dir, String Folder, String SSC, TCheckBox *Check)
{
if(FileExists(ExtractFilePath(Application->ExeName)+Dir+Folder+"\\"+SSC))
{
TStringList *Ending=new TStringList;
Ending->LoadFromFile(ExtractFilePath(Application->ExeName)+Dir+Folder+"\\"+SSC);
if (Ending->Text.Pos("#Ending"))
Check->Checked=true;
else
Check->Checked=false;
delete Ending;
}
else
Check->Enabled=false;
}
//Сохранение параметров космических аппаратов
void TMainForm::EndingSave(String Dir, String Folder, String SSC, TCheckBox *Check)
{
if(Check->Enabled==true)
{
TStringList *Ending=new TStringList;
Ending->LoadFromFile(ExtractFilePath(Application->ExeName)+Dir+Folder+"\\"+SSC);
if (Check->Checked==true)
{
Ending->Text=StringReplace(Ending->Text,"#Ending","Ending",TReplaceFlags()<< rfReplaceAll);
Ending->Text=StringReplace(Ending->Text,"Ending","#Ending",TReplaceFlags()<< rfReplaceAll);
}
else
Ending->Text=StringReplace(Ending->Text,"#Ending","Ending",TReplaceFlags()<< rfReplaceAll);
Ending->SaveToFile(ExtractFilePath(Application->ExeName)+Dir+Folder+"\\"+SSC);
delete Ending;
}
}
//Выбрать все чекбоксы космических кораблей
void TMainForm::CheckAll(bool checked)
{
CheckBox9->Checked=checked;
CheckBox3->Checked=checked;
CheckBox23->Checked=checked;
CheckBox24->Checked=checked;
CheckBox25->Checked=checked;
CheckBox26->Checked=checked;
CheckBox27->Checked=checked;
CheckBox28->Checked=checked;
CheckBox29->Checked=checked;
//CheckBox30->Checked=checked; нет информации об Ending'е
//CheckBox31->Checked=checked; нет информации об Ending'е
CheckBox32->Checked=checked;
//CheckBox33->Checked=checked; нет информации об Ending'е
CheckBox34->Checked=checked;
CheckBox35->Checked=checked;
CheckBox36->Checked=checked;
CheckBox37->Checked=checked;
//CheckBox38->Checked=checked;м
CheckBox39->Checked=checked;
CheckBox40->Checked=checked;
CheckBox41->Checked=checked;
CheckBox42->Checked=checked;
CheckBox43->Checked=checked;
CheckBox44->Checked=checked;
//CheckBox45->Checked=checked; нет информации об Ending'е
CheckBox46->Checked=checked;
CheckBox47->Checked=checked;
CheckBox48->Checked=checked;
//CheckBox49->Checked=checked; нет информации об Ending'е
//CheckBox50->Checked=checked; нет информации об Ending'е
//CheckBox51->Checked=checked; нет информации об Ending'е
CheckBox52->Checked=checked;
//CheckBox53->Checked=checked; нет информации об Ending'е
CheckBox54->Checked=checked;
CheckBox55->Checked=checked;
CheckBox56->Checked=checked;
CheckBox57->Checked=checked;
CheckBox58->Checked=checked;
CheckBox59->Checked=checked;
CheckBox60->Checked=checked;
}
void __fastcall TMainForm::Button3Click(TObject *Sender)
{
if(ImportDialog->Execute())
{
//Для того, чтобы при выполнении кнопок "Сохранить" не выскакивало сообщение
AutoSave=true;
//Основные
Settings = new TIniFile(ImportDialog->FileName);
EditDir1->Text=Settings->ReadString("Main","ExtrasDir1","");
EditDir2->Text=Settings->ReadString("Main","ExtrasDir2","");
EditDir3->Text=Settings->ReadString("Main","ExtrasDir3","");
Edit2->Text=Settings->ReadString("Main","OrbitPathSamplePoints","");
Edit3->Text=Settings->ReadString("Main","RingSystemSections","");
String Temp=Settings->ReadString("Main","Cursor","");
if(Temp=="crosshair")
RadioButton1->Checked=true;
if(Temp=="inverting_crosshair")
RadioButton2->Checked=true;
if(Temp=="arrow")
RadioButton3->Checked=true;
EditScreenDir->Text=Settings->ReadString("Main","ScriptScreenshotDirectory","");
ComboBox1->ItemIndex=Settings->ReadInteger("Main","ScriptSystemAccessPolicy",0);
EditStartScript->Text=Settings->ReadString("Main","InitScript","");
EditDemoScript->Text=Settings->ReadString("Main","DemoScript","");
Edit5->Text=Settings->ReadString("Main","RotateAcceleration","");
Edit1->Text=Settings->ReadString("Main","MouseRotationSensitivity","");
BitBtn1->Click();
//Объекты и время
CheckBox1->State=Settings->ReadBool("ObjectsTime","SunFlares",0);
CheckBox2->State=Settings->ReadBool("ObjectsTime","JupiterRings",0);
CheckBox10->State=Settings->ReadBool("ObjectsTime","MarsSurfaceFeatures",0);
CheckBox17->State=Settings->ReadBool("ObjectsTime","KuiperBelt",0);
CheckBox18->State=Settings->ReadBool("ObjectsTime","JupiterClouds",0);
CheckBox19->State=Settings->ReadBool("ObjectsTime","IoVolcanoes",0);
CheckBox20->State=Settings->ReadBool("ObjectsTime","SpaceLift",0);
CheckBox61->State=Settings->ReadBool("ObjectsTime","OortCloud",0);
CheckBox62->State=Settings->ReadBool("ObjectsTime","HighlightSaturnRings",0);
//Космические аппараты
CheckBox9->State=Settings->ReadBool("Spacecrafts","Mir",0);
CheckBox3->State=Settings->ReadBool("Spacecrafts","Galileo",0);
CheckBox23->State=Settings->ReadBool("Spacecrafts","CassiniHuygens",0);
CheckBox24->State=Settings->ReadBool("Spacecrafts","Sputnik1",0);
CheckBox25->State=Settings->ReadBool("Spacecrafts","Sputnik2",0);
CheckBox26->State=Settings->ReadBool("Spacecrafts","Sputnik3",0);
Подобные документы
Описание аппаратных и программных средств, операционной системы. Описание входной и выходной информации. Информационно-логическая модель данных. Схема взаимодействия входной и выходной информации. Расчет трудоемкости и стоимости обработки информации.
курсовая работа [2,4 M], добавлен 05.07.2015Формирование требований к системе. Описание входной и выходной информации. Концептуальное и логическое проектирование структуры и пользовательского интерфейса. Выбор средств реализации подсистемы. Реализация функциональности программного средства.
курсовая работа [1,3 M], добавлен 28.08.2012Анализ входной и выходной информации, особенности ее документационного обеспечения. Описание таблиц и их основное содержание. Методика и этапы разработки интерфейса программы и ее листинг, а также формирование инструкций пользователя и программиста.
курсовая работа [682,7 K], добавлен 30.07.2015Создание баз данных с использованием Database Desktop. Проведение автоматизации рабочего места кассира. Описание входной и выходной информации. Выбор среды реализации, состава и параметров технических средств. Проектирование интерфейса программы.
курсовая работа [1021,5 K], добавлен 22.01.2015Организационно-экономическая сущность задачи автоматизации библиотечной информационной системы. Режимы работы и информационная модель решения задачи, описание входной и выходной информации. Обоснование выбора языка программирования, алгоритм решения.
дипломная работа [448,5 K], добавлен 08.11.2010Анализ используемой системы обработки информации на предприятии, ее структура и анализ эффективности функционирования. Содержание и принципы организации входной и выходной информации. Аппаратные и программные средства обеспечения, описание интерфейса.
дипломная работа [1,1 M], добавлен 24.08.2016Создание Win-приложения для библиотеки, которое позволяло бы осуществлять операции выдачи и сдачи книг в соответствии со сроками. Выбор программных и технических средств реализации проекта. Разработка интерфейса системы, описание реализованных классов.
курсовая работа [3,1 M], добавлен 14.08.2015Создание официального сайта КРОО ПСЗЗ "Красштаб Здоровья". Основные требования к дизайну, интерфейсу и функциональности сайта. Состав технических средств, защита информации. Описание входной и выходной информации. Расчет себестоимости разработки.
дипломная работа [1,4 M], добавлен 11.05.2017Организационная структура предприятия. Функциональные задачи, подлежащие автоматизации. Выбор технических, программных средств и метода проектирования. Описание алгоритма решения задачи. Разработка технологического обеспечения. Инструкция пользователя.
дипломная работа [5,3 M], добавлен 31.03.2009Проектирование процесса автоматизации оформления продаж автомобилей в автосалоне. Описание бизнес-процессов учета автомобилей. Исследование информационных потоков. Анализ входной и выходной информации. Алгоритмы решения задачи и их машинная реализация.
курсовая работа [2,9 M], добавлен 11.03.2014