public frmLogotron() { InitializeComponent(); if (bDebug) { this.StartPosition = FormStartPosition.CenterScreen; } m_msgDelegue = new clsMsgDelegue(); EventHandler <clsMsgEventArgs> obj = this.MsgBox; m_msgDelegue.EvAfficherMessage += obj; // S'il y a besoin de rafraichir (pas besoin pour un MsgBox // mais util pour une barre de msg par exemple) //EventHandler<clsDoEventsEventArgs> obj2 = this.DoEvents; //m_msgDelegue.EvDoEvents += obj2; }
public static bool bTirage(bool bComplet, string sNbPrefixesSuccessifs, List <string> lstNiv, List <string> lstFreq, ref string sMot, ref string sExplication, ref string sDetail, ref List <string> lstEtymFin, bool bGrecoLatin, bool bNeoRigolo, clsMsgDelegue msgDelegue) { List <string> lstEtym = new List <string>(); int iNbTiragesPrefixes = 0; if (sNbPrefixesSuccessifs == clsConst.sHasard) { iNbTiragesPrefixes = clsUtil.iRandomiser(1, 5); float rProba = 1f; switch (iNbTiragesPrefixes) { case 1: rProba = 1f; // Toujours accepté break; case 2: rProba = 1 / 2f; // Une fois sur 2 //rProba = 0.1f; // Une fois sur 10 break; case 3: rProba = 1 / 4f; // Une fois sur 4 //rProba = 1/3f; // Une fois sur 3 //rProba = 0.05f; break; case 4: rProba = 1 / 8f; // Une fois sur 8 //rProba = 1/4f; // Une fois sur 4 //rProba = 0.03f; break; case 5: rProba = 1 / 16f; // Une fois sur 16 //rProba = 1/5f; // Une fois sur 5 //rProba = 0.01f; break; } if (rProba < 1f) { float rTirage = clsUtil.rRandomiser(); if (rTirage > rProba) { iNbTiragesPrefixes = 1; } } } else { iNbTiragesPrefixes = int.Parse(sNbPrefixesSuccessifs); } string sPrefixesMaj = ""; string sSensPrefixesMaj = ""; string sDetailPrefixesMaj = ""; clsInitTirage itPref = new clsInitTirage(); clsGestBase.m_prefixes.MsgDelegue = msgDelegue; clsGestBase.m_suffixes.MsgDelegue = msgDelegue; for (int i = 0; i <= iNbTiragesPrefixes - 1; i++) { //if (LogotronLib.clsConst.bDebug) // Console.WriteLine("Tirage préfixe n°" + (i + 1)); int iNumPrefixe = clsGestBase.m_prefixes.iTirageSegment(bComplet, lstNiv, lstFreq, itPref, bGrecoLatin, bNeoRigolo); clsSegmentBase prefixe = null; if (!clsGestBase.m_prefixes.bLireSegment(iNumPrefixe, ref prefixe)) { return(false); } string sNiveauP = prefixe.sNiveau; string sPrefixe = prefixe.sSegment; string sPrefixeMaj = sPrefixe.ToUpper(); string sSensPrefixeMaj2 = prefixe.sSens.ToUpper(); sSensPrefixeMaj2 = clsBase.sCompleterPrefixe(sSensPrefixeMaj2); sPrefixesMaj += sPrefixeMaj; sSensPrefixesMaj = sSensPrefixesMaj + " " + sSensPrefixeMaj2; sDetailPrefixesMaj = sDetailPrefixesMaj + sPrefixeMaj + "(" + sNiveauP + ") - "; string sEtymPrefixe = prefixe.sEtym; if (sEtymPrefixe.Length > 0) { lstEtym.Add(sPrefixe + "- : " + sEtymPrefixe); } } //if (LogotronLib.clsConst.bDebug) Console.WriteLine("Tirage suffixe"); int iNumSuffixe = clsGestBase.m_suffixes.iTirageSegment(bComplet, lstNiv, lstFreq, new clsInitTirage(), bGrecoLatin, bNeoRigolo); clsSegmentBase suffixe = null; if (!clsGestBase.m_suffixes.bLireSegment(iNumSuffixe, ref suffixe)) { return(false); } string sNiveauS = suffixe.sNiveau; string sSuffixe = suffixe.sSegment; string sSuffixeMaj = sSuffixe.ToUpper(); string sDetailSuffixeMaj = sSuffixeMaj + "(" + sNiveauS + ")"; string sSensSuffixeMaj = suffixe.sSens.ToUpper(); sMot = sPrefixesMaj + sSuffixeMaj; sExplication = sSensSuffixeMaj + sSensPrefixesMaj; sDetail = sDetailPrefixesMaj + sDetailSuffixeMaj; string sEtymSuffixe = suffixe.sEtym; if (sEtymSuffixe.Length > 0) { lstEtym.Add("-" + sSuffixe + " : " + sEtymSuffixe); } lstEtymFin = lstEtym; //msgDelegue.AfficherMsg("Test MsgBox"); return(true); }