Reutiliser une procedure

cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 - 27 mars 2004 à 11:37
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 28 mars 2004 à 21:16
Bonjour a tous,

Voila je debute avec delphi et je suis un peu fade :-) !!!!

J'aimerais savoir s'il etait possible de reutiliser une procedure recement definie autre part !!!!

je m explique par un exmeple!!!

j'ai cette procedure qui est declenche par un bouton

procedure TForm1.BitBtn2Click(Sender: TObject);
var chaine : string;
begin
//envoit de la requete
chaine:=edit1.Text;
if (chaine ='') then //erreur
begin
Windows.Beep(100,500); //beep
showmessage('Veuillez insérer une requete ou cliquez sur le menu Divers');
edit1.SetFocus; // on place le focus
end
else
begin
database1.Open;
query1.SQL.Clear;
try
begin
//Label3.Caption := [database1.RecordCount];
query1.SQL.Add(edit1.Text); //ajout de la requete
query1.Open; //ouverture de la table en query
edit1.Text:=''; //edit a blanc
end;
except
on edbengineerror do showmessage('Erreur de Requete Sql') ;
end;
end;
end;

ok elle tourne parffaitement mais j'aimerais faire des menus sur mon application qui permettrait d'envoyer celle ci ....

alors soit je retape le tout, soit je fais un copier coller ou alors

je reutilise cette procedure mais comment !!!!

J'espre m'etre fait comprendre......:-(

Je vous remercie

a bientot

Jimmy

3 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
27 mars 2004 à 14:21
Pour ne pas avoir à compliquer et alourdir le code, je te conseille de créer une méthode dans la classe de ta fiche.
Si l'usage de cette méthode ne dépasse pas la portée de la fiche, tu peux la déclarer dans la section private.

Type
   TForm1= class(TForm)
   ..
   private
     procedure QueryExecute;
   end;

Le curseur étant situé dans la déclaration de la classe, tu appuies sur shift+ctrl+C et delphi génère un squelette de méthode :
procedure TForm1.ExecuetQuery;
begin
  //insérer le code ici
end;

Il ne te reste plus qu'à insérer ton code à l'endroit indiqué :
procedure TForm1.ExecuetQuery;
var chaine : string;
begin
//envoit de la requete
chaine:=edit1.Text;
if (chaine ='') then //erreur
begin
Windows.Beep(100,500); //beep
showmessage('Veuillez insérer une requete ou cliquez sur le menu Divers');
edit1.SetFocus; // on place le focus
end
else
begin
database1.Open;
query1.SQL.Clear;
try
begin
//Label3.Caption := [database1.RecordCount];
query1.SQL.Add(edit1.Text); //ajout de la requete
query1.Open; //ouverture de la table en query
edit1.Text:=''; //edit a blanc
end;
except
on edbengineerror do showmessage('Erreur de Requete Sql') ;
end;
end;

end;


Enfin, quelque soit le contrôle qui déclenche l'évènement, tu appelles la méthode de la façon la plus banale qui soit :
procedure TForm1.Button1Click(Sender: TObject);
begin
  ExecuteQuery;
end;

procedure TForm1.mnuExecuterRequeteClick(Sender: TObject);
begin
  ExecuteQuery;
end;


Désolé si la réponse est un peu longue. J'espère au moins qu'elle aura été claire.

C'est un bon réflexe à prendre, dès le départ, que d'isoler les parties de code susceptibles d'être réutilisées dans le reste de ton application.
May Delphi be with you
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
28 mars 2004 à 19:18
Bonsoir Phil,

Je te remercie pour ces infos tres interessantes et tres bien expliquer !!!!

Encore une fois tu m'aides ds mon apprentissage....j'espere pourvoir un jour te filer un coup de main !!!

Je te souhaite une excellente semaine et te remercie encore une fois pour ton aide

Thanks

Ciao et a bientot alors :-)!
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
28 mars 2004 à 21:16
Merci pour tes encouragements.

Excellente semaine à toi aussi.
May Delphi be with you
0
Rejoignez-nous