IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

[Composant] Masquer des propriétés


Sujet :

Composants VCL Delphi

  1. #1
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut [Composant] Masquer des propriétés
    Bonjour,
    J'ai écrit un composant descendant d'un TCustomGroupBox, et dans l'inspecteur des propriétés de mon objet, il y a des champs que je ne veux plus (du style Hint, Tag, ...)

    Y'a-t-il un moyen de les "masquer" ?
    Sinon, comment puis-je faire pour afficher juste les propriétés que je veux ?

    Merci d'avance,

  2. #2
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    On ne peut pas supprimer des proprietees.

    Enfait c'est surtout la retrogradation dans la portee des procedures/proprietees qui est interdite et c'est la seule solution qu'on ai pour masquer ces trucs.

    La seule solution est de deriver depuis un TCustom<NomDeClass> qui implemente toutes les methdoes de la nouvelle classe mais en laissant la portee protected.
    Donc de l'exterieur on se retrouve avec une classe qui se comporte exactement comme son parent mais qui possede toutes les fonctionnalite de la classe souté en interne.

    Ensuite, on developpe la classe offcielle derivant de celle ci qui ne s'occupe uniquement de redefinir public/Published les proprietes/Procedure.

    ainsi deriver d'une classe custom permet d'avoir toutes les fonctionnalites de la classe souhaite mais en pouvant masquer celles qu'on ne desire pas (on fait on ne masque pas reelement, vu qu'on ne rend pas public celel qu'on ne desire pas).

    Si tu n'as pas de classes custom ou que ta proprietee est rendue publique bien plus haut, tu n'as pas d'autres solutions que de la conserver ou de reimplementer toutes les autres fonctionnalités.

    Sinon tu peut toujours implementer une classe derivant de TControl, possedant en interne un objet de la classe desiré que tu manipule par l'intermediaire de fonctions / proprietees redefnies.
    mais bon c'est pas propre, c'est pas beau et ca craint un max
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  3. #3
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut
    Ben je dérive déjà du "custom", puisque c'est un TCustomGroupBox.
    Le problème, c'est que à force de remonter dans la hiérarchie, je perds des informations qui sont utiles, et j'ai pas fort envie de réécrire un composant existant juste pour effacer des champs inutiles...

    En fait, c'est pour créer des composants pour un petit IDE, et c'était pour ne pas mettre des champs inutiles, car ils ne seront jamais implémentés.

    Tant pis, je vais les laisser "traîner".

    Merci de ton aide

  4. #4
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Par contre ce que tu peux faire c'est de surcharger les methdoes / prop qui t'interessent pas et de les neutraliser en ne faisant pas appel aux inherited.

    Ou alors, uen solution serait de creer une interface qui declare les methdoes que tu souhaite et tu creer derive qui implemente cette interface.
    Apres en creant un composant "filtre" qui charge une instance de ton composant derive et qui le manipule via son interface ..... tu peut arriver a qque chose mais c'est pas dit
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  5. #5
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut
    Moais, suis pas sûr d'avoir tout compris, mais bon.

    Autre chôse, que j'ai oublié de demander...

    Sur mes composants, j 'ai une propriété 'ID'.
    Je voudrais que ID soit initialisé, par défaut, à une valeur (qui est en fait Parent.ComponentCount+1)

    Je n'arrive pas à trouver comment faire ça, tu sais éclaire ma lanterne ?

    Merci

  6. #6
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Pour cacher Hint, par exemple, c'est tout bonnement impossible, car cette propriété (et qques autres) est déjà publiée (published) dans TControl, qui la classe de base sine qua non de tout contrôle.
    Donc... oublie
    Citation Envoyé par Big
    Sur mes composants, j 'ai une propriété 'ID'.
    Je voudrais que ID soit initialisé, par défaut, à une valeur (qui est en fait Parent.ComponentCount+1)
    Dans ton constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    constructor TMonGroupBox.Create(AOwner : TComponent);
    begin
      inherited;
      FID := Owner.ComponentCount; // écrit comme cela : donnera 1 pour le premier
    end;
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  7. #7
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Bha tant que tu n'as pas defini le parent, ta prop parent = "nil"
    donc pas possible d'appel.

    Sinon tu surcharge le setparent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Procedure TMaclasse.SetPArent(AParent : TWinControl);
    Begin
    Inherited SetPAren(AParent);
    If Aparent = Nil Then Exit;    // ou autre chose si tu dois traiter le cas = nil
    Self.ID := Self.parent.componentCount+1;
    End;
    MAis je te conseille plutot des methdoes de classes avec une prop unique 'CurrentIDMax'

    Ainsi chaque methdoe de classe fait appel a cette variable publique pour affecter son ID directement dans le cosntructeur.
    L'avantage de methdoes de classe c'est qu'elles peuvent etre appelees sans qu'une isntance ne soit cree .. ca peut regler certains pbs .. a voir.
    Bien sur, incremente la variable a chaques attribution d'ID.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  8. #8
    Membre habitué Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Points : 150
    Points
    150
    Par défaut
    Bjr,


    Pour masquer des propriétés publiées d'un composant personnalisé enregistre un éditeur de propriété avec nil :

    Ex : TEditPerso dérivé de TEdit sans la propriété Tag ... (pour D7)

    Le code du composant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    unit EditPerso;
     
    interface
     
    uses
      SysUtils, Classes, Controls, StdCtrls;
     
    type
      TEditPerso = class(TEdit);
     
    implementation
    end.

    La partie enregistrement :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    unit EditPersoReg;
     
    interface
     
    uses
     Classes,
     TypInfo,  DesignIntf, DesignEditors;
     
    procedure Register;
     
    implementation
     
    uses EditPerso;
     
    procedure Register;
    begin
      RegisterComponents('Exemples', [TEditPerso]);
      RegisterPropertyEditor(TypeInfo(Integer), TEditPerso,
        'Tag', nil);
    end;
     
    end.

    Tu installes le tout dans un paquet : tu déposes ensuite un TEditPerso sur une fiche et Ô plus de Tag (normalement)

    Attention Tag existe toujours : càd TEditPerso.Tag reste accessible par prog !

    Evite ce genre de manip directement sur les compos de la VCL

    @+
    Php
    @+
    Php

    D7 Enterprise - XP sp2
    The Truth is Out There

  9. #9
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Interessant pour utiliser Delphi comme base d'un d'editeur ultra simplifié pour programmeur debutant ....
    Ca m'interesse.

    (J'aime pas la surcharge cognitive due a la presence d'un trop grand nombre d'info inutiles )
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  10. #10
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut
    Je débute en conception de composants, même si je suis un habitué de Delphi.

    Mon but est double: de mon côté, apprendre la conception de compo, et de l'autre, un petit IDE pour mes élèves.

    Si je les lache sur delphi 2005, ils ont tendance à dire que c'est impossible

    Alors que si je fais un petit IDE, avec les compos de bases et simplifiés au maximum, ça devrait leur donner un peu plus d'assurance.

    Merci phplive, je ne savais pas ça. Je vais essayer... Je suppose que je dois faire appel plusieurs fois à RegisterPropertyEditor pour supprimer tout ce qui est inutile ?

  11. #11
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Quand tu parle de "petit editeur" tu pense a quoi ?
    Un programme qui refait du delphi ? cad qui permet de selectionner un composant dans uen liste, qui permet de mettre a jour ses props, etc comme sous delphi ... et qui permette d'entrer du code et de le compiler ?

    si c'est ca que tu veux faire .. ya du boullot .. et du gros !
    Faire un IDe qui manipule des objets comme en conception ok .. mais si il faut ensuite assicier du code aux evements c bcp plus cho ....

    Si tu compte utiliser Delphi comme base avec juste la manipulation d'objets perso c'un u poil plus complexe et pas tres faisable ....

    Maintenant, je te conseille plutot de recuperer uen version 6 perso (gratuite) donc l'interface est bien plus sobre que 2005 et en y allant molo, en expliquand pas a pas ca passera tres bien.

    Moi a la fac on est parti direct dur du Delphi 2 sans soucis. Avec bien sur un semestre d'utilisation de delphi en mode console pour se familiariser avec la programation pascal a la mode "TurboPascal"
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  12. #12
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut
    En fait, c'est plus compliqué que ça
    A la base, c'était pour voir comment concevoir des compo.
    Ensuite, ça fait un bon moment qu'on me demande d'ajouter à mon programme (un éditeur de scripts pour mIRC) un système de création graphique. C'est ce que j'essaie de faire.

    Pour finir, je me suis dit qu'en ayant fait ça, il me reste plus qu'à gérer les événements, modifier mon programme pour traiter du Pascal au lieu de IRC-script, et j'ai un clone de Lazarus

    Ca fait du boulot, d'autant plus que je programme tout seul. Tout le monde me prend pour un dingue et refuse de m'aider , parce que le projet semble trop gros !

  13. #13
    Membre habitué Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Points : 150
    Points
    150
    Par défaut
    Bjr,

    Comme le dit Clorish vouloir récréer un mini IDE c'est chaud!
    (voir impossible comme dirait tes élèves ... )

    Autrement oui il faut appeler RegisterPropertyEditor pour chaque propriété.
    Le seul cas où je m'en sers c'est lorsque j'intègre une propriété de type TCollection non pas directement à la racine d'un composant mais dans un de ses sous-objets ! Comme tu vois, faut vraiment chercher loin !

    Car j'avoue que ta démarche me surprend un peu : Delphi établie déjà un distinction claire entre celui qui développe et donc qui utilise des composants tout fait et celui qui les conçoit. (ce qui est infiniment plus complexe j'en sais qlque chose ...)
    Qu'importe qu'il y ait des propriétés en trop tu les ignores. D'ailleurs ce qui me pose souvent des problèmes c'est justement l'absence de telle ou telle propriété ... pas l'inverse !

    Maintenant tout dépend, il est vrai, des thèmes que tu souhaites aborder lors de tes cours.

    @+
    Php
    @+
    Php

    D7 Enterprise - XP sp2
    The Truth is Out There

  14. #14
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut
    C'est vrai que point de vue Delphi, les propriétés peuvent rester, mais au niveau de l'IDE pour mIRC, elles doivent disparaître

    Sinon, ça semble faisable, si on en croit Lazarus...
    Je comptais m'en inspirer, mais quand j'ai vu les sources, j'ai reculé

  15. #15
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Citation Envoyé par Big
    A la base, c'était pour voir comment concevoir des compo.
    Pour ça je ne peux que te conseiller mon tuto
    Citation Envoyé par Big
    Ensuite, ça fait un bon moment qu'on me demande d'ajouter à mon programme (un éditeur de scripts pour mIRC) un système de création graphique. C'est ce que j'essaie de faire.
    Ca c'est la partie dure à mon avis
    Citation Envoyé par Big
    Pour finir, je me suis dit qu'en ayant fait ça, il me reste plus qu'à gérer les événements, modifier mon programme pour traiter du Pascal au lieu de IRC-script, et j'ai un clone de Lazarus
    Pour tout ça je te conseille vivement Pascal Script. C'est gratuit, open source, et c'est ce qu'utilise Inno Setup... et ce que je suis en train de mettre en place dans une de mes applications.
    Citation Envoyé par Big
    Ca fait du boulot, d'autant plus que je programme tout seul. Tout le monde me prend pour un dingue et refuse de m'aider , parce que le projet semble trop gros !
    Certes, il y a beaucoup de travail en perspective...
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  16. #16
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Effectivement c'est assez chaud.

    Ce que je peut te conseilelr a mettre en place si tu le souhaite (c'est ce que je voulais faire a un moment pour la boite)
    C'est de developper un programme "dynamique".

    Il sera composé d'une form avec toolbar, etc .. bref l'ide.
    Une 2e form sera cree et modifiee dynamiquement : La form en mode conception de Delphi.

    Quand tu detecte un click souri sur un sppedbutton designant l'ajout d'un TButton, tu ouvre une fenetre de parametrage du Tbutton dont tu auras place les edit correspondant aux proprietees souhaité (et donc sans les tags par exemple !)
    Une fois les infos saisies, tu creer un TButton dynamiquement, tu lui donne comme owner et parent la fomr "designe" et tu lui transmet les parametres recupere dans la fenetre d'edition.

    Ensuite tu peut aussi associer du code (sous forme de TStringList) a des evenements sur le meme principe.
    Un bouton "lier un evenement", puis ouverture d'un memo, recuperation du code, analyse syntaxique ... mais ca ca ne devrais pas te poser de problemes, et enregistrement dans un TStringList en memoire.

    Une fois cela fait, la pressions sur un Bouton "Compil" entraine la generation des fichiers sources pascal (pas, Dpr, Dfm, etc ...) en fonctio ndes informations lu en memoire et compilation en ligne de commande.

    Je te conseilel aussi de gerer des projets types (genre 1 seule forme ou des formes types) puis de gerer tous les compos en creation dynamique lors de l'ecriture des fichier pascal avant compil. Cela t'evitera de generer des fichier DFM un peut casse pied.

    si tu inclut en ressource les ficheirs DPR, DFM, et pas de base, en ressources dans l'exe, tu n'aura qu'a les extraire dans un coin du HDD, les personnalise avec des Fichiers includes que tu rempli (au prealable inclu avec les directives de compil dans les sources de bases) comme par exemple : 1 pour le contenu du FormCreate, un pour le contenu du OnCLose et en pour ecrire la liste des evenements.

    Voila des indications en vrac, mais si tu as besoins de plus amples infos demande moi je detaillerais .. j'y ai deja bien reflechi pour un editeur interne de l aboite.

    Mais ses performances resterons quand meme limité par rapport a un IDE tel LAzarrus.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  17. #17
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut
    J'y avais songé aussi, mais un des problèmes récurrent, c'était le redimensionnement des composants (j'avais même commencé à faire comme ça, mais ça plantais tellement que ça m'a découragé ).

    Point de vue fichiers, j'essaie de me tourner vers un format xml (à la place de DFM). C'est tout aussi facile à gérer, et avec des transformations XSLT, on peut obtenir ce qu'on veut.

    Ceci dit, je suis preneur des informations détaillées, car si ça marche, je crois que ça serait pas mal d'en faire un tuto pour développez...

  18. #18
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Pour les infos detailles je vais essayer de voir ce que je peut faire mais le mieux est de me les demander au fure et a mesure ... soit par MP, soit par mail, soit par Msn .... tant qu'un poste ou tutos expliquand les solutions sont faite apres.

    Sinon pour le redimentionnement j'ai courtcuircuité ca en zappant le redimentionnement dynamique mais a l'aide des 4 champs d'editions et eventuelement des speed button sous forme de fleches .
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/12/2010, 11h47
  2. Masquer des propriétés
    Par Speed41 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 19/10/2009, 19h23
  3. Composant enregistrant les propriétés des composants
    Par pat-lion dans le forum Delphi
    Réponses: 5
    Dernier message: 29/01/2007, 19h57
  4. Réponses: 3
    Dernier message: 24/10/2005, 16h32
  5. recopie des propriétés d'un composant
    Par pitounette dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/02/2004, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo