cs_jimmy69
Messages postés778Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention27 novembre 2008
-
27 mars 2004 à 11:37
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDerniè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
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 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