2em feuille

aymen81 Messages postés 6 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 19 janvier 2006 - 9 janv. 2006 à 12:18
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 - 9 janv. 2006 à 15:33
bonjour à tous,
j'ai realisé une interface pour afficher la temperature dans un edit grace à un systeme d'acquisition lié au port serie ,
je voudrais afficher la variation de cette temperature sur un TCHART dés que j'appui sur un boutton (çad sur une 2 em feuille) ,jai utilisé une 2 emme form mais le probleme c que je dois lire le port serie 2 em fois (alors qu'il est entrain d'tre lu) et declarer de nouveau les variables utilisés dans la fenetre principale .
est ce qu'il ya un autre moyen pour afficher la courbe de variation sans passer par tout ça?
merci

3 réponses

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
9 janv. 2006 à 13:26
salut,

mets tes variables en variables globales dans la partie interface de la form1 tu pourras lire ces variables la form2.

si tu utilises TCOMPORT pour la laison serie tu peux le lire
directement à partir de la form2 : form1.comport1..ReadStr(str,L); (par
exemple)

une autre solution consiste à regrouper toutes les fonctions dans une
unité (j'utilise une form qui qui regroupe toute les fonctions de setup
et qui est vu par toute les autres unités)



@+

jlen
0
Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 2
9 janv. 2006 à 13:29
Bonjour,

Il te suffit de générer un évenement, sur ta deuxième feuille, à chaque nouvelle reception de trame sur ta liaison RS232.
Cela permettra à ta 2ème Fiche de savoir qu'elle peut récupérer les valeurs souhaité de ta 1ère fiche.

exemple :

Fiche n° 1 :

type
TOnEvent = procedure (Sender: TObject) of object;

private
FOnEvent : TOnEvent;
public
property OnEvent : TOnEvent Read FOnEvent write FOnEvent;
end;

tu déclenches l'évènement quand tu le souhaites

if Assigned(FOnEvent) then
FOnEvent(Self);

Fiche n° 2 :

private
procedure F2OnEvent(Sender : TObject);

A l'initialisation de la fenêtre (FormShow) tu affectes cette evenement à une procedure du même type.

Fiche1.OnEvent := F2OnEvent;

lorsque l'évènement sera activé sur la fiche 1. La procedure F2OnEvent sera appelé.

procedure TFiche2.F2OnEvent(Sender : TObject);
begin
// Tu fais ton traitement soit tu récupères les valeur en paramètre de ta procedure --> F2OnEvent(const Temperature : real);
// Soit tu fait appel directement au variable déclararer en public ou a tes propriété de ta fiche1.
end;

Bonne Prog,

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
9 janv. 2006 à 15:33
une autre solution un peu plus 'sauvage' mais plus simple pour faire
régir la 2eme form à un évènement et qui en plus peut transmettre un
parametre string

sur la seconde form tu place un TEdit (quite à mattre sa propriété visible à false)

dans la premiere tu envoies un string dans l' edit

dans l'évèmenement OnChange de l'edit tu mets le traitement de l'évènement exemple:

procedure TForm1.Button1Click(Sender: TObject);

begin

form2.edit1.Text:= 'essai';//envoi du parametre

end ;

procedure TForm2.Edit1Change(Sender: TObject);

begin

if edit1.text ='essai' then //reception et test du paramètre

label1.Caption:='MESSAGE RECU';

edit1.Text:='';// réinitilaisation de l'edit

end;



@+

jlen
0
Rejoignez-nous