Ich hab meinen alten Beitrag leider nicht mehr gefunden.
Erst der Code:
Start Game Button:
void __fastcall TLobby::Panel1Click(TObject *Sender)
{
if (Panel1->Caption == "Bereit")
{
OK->Checked = !OK->Checked;
Communicator LanCom;
LanCom.SendLine("ReadyBox",BoolToStr(OK->Checked));
}
if (Panel1->Caption == "Spiel Starten")
{
if (OK->Checked)
{
Start_Game->Enabled = true;
Communicator LanCom;
LanCom.SendLine("ForceStartGame","ShowAll");
}
}
}
//---------------------------------------------------------------------------
Execute Event des Servers:
void __fastcall TLobby::EmpfängerExecute(TIdContext *AContext)
{
String FirstParameter = AContext->Connection->IOHandler->ReadLn();
String SecondParameter = AContext->Connection->IOHandler->ReadLn();
// [...]
else if (FirstParameter == "ForceStartGame")
{
Start_Game->Enabled = true;
}
}
Timer (müsste kein Timer sein !)
void __fastcall TLobby::Start_GameTimer(TObject *Sender)
{
Start_Game->Enabled = false;
String Fac;
Boolean StdFaction = false;
if (FraktionSpieler1->Enabled)
Fac = FraktionSpieler1->Text;
else
Fac = FraktionSpieler2->Text;
if (Fac == "Invasoren" || Fac == "Letzer Wiederstand")
StdFaction = true;
if (FraktionSpieler1->Enabled)
ModLoad->InitialiseGame(Gamespeed->ItemIndex,ResGenSpeed->ItemIndex,StartRes->ItemIndex, FraktionSpieler1->Text, StdFaction);
if (FraktionSpieler2->Enabled)
ModLoad->InitialiseGame(Gamespeed->ItemIndex,ResGenSpeed->ItemIndex,StartRes->ItemIndex, FraktionSpieler2->Text, StdFaction);
}
//---------------------------------------------------------------------------
In Modload lese ich aus LanLobby und ändere in Kommandozentrale.
Das Programm terminiert sich ohne eine Warnung.
// DELETED
EDIT: Sowas geiles ist mir noch nie passiert.
Warum beendet sich ein Programm -> weil man es schließt.
Was passiert, wenn man die Lobby versteckt... DAS PROGRAMM BEENDET SICH.
Das muss gringend aus dem OnHide Event raus