Comment memoriser la position d'un composant creer dynamiquement

krzysiu Messages postés 6 Date d'inscription vendredi 5 juin 2009 Statut Membre Dernière intervention 16 février 2014 - 21 janv. 2014 à 18:03
cs_yanb Messages postés 271 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2022 - 9 févr. 2014 à 14:16
Bonjour,
et avant tout une très bonne année 2014 à tous,

Je travaille sur un projet permettant de créer des formulaires de saisie. Créer , déplacer les composants je sais faire. par contre un fois créer, j'ai besoin de mémoriser leurs positions sur la fiche pourquoi pas dans un fichier .txt par exemple pour pouvoir ensuite recharger ce formulaire formulaire et retrouver mes composants comme je les avaient laissés.

il me semble qu'il y avait un exemple sur le forum, mais je ne le retrouve pas.

Quelqu'un aurait'il une idée ?
je continue à chercher...
Merci
Bonne soirée

7 réponses

dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
22 janv. 2014 à 16:59
Salut
Voici 2 procédures (à adapter en fonction des options à sauvegarder) :

procedure TForm1.sauve1;
var t:TstringList;
begin
t := Tstringlist.create;
t.Add(inttostr(Panel1.left));
t.Add(inttostr(Panel1.top));
t.SaveToFile('xx.txt');
t.free;
end;


procedure TForm1.charge1;
var t:TstringList;
begin
t := Tstringlist.create;
t.LoadFromFile('xx.txt');
Panel1.Left := strtoint(t[0]);
Panel1.top := strtoint(t[1]);
t.free;
end;
1
korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
23 janv. 2014 à 09:21
Salut,

Et pourquoi pas un fichier "*.ini" ?
1
korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
23 janv. 2014 à 21:17
Hello.
Possibilité également d'enregistrer chaque composant dans un fichier qui lui est propre, puis de lire ce fichier pour le créer à chaque ouverture du Form, avec les instructions "WriteComponentResFile" et "ReadComponentResFile" qui utilisent les flux (TStream).
Mais si c'est pour sauvegarder uniquement la position, et qu'il y a beaucoup de composants créés, ça n'est sans doute pas la meilleure méthode.
Cependant, les flux restent intéressants à exploiter s'il y a beaucoup de composants à créer...
1
Salut

Il est très facile de connaitre la position d'objet dynamiquement créé

Exemple pour un objet image

Left:= TImage(FindComponent('image1')).Left;
Top:= TImage(FindComponent('image1')).Top;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut

Une petite question, les composants de ton formulaires tu les crées dynamiquement a chaque lancement de ton application ou ils sont codés ?
0
krzysiu Messages postés 6 Date d'inscription vendredi 5 juin 2009 Statut Membre Dernière intervention 16 février 2014
8 févr. 2014 à 22:16
ils sont ajoutés dynamiquement
0
krzysiu Messages postés 6 Date d'inscription vendredi 5 juin 2009 Statut Membre Dernière intervention 16 février 2014
8 févr. 2014 à 22:15
Bonsoir à tous,

Merci pour toutes vos réponses, j' ai effectivement créer un fichier pour stocker l'emplacement des composant. comme certains le suggère.
Mais la sauvegarde doit se faire une fois tous les composants en place. il me faut donc parcourir tous les composant de la fiche. je vais essayer un truc , mais si vous avez des idées je suis preneur

Encore merci
0
cs_yanb Messages postés 271 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2022 14
9 févr. 2014 à 14:16
Salut,
Il y a pas mal de possibilités ini, txt, xml, rtti...
j'aurai une préférence pour les rtti et xml.
J'avais fais un bout de code pour exemple qui les utilisés, enregistrement dans exe ou un truc comme ca, mais il y a pas mal d'exemple sur ce sujet...
Mais pour pouvoir t'aider il nous faudrait le code pour savoir quel chemin tu as pris et les problématiques rencontrées, car tu restes très vague sur ce que tu as fais...
@+
0
Rejoignez-nous