begin process at 2010 02 10 03:43:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

faire sous procedure dans une procedure ???


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

faire sous procedure dans une procedure ???

dimanche 26 février 2006 à 02:40:18 | faire sous procedure dans une procedure ???

fredylapoc47

.exemple pour améliorer mon prog.   Com control  (delphi4)
.....
procedure  flash(line:  ...???
.....

if   var = 1  then 
          flash(TXD)  //   autres line ex. DTR,RTS .....
....
....
procedure  flash(line  ....???
begin
 line(1) ;      //   line  TXD  on
delay(100);
line(0);       // line TXD  off
end;

FredyLaPoc47
dimanche 26 février 2006 à 07:44:29 | Re : faire sous procedure dans une procedure ???

jlen100

Membre Club
salut,
il est possible sous delphi de faire des procedures imbriquées sous condition que la procedure appelée soit déclarée avant son appel et placé en dehors du corps de la procedure appelante

procedure principale;
var:.....//déclaration des variables
    procedure appelée(.....) //à mettre au début
    begin
        //corps de procedure appelée

    end;
begin   //debut de procedure principale
    // corps de procédure principale

    appelée(.....)

end;

@+
jlen

dimanche 26 février 2006 à 11:19:49 | Re : faire sous procedure dans une procedure ???

Emandhal

Juste une petite précision sur l'utilisation d'une procedure dans une autre... Dans le cas où celle qui est dans l'autre est utilisée récursivement, il arrive beaucoup plus vite un EStackOverflow (bon il faut vraiment en abuser quand même) qu'en la mettant en dehors.
Voilà, c'était juste une précision comme ca en passant ^^

Tout problème a sa solution... Mais en général, c'est jamais la bonne...
dimanche 26 février 2006 à 19:49:31 | Re : faire sous procedure dans une procedure ???

fredylapoc47

{$R *.DFM}     // ------------  je  reformuler ma question --------------
// inport externe in rscom.dll
procedure TXD(d:WORD); stdcall; external 'RSCOM.DLL';

procedure flashTXD;
begin
  TXD(1);    // out pin 3
  DELAY(vtd);
  TXD(0);    // reset pin 3
  DELAY(vtd);
end;
procedure flashRTS;
begin
  RTS(1);    // out pin 7
  DELAY(vtd);
  RTS(0);    // reset pin 7
  DELAY(vtd);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin   // timer.interval set 1  by user
   if vTXD = 1 then flashTXD      
   if vRTS = 1 then flashRTS     //   pour s'implifier je veux remplacer par

  ex ..      if  vRTS = 1 then  flash(RTS)  //  choix RST ou TXD
                                              // et avoir une seule procedure flash ???
FredyLaPoc47
lundi 27 février 2006 à 09:18:09 | Re : faire sous procedure dans une procedure ???

jlen100

Membre Club
je vois ton problème mais je ne pense pas que tu puisses passer une procedure externe en parametre par contre tu peux faire comme cela (ça ne gagne pas grand chose )
procedure flash(TR:Boolean);
begin
    if TR then
    begin
      TXD(1);    // out pin 3
      sleep(vtd);
      TXD(0);    // reset pin 3
      sleep(vtd);
    end else
    begin
      RTS(1);    // out pin 7
      sleep(vtd);
      RTS(0);    // reset pin 7
      sleep(vtd);
    end;
end;


@+
jlen

lundi 27 février 2006 à 23:03:55 | Re : faire sous procedure dans une procedure ???

f0xi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
type
   TFlashMode = (fmTXD,fmRTS);

function Flash(const DC : byte; const Mode : TFlashMode) : boolean;
begin
  if DC = 1 then begin
    case Mode of
        0 : begin TXD(1); Delay(vtd); TXD(0); Delay(vtd); end;
        1 : begin RTS(1); Delay(vtd); RTS(0); Delay(vtd); end;
    end;
    result := true;
  end else
    result := false;
end;

...

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if Flash(vTXD,fmTXD) then label1.caption := '>> TXD';
  if Flash(vRTS,fmRTS) then label1.caption := '>> RTS';
end;







La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.

lundi 27 février 2006 à 23:06:24 | Re : faire sous procedure dans une procedure ???

f0xi

Membre Club Administrateur CodeS-SourceS
avec ajout d'autre type :




type
   TFlashMode = (fmTXD,fmRTS,fmDTR);

function Flash(const DC : byte; const Mode : TFlashMode) : boolean;
begin
  if DC = 1 then begin
    case Mode of
        0 : begin TXD(1); Delay(vtd); TXD(0); Delay(vtd); end;
        1 : begin RTS(1); Delay(vtd); RTS(0); Delay(vtd); end;
        2 : begin DTR(1); Delay(vtd); DTR(0); Delay(vtd); end;
    end;
    result := true;
  end else
    result := false;
end;

...

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if Flash(vTXD,fmTXD) then label1.caption := '>> TXD';
  if Flash(vRTS,fmRTS) then label1.caption := '>> RTS';
  if Flash(vDTR,fmDTR) then label1.caption := '>> DTR';
end;







La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.

mardi 28 février 2006 à 04:23:43 | Re : faire sous procedure dans une procedure ???

fredylapoc47

//  bravo    voici la version finale
type
   TFlashLine = (LTXD,LDTR,LRTS); // lines

procedure Flash(const line : TFlashLine); 
begin
  case line of
    LTXD : begin TXD(1); Delay(vtd); TXD(0); Delay(vtd); end;
    LDTR : begin DTR(1); Delay(vtd); DTR(0); Delay(vtd); end;
    LRTS : begin RTS(1); Delay(vtd); RTS(0); Delay(vtd); end;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject); 
begin   // timer.interval set 1  by user
  if vBT + vTXD = 2 then Flash(LTXD) // flash line TXD
 ....  ect..

encore merci



Cette discussion est classée dans : flash, procedure, line, txd


Répondre à ce message

Sujets en rapport avec ce message

Ou placer les procedures [ par magicvinni ] J'ai fait une procedure init ( qui initialise un certain nombre de variables comme son nom l'indique.) Cette procedure doit etre lancée dès le début d Savoir si une procedure est en cours d'exécution [ par Jos ] Bonjour, J'aimerais donc savoir si une procedure est en cours d'éxécution, de façon à déterminer si celle-ci a lancé l'exécution d'une autre.Merci. appel de procedure entre fenetre [ par bdv ] quelqu'un connait il la manière d'appeler une procedure appartenant à une fenetre X depuis une fenetre Y. cette procedure est dans la unit de X. en ut Messages windows [ par Gysmo ] Salut, Je n'arrive pas a faire d'operation logic sur les messages de windows de cette maniere:procedure TForm1.FormCreate(Sender: TObject);begin App pb avec les composants reseaux [ par dampeel ] Je réalise un petit programme en ce moment et j'ai une question a poser à ce propos...J'utilise des composants serversocket et clientsocket pour réali Evenement = toujours procedure [ par MasterJ ] Bonjour,Un petit test comme ca me porte a croire que les evenement ne peuvent etre pris en charge que par des procedures. Je voulais savoir si c'est Je pensais faire un Keylogger mais c pas si simple... [ par Youyou0214 ] je voudrais faire un keylogger mais je viens a peine de commencer et des problemes se posent deja. Je voulait que mon application demarre au demarrage Je pensais faire un Keylogger mais c pas si simple... [ par Youyou0214 ] je voudrais faire un keylogger mais je viens a peine de commencer et des problemes se posent deja. Je voulait que mon application demarre au demarrage THREADS ERREUR [ par w38 ] Bonjour,Étant donné que j'ai une application qui met un temps fou, j'ai décidéd'utiliser des threads.Toutefois, le bouquin que j'ai stipule une formul Hints dans une DLL [ par almi ] J'ai une fenêtre (TForm) qui fonctionne parfaitement dans mon executable.Si je la place dans une DLL, j'obtiens le message :Ne peut assigner TFont à T


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales