Modification du nom d'une procédure

Résolu
-
 Utilisateur anonyme -
Salut à tous,

Voila j'ai une trouvé sur une source une procedure qui me serait fort utile. Cependant dans cette source elle est déclaré comme cela :

procedure TForm1.ServeurClientRead(Sender: TObject;
Socket: TCustomWinSocket);

J'aimerais la nommée autrement par exemple TForm1.Serveur.blabla ( ........) afin qu'elle puisse etre appelée par une autre procédure qui justement serait procedure TForm1.ServeurClientRead(Sender: TObject;
Socket: TCustomWinSocket);

J'ai essayé de la renommer mais sans succes malgré l'aide en ligne.

Merci d'un éventuel coup de main

3 réponses

Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
Au fait, c'est toujours le m^me problème lorsqu'on récupère une procédure de quelqu'un d'autre.
Ta procédure ServeurClientRead() que tu as trouvé est en fait une procédure qui normalement est associée à un evenement. Toi, tu vas l'appeler par TA propre méthode qui gères l'évenement.

Alors tu as deux solutions: soit tu mets cette procedure que tu as trouvé (en lui enlevant les parametres et en la renommant) entre le TForm1.ServeurClientRead(Sender: TObject; Socket: TCustomWinSocket); et le begin de cette procédure: c'est une procédure imbriquée.

Ou alors, et c'est mieux, il faut la déclarer dans la déclaration de ta fiche.
Comme cela:
<hr size= "2" width="100%"> TForm1 = class (TForm)
Server: TServerSocket;
procedure ServerClientRead(Sender: TObject; Socket: TCustomWinSocket); // Ta propre procédure
private
{ Déclarations privées }
public
{ Déclarations publiques }

{ Ici, tu déclares ta procédure nouvelle. }
procedure ServeurBlabla(Sender: TObject; Socket: TCustomWinSocket); // La proc que tu as téléchargée
end;
<hr size ="2" width= "100%">Ensuite, dans la partie implémentation, tu mets l'implémentation de tes deux procédures.
<hr size="2" width="100%"> procedure TForm1.ServerClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
// Ta méthode.
ServeurBlaBla(Sender, Socket); // Appel de la proc teléchargée
end;

procedure TForm1.ServeurBlabla(Sender: TObject; Socket: TCustomWinSocket);
begin
// Code téléchargé.
end;
<hr size ="2" width="100%">@ ++
Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
Messages postés
40
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
16 décembre 2006
1
Ta procédure doit être déclarée dans la partie 'type' comme ceci :

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
...etc

donc si TForm1.Serveur.blabla n'est pas déclarée dans le bloc 'type' de ta form, ca ne marche pas....

Ceci dit, l'erreur est peut etre autre, quel est le messaged 'erreur que tu recois?

BV94

Dans la déclaration de la fichie j'avais laissé le TForm1.Server .... et c'est le Tform1 qui posait problème.

Pour la petite parenthèse je ne fais jamais de copier coller des procédures, mais toujours entre le BEGIN et le END;. (C'est un petit conseil que je donne à tout le monde)

Merci de votre aide