marin1617
Messages postés42Date d'inscriptionsamedi 3 août 2013StatutMembreDernière intervention17 décembre 2019
-
15 août 2014 à 15:22
bravemouse
Messages postés74Date d'inscriptionjeudi 8 mars 2012StatutMembreDernière intervention 2 avril 2019
-
3 juin 2016 à 09:38
Bonjour, je cherche à lancer des messages suivant une position GPS lue sur le COM,
Avec ce programme, mes messages sont lancé un peu n'importe comment
Je pense que le "playsound" dans une boucle While pose pb, j'ai tenté de sortir les playsound
avec appel procedure, et avec un timer mais toujours le même pb.
if (POS('$GPGLL', Tramecp)) <> 0 then RichEdit_GLL.Lines.Add(Tramecp);
{ *** Passage de la jetée *** }
if (pos('5107.24',Tramecp))<> 0 then begin Timer1.Enabled := true; Arrivee := 0; RichEdit_GLL.Tag := 1; Pass_Frontiere.Visible := false; jete_d.Visible := true; end;
{ *** Départ de D ***}
if (pos('5107.22',Tramecp)) and RichEdit_GLL.Tag = 1 then begin Interdiction.Visible := true; Val_Message := 3; //MSG_SECURITE; //playSound(PChar(Msg_SECU.FileName),Handle,SND_SYNC); end;
{ *** Arrivée à D ***}
if (pos('5107.23',Tramecp))and Arrivee = 1 then begin Timer1.Enabled := true; Val_Message := 5; //MSG_Arr_D; //playSound(PChar(Msg_Arr_D.FileName),Handle,SND_ASYNC); end;
{ *** *** } if (pos('5102.60',Tramecp)) and RichEdit_GLL.Tag = 1 then begin Timer1.Enabled := true; Interdiction.Visible := false; Autorisation.Visible := true; // Autorisation de vente de Tabacs
if (pos('5058.32',Tramecp))<> 0 then begin Timer1.Enabled := true; Arrivee := 0; RichEdit_GLL.Tag := 1; Pass_Frontiere.Visible := false; jete_c.Visible := true; Autorisation.Visible := true; end; { *** ***}
if (pos('5058.34',Tramecp)) and RichEdit_GLL.Tag = 1 then begin Val_Message := 3; //MSG_SECURITE; // playSound(PChar(Msg_SECU.FileName),Handle,SND_SYNC); end;
{ *** ***} if (pos('5101.60',Tramecp))and RichEdit_GLL.Tag = 1 then begin Timer1.Enabled := true; Autorisation.Visible := false; Interdiction.Visible := true; Val_Message := 1; // Vente_C_D; // playSound(PChar(Vente_C_D.FileName),Handle,SND_ASYNC);
end;
{ *** ***}
if (pos('5058.33',Tramecp)) and arrivee = 1 then begin Timer1.Enabled := true; Val_Message := 4; //MSG_Arr_C; // playSound(PChar(Msg_Arr_C.FileName),Handle,SND_ASYNC); end;
{ *** Passage de la frontière ***}
if (pos('5102.40',Tramecp))<> 0 then begin Arrivee := 1; jete_cal.Visible := false; jete_dov.Visible := false; Pass_Frontiere.Visible := true; RichEdit_GLL.Tag := 0; RichEdit_GLL.Clear (); end; end; end; procedure TForm1.RadioGroup1Click(Sender: TObject); begin Case RadioGroup1.ItemIndex of 0: Comport1.Connected := true; 1: Comport1.Connected := false; end; end;
bravemouse
Messages postés74Date d'inscriptionjeudi 8 mars 2012StatutMembreDernière intervention 2 avril 2019 3 juin 2016 à 09:38
bonjour
votre problème est très compliqué lorsque vous travaille avec "Serial Port" et vous Utilise le Composant "Comport" qui à des plusieurs versions peut posera des Problèmes .....
d'après votre Code source je voir un "timer" qui démarre dans le thread de l’événement "ComPort1RxChar" et ça, na jamais Autoriser .