Création Composant [Résolu]

Signaler
Messages postés
20
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
18 février 2008
-
Messages postés
20
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
18 février 2008
-
J'ai créé un composant héritant de TComponent. (composant non-visuel).

Je veux utiliser un TListBox pour stocker des valeurs mais dès que je
l'utilise (par exemple, en faisant un clear), j'ai une erreur. Est-ce
parce que j'hérite d'un TComponent ?


Merci d'avance pour votre aide

Kinay


------------------------------------
[tahiti.france.free.fr http://tahiti.france.free.fr]

4 réponses

Messages postés
20
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
18 février 2008

J'ai donc utilisé un Tstrings avec le même exemple que ci-dessus, mais lorsque je veux utiliser mon composant et la propriété Items, j'ai le message d'erreur "Abstract Error"

Il faut en fait faire (Pour la création)
  fStrings := TStringList.Create;

Et partir de là, lorsque l'on clicque sur les 3 petits points, la fen^tre de saisie s'ouvre bien;

------------------------------------
[tahiti.france.free.fr http://tahiti.france.free.fr]
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
Hello,

Est ce que tu crées ton listbox avant de l'utiliser?

Donne nous un exmple de code sinon.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
33
T'as penser a implementer l'interface X212 pour etre compatible avec les messages SRS du systeme et de declarer les protocols GRUZCHL pour les liaisons 64bits de la memoire du listbox ?

:)

regles sur les conceptions de composants :

Questions a se poser :

Comment il doit interragir avec le programme ? (methodes et propriétés disponible)
Comment il doit interragir avec l'interface ? (interractions programmées)
Comment il doit interragir avec l'utilisateur ? (interractions utilisateurs prevues)
Comment il doit interragir avec certains composants ? (liaisons statique et dynamique, harmonie de fonctionnement)
Qu'elle classe dois-je deriver ? (choix de l'ancetre)
Comment la deriver au mieux ? (verifier les specificitées de l'ancetre choisis)
Qu'est-ce qui vas me servir pour le fonctionnement du composant ? (faire une etudes des besoins)
Comment doit-il stocker et gerrer les données ? (etudier la gestion memoire et stockage fichiers, gestion des flux)
Qu'elle sont les performances a obtenir ? (ameliorer les routines, chercher les meilleures solutions)

une fois cela fait sur papier, on peu attaquer notre composant :

creation d'un prototype dynamique de test.

creation du composant alpha
implementation des methodes et propriétés vitales
tests et debugages
implementation des methodes et propriétés avancées
tests et debugages
refactoring du proptotype en composant beta
tests de charge et d'utilisation réelle
eprouvement des interractions probables de l'utilisateur/developeur
implementation d'un gestionnaire d'erreur
debugages


release du composant final

<hr size="2" width="100%" />Croc (click me)
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
33
ah aussi, si ton compo n'est pas visuel, n'implemente pas une listbox dessus, mais plutot un TStrings.
cela donne ceci (strict minimum syndical pour l'implementation d'un TStrings dans un composant) :

type
  TMonCompo = class(TComponent)
  private
    fStrings : TStrings;
    procedure SetItems(value : TStrings);
  public
    constructor Create(Aowner : TComponent); override;
    destructor Destroy; override;
  published
    property Items : TStrings read fStrings write SetItems;
  end;

constructor TMonCompo.Create(Aowner : TComponent);
begin
  inherited create(aowner);
  fStrings := TStrings.Create;
end;

destructor TMonCompo.Destroy;
begin
  fStrings.Free;
  inherited destroy;
end;

procedure TMonCompo.SetItems(value : TStrings);
begin
  fStrings.Assign(value);
end;

<hr size="2" width="100%" />Croc (click me)