Sauvegarde de tous composants

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 393 fois - Téléchargée 33 fois

Contenu du snippet

Routines unique pour sauvegarder les composants sur disque.

Source / Exemple :


{---------------------------------------------------
Sauvegarde de n'importe quel composant.
Le fichier prend le nom du composant avec l'extension '.dat' si FileName
est omis.
{---------------------------------------------------}
procedure SaveComponent(Cmpnt:TComponent;FileName:string='');
var F : TFileStream;
begin
  if FileName='' then FileName:=(Cmpnt as TComponent).Name +'.dat';
  F := TFileStream.Create(FileName, fmCreate);
  try
    F.WriteComponent(Cmpnt);
  finally
    F.destroy;
  end;
end;
{---------------------------------------------------
Chargement de n'importe quel composant.
Le fichier prend le nom du composant avec l'extension '.dat' si FileName
est omis.
{---------------------------------------------------}
procedure LoadComponent(Cmpnt:TComponent;FileName:string='');
var F : TFileStream;
begin
  if FileName='' then FileName:=(Cmpnt as TComponent).Name +'.dat';
  if FileExists(FileName) then begin
    F := TFileStream.Create(FileName, fmOpenRead);
    try
      Cmpnt := F.ReadComponent(Cmpnt) as TComponent;
    finally
      F.destroy;
    end;
  end;
end;
{---------------------------------------------------}

A voir également

Ajouter un commentaire

Commentaires

cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
24 -
J'ai deux questions :

1/ Qu'est-ce que ces routines apportent de plus que les méthodes WriteComponent, WriteComponentRes, WriteComponentResFile, ReadComponent, ReadComponentRes et ReadComponentResFile ?

2/ Pourquoi effectues-tu un transtypage de Cmpnt en TComponent alors que Cmpnt est déjà du type TComponent ?

Merci pour tes réponses (argumentées si possible).
Hnimsgern
Messages postés
49
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
4 mars 2005
-
Bonjour, Merçi de l'intérêt que porte à mon code. Le transtypage est effectivement inutile. D'autre part je n'ai aucune doc sur Delphi et je ne connaissait pas les routines dont tu fais référence. C'est souvent le cas. Je trouve sur internet des routines qui ont été écrites pour des versions antérieures de Delphi et peut-être qu'à ce moment là les fonctions toutes faites n'existaient pas encore. J'ai le livre d'Olivier Dahan et Paul Toth qui m'a permis d'obtenir Delphi version personelle et je cherche un livre plus complet. HN.
cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
24 -
En attendant de trouver un livre plus complet (?), tu peux toujours t'inspirer de ces codes sources traitant du sujet de la sauvegarde de composants (à défaut de l'aide en ligne de Delphi au demeurant très bien faite) :
"Enregistrement de composants avec WriteComponent/ReadComponent" et
"Enregistrement de composants avec WriteComponentRes/ReadComponentRes".
Les URL sont respectivement :
http://nono40.developpez.com/sources/source0062.html et http://nono40.developpez.com/sources/source0064.html
La mise en flux des composants existe depuis Delphi 1.
Ces méthodes sont utilisées par Delphi lui-même.

En espérant que cela t'aidera.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.