alexis2015
Messages postés73Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention24 juillet 2005
-
21 juil. 2005 à 13:01
alexis2015
Messages postés73Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention24 juillet 2005
-
24 juil. 2005 à 17:14
Re bonjour, J'ai une autre question ... tjs ds le même sujet (suite de celui-ci )
Maintenant je désire mettre mon TTabSheet et Mon TLabel dans une unit
apart de manière à la compiler plus tard en dll. Mais pour éviter du
taper tout le code qui précise la position, la hauteur ... , je pensais
mettre toutes des donnée dans un fichier dfm que l'unité chargerais.
J'avoue que je suis perdu et que je ne sais pas comment prendre le problème (si ce n'est par les "cornes", mais où sont-elles )
alexis2015
Messages postés73Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention24 juillet 2005 24 juil. 2005 à 17:14
Nickel, ca marche ...
Je m'explike ...
D'abord créer une TFrame (cadre) avec tt les objet, fonctions, et
procedure comme on le souhaite ensuite, enregistrer le tout sous un nom
correct (ex : maframe.pas et .dfm).
J'ai rajouter un "constrcutor" car dans mon application j'oblige
ma TIDFrame à être créee dans un TTabSheet, donc je rajoute ceci :
PageControl: =PC; // !!! j'utilise la variable PC dans les
PageIndex:= TabPos; // paramètres. Je n'utilise pas PageControl
Name:='IdTab'; // car il y a violation d'acces !!!
Caption:='ID Tag';
with TIDFrame.Create(PC.Pages[TabPos]) do
Parent: =PC.Pages[TabPos];
end;
end;
...
Après celà, je crée une nouvelle application dans
laquelle j'inclu l'unité contenant ma Frame. Je crée un TButton,
TPageControl et un TTabSheet (sinon erreur car ma TIDFrame a un
PageIndex = 1). Dans l'événement OnClick du bouton je met :
procedure TForm1.Button1Click(Sender: TObject);
begin
TIDFrame.createtab(PageControl1);
end;
Et c'est tout !
Alexis
PS : comment faire des cadres de fond gris pour les codes ?
yvescollet
Messages postés55Date d'inscriptionmardi 26 août 2003StatutMembreDernière intervention22 janvier 2006 21 juil. 2005 à 13:55
hello,
ce que tu pourrais faire de cool, ça serait de stocker comme tu le
proposes tes données pour la position de tes objets dans un fichier XML
(c'est plus facile de gérer toi même un fichier XML plutot qu'un
ficheir .dfm).
jinh68
Messages postés215Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention 1 septembre 2006 23 juil. 2005 à 12:37
le WriteComponentResFile et ReadComponentResFile sont bien pour des composants or TTabSheet est une classe.
TTabSheet descend bien logiquement de TComponent, c'est un
composant graphique.Bien sur que TTabSheet est une classe,vu qu' un
objet est une instance d'une Classe.
Tout ça pour dire que tu peux bien utiliser WriteComponentResFile et
ReadComponentResFile,qui peuvent directement travailler avec le
dfm(même format).
alexis2015
Messages postés73Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention24 juillet 2005 24 juil. 2005 à 13:51
Voilà mon code pour l'écriture :
var t : TFileStream;
begin
t:=TFileStream.Create('cr.crf',fmcreate);
t.Size:=ts1.InstanceSize;
t.WriteComponentRes('tab0',ts1);
t.WriteComponentRes('tab1',idLabel4);
t.WriteComponentRes('tab2',idf);
t.Free;
end;
Maintenant c'est la lecture
qui pose problème, car ReadComponentRes demande un paramètre de type
TComponent et c'est tout ! mais cmt il sais que c'est ce composant la
qui doit lire ?