Hmmm Property dans un APP.Console... [Résolu]

Messages postés
135
Date d'inscription
jeudi 22 mars 2007
Statut
Membre
Dernière intervention
25 juillet 2008
- - Dernière réponse : ELCouz
Messages postés
135
Date d'inscription
jeudi 22 mars 2007
Statut
Membre
Dernière intervention
25 juillet 2008
- 13 avril 2008 à 13:38
Bonjour,
Je ne travail pas tres souvent avec des applications consoles en delphi.
J'aimerais savoir comment on fait pour acceder a une procedure dun composant?

example:

var
ftp:TIdFTP ;
begin
ftp := TIdFTP.Create(nil);
ftp.Host:= 'ftp.bobcat.com';
ftp.Username := 'bob';
ftp.Password := 'bob';
ftp.Connect;
ftp.Put(monfichierpath, nomdefichier );
ftp.Disconnect;
ftp.Free;

comment on fait pour acceder a la proprieter OnWork , OnWorkBegin ,OnWorkEnd du composant idFTP , normalement je passe par un VCL c'est pour sa  ? Le VCL dans une form application lui est cree AVANT ... console app cest durant le code ... dynamiquement quoi.... il faudrais que jmet où la section OnWork.... et comment on la call dans ce cas si ?

Merci beacoup & bonne journee a tous

Laurent

http://www.xpresstracker.com<strike>
</strike>http://www.qsc-news.com
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
24
3
Merci
Bonjour ElCouz,

J'espère que je n'arrive pas trop tard...et que le dessert est à venir
Pour pouvoir exploiter les évènements d'un composant, on a souvent besoin de s'appuyer sur un composant. Evidemment, quend on dispose d'une fiche, c'est tellement facile qu'on le fait sans même réfléchir.
Mais quand il s'agit d'une appli console, alors là, ça change tout et ta question est extrêmement intéressante. Merci de l'avoir posée.
Donc, les événement ont besoin d'être affectés à une méthode, déclarée comme "procedure of object". Mais quand on n'a pas d'objet sous la main, comment on fait ?
La réponse qui vient immédiatement à l'esprit est "on n'a qu'à en fabriquer un !".
Oui, mais...
STOP, assez parlé et regardons le bout de code qui suit :
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, IdComponent, IdFtp;

type
    //Déclaration d'une classe bidon avec une méthode dont la signature est celle     //attendue par le composant TIdFtp et son évènement OnStatus
    TDummy = class
    procedure ftpStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: string);
  end;

var
  Dummy: TDummy;
  ftp: TIdFTP;
  monfichierpath, nomdefichier: TFileName;

// Code de l'évènement à gérer
procedure TDummy.ftpStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: string);
begin
  Writeln(AStatusText);
end;

begin
  ftp := TIdFTP.Create(nil);
  ftp.Host := 'ftp.bobcat.com';
  ftp.Username := 'bob';
  ftp.Password := 'bob';
  Dummy := TDummy.Create;
   //Affectation du pointeur de méthode à notre évènement
  ftp.OnStatus := Dummy.ftpStatus;
  ftp.Connect;
  ftp.Put(monfichierpath, nomdefichier);
  ftp.Disconnect;
  ftp.Free;
  Dummy.Free;
end.

C'était si simple que ça ? Ben voui

May Delphi be with you !
<hr color="#008000" />Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 212 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Delphiprog
Messages postés
135
Date d'inscription
jeudi 22 mars 2007
Statut
Membre
Dernière intervention
25 juillet 2008
3
Merci
>>>2- j'ai droit à des remerciements, ce qui se fait parfois rare ici

Je suis entierement d'accord avec toi sur cela. La politesse ce fait rare de nos jours !

A la prochaine... je te souhaite du succes dans tes projets!

Laurent

http://www.xpresstracker.com<strike>
</strike>http://www.qsc-news.com

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 212 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ELCouz
Messages postés
135
Date d'inscription
jeudi 22 mars 2007
Statut
Membre
Dernière intervention
25 juillet 2008
0
Merci
Wow ! merci , non il n'est pas trop tard , j'avais toujours pas trouver ma reponse j'ai meme chercher dans des bouqins mais il n'abordais pas vraiment en profondeur le sujet sur les app. console ...D'ailleur es-ce que quelque travail encore avec sa aujourdhui ?

Merci, ton coup de main à été très aprécier

Bonne journee,

Laurent

http://www.xpresstracker.com<strike>
</strike>http://www.qsc-news.com
Commenter la réponse de ELCouz
Messages postés
135
Date d'inscription
jeudi 22 mars 2007
Statut
Membre
Dernière intervention
25 juillet 2008
0
Merci
Ah oui question bete
TDummy c'est inventé (donc je pourrais le remplacer par TSalut) ou ca provient de Delphi et il faut utiliser cette classe pour assigner une evenement en application console?

Merci mille-fois

Laurent

http://www.xpresstracker.com<strike>
</strike>http://www.qsc-news.com
Commenter la réponse de ELCouz
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
24
0
Merci
Bonjour Laurent,

Je suis heureux pour plusieurs raisons :
1- je ne suis pas arrivé après la bataille
2- j'ai droit à des remerciements, ce qui se fait parfois rare ici

Rassure-toi, la classe TDummy est purement inventée et n'a absolument aucune dépendance. Dummy (ou Foo) désigne souvent dans les codes un objet, une variable ou une routine qui n'a pour rôle que de permettre une action ponctuelle. Tupeux donc la remplacer par TSalut ou toute autre chose, du moment que ce n'est pas une classe déjà déclarée dans les unités utilisées dans ton code (ici SysUtils, IdComponent, IdFtp).

Enfin, si la grande majorité des applications sont des applications GUI (Graphical User Interface), les applications console sont encore très utilisées pour certains traitements où l'intervention humaine n'est pas nécessaire.
Je ne suis donc pas étonné que tu n'aies pas trouvé beaucoup de litérature sur les applications consoles vu qu'elles sont plutôt utilisées pour un usage professionnel de nos jours.

Bonne continuation.

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Commenter la réponse de cs_Delphiprog