Initialisation d'un des variable lors de la création d'un composant

sgmsg - 27 mars 2013 à 23:44
 sgmsg - 28 mars 2013 à 13:02
Bonjour à tous

Je souhaite un composant avec certaines variables initialisées lors de la création:

Voici le code du composant:

unit Fob;

interface

uses
  Classes,  SysUtils, math, StdCtrls, Dateutils, Controls;

type TF1=class(Tobject)
    private
        VCommunication:string;
     protected
        constructor create;
    public
       Property Communication: string read VCommunication write VCommunication;
    end;

implementation

constructor TF1.create;
begin
    vCommunication:='Bonjour le monde !'
end;

end.


Le programme qui appelle:

procedure TForm1.Button1Click(Sender: TObject);
var F1:TF1;
begin
    F1:=TF1.create;
    showmessage(F1.Communication);
    f1.free;
end;


Le resultat est simplement un message vide?

Est-ce qu'il y a moyen d'initialiser une variable lors du create, si oui comment? sinon pourquoi?

2 réponses

Utilisateur anonyme
28 mars 2013 à 08:13
[quote]unit Fob;

interface

uses
  Classes,  SysUtils, math, StdCtrls, Dateutils, Controls;

type TF1=class(Tobject)
    private
        VCommunication:string;
     protected
        constructor create;
    public
       Property Communication: string read VCommunication write VCommunication;
    end;

implementation

constructor TF1.create;
begin
    InHerited;
    Self.vCommunication:='Bonjour le monde !'
end;

end.


Ca devrait mieux fonctionner déjà
0
Merci

Il faut mettre le constructor create public.

Donc si j'ai bien compris

En étant protected, seul les descendants peuvent l'appeler.

Et l'appel create par un programme ne réserve que les ressources nécessaires pour le fonctionnement sans faire l'initialisation.

Merci encore
0
Rejoignez-nous