Создание менеджера конфигурации 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.