Création Composant

Résolu
cs_kinay Messages postés 20 Date d'inscription samedi 30 août 2003 Statut Membre Dernière intervention 18 février 2008 - 4 oct. 2006 à 16:44
cs_kinay Messages postés 20 Date d'inscription samedi 30 août 2003 Statut Membre Dernière intervention 18 février 2008 - 8 oct. 2006 à 14:55
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

cs_kinay Messages postés 20 Date d'inscription samedi 30 août 2003 Statut Membre Dernière intervention 18 février 2008
8 oct. 2006 à 14:55
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]
3
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
4 oct. 2006 à 21:42
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.
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
5 oct. 2006 à 01:38
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)
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
5 oct. 2006 à 01:52
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)
0
Rejoignez-nous