Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS DELPHI F.A.Q DELPHI TUTORIELS DELPHI LIVRES COMPOSANTS SOURCES DEFI TELECHARGEZ DELPHI TV
Nono40.developpez.com
Le petit coin du web de Nono40
SOURCES ARTICLES NONOVISU ACCUEIL NOUVELLES
Retour à l'accueil
85 - COPIE D'UN COMPOSANT À L'EXÉCUTION

PRÉSENTATION : Copie des propriétés publiées d'un composant
ZIP : Téléchargez le zip : miroir 1 , miroir 2 APERÇUS :

NOTES : A noter que cette méthode ne copie pas les évènements.
Seules les propriétés publiées ( section published ) sont enregistrées.

CODE :
Procedure TForm1.FormCreate(Sender: TObject);
Begin
  // Pour pouvoir lire les composants sous forme de ressources
  // à l'exécution, il faut déclarer les classes utilisées
  RegisterClass(TLabel);
End;

Function CreationCopie(Component:TControl):TControl;
Var
  Stream:TMemoryStream;
Begin
  Stream :=TMemoryStream.Create;
  Try
    // WriteComponent permet d'écrire toutes les propriétés publiée
    Stream.WriteComponent(Component);
    Stream.Seek(0,soFromBeginning);
    // ReadComponent permet de les lire en créant un nouveau composant
    Result := TControl(Stream.ReadComponent(Nil));
    // La propriété Parent doit être mise à jour car elle n'est pas
    // enregistrée ( ce n'est pas une propriété publiée, mais seulement
    // publique )
    Result.Parent := Component.Parent;
  Finally
    Stream.Free
  End;
End;

Procedure TForm1.Label1Click(Sender: TObject);
Begin
  With TLabel(CreationCopie(Label1)) Do
  Begin
    Top := Top+20;
  End;
  // Suppression de l'événement pour ne le créer qu'une fois.
  TLabel(Sender).OnClick := Nil;
End;

Les sources présentées sur cette page sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2003 Bruno Guérangé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Responsables bénévoles de la rubrique Delphi : Nono40 et Pedro - Contacter par EMail :
Vos questions techniques : forum d'entraide Delphi - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.