Hmmm Property dans un APP.Console...

Résolu
ELCouz Messages postés 135 Date d'inscription jeudi 22 mars 2007 Statut Membre Dernière intervention 25 juillet 2008 - 9 avril 2008 à 19:21
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

5 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
12 avril 2008 à 23:43
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.
3
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
>>>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
3
ELCouz Messages postés 135 Date d'inscription jeudi 22 mars 2007 Statut Membre Dernière intervention 25 juillet 2008
13 avril 2008 à 03:19
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
0
ELCouz Messages postés 135 Date d'inscription jeudi 22 mars 2007 Statut Membre Dernière intervention 25 juillet 2008
13 avril 2008 à 03:22
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
13 avril 2008 à 08:46
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.
0