Modification du nom d'une procédure

Résolu
Utilisateur anonyme - 31 oct. 2005 à 18:54
 Utilisateur anonyme - 1 nov. 2005 à 12:48
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

florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
1 nov. 2005 à 09:26
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
3
bv94 Messages postés 40 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 16 décembre 2006 1
31 oct. 2005 à 21:17
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
0
Utilisateur anonyme
1 nov. 2005 à 12:48
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
0
Rejoignez-nous