[Delphi] Aligner des TFrame ?

Aligner des TFrame ? [Delphi] - Delphi/Pascal - Programmation

Marsh Posté le 30-01-2004 à 12:36:00    

Salut,
 
Voila mon probleme est que je voudais aligner des Tframe créer à l'execution sur un composant ScrollBox.
 
Je voudrais que les composants se suivent bord à bord et remplissent ma ScrollBox sans debordé et en créant plusieurs ligne si necessaire. Pour l'instant j'arrive a les positionner bord a bord, mais c'est long car je dois repeter l'operation pour chaque.
 
N'existe t il pas une propriété qui ferais la mise en forme ?
 
Voila ce que je voudrais obtenir :    
 
http://perso.wanadoo.fr/phach/tframe.jpg


---------------
J'écoute FIP sur le net !
Reply

Marsh Posté le 30-01-2004 à 12:36:00   

Reply

Marsh Posté le 30-01-2004 à 12:40:06    

pour que ça se mette sur plusieurs lignes, je ne pense pas qu'il y ait quelque chose de prévu.
Si tu voulais tout en une colonne (une par ligne donc), il aurait suffit de les mettre en Align = alTop.
Tu dis que tu dois répéter l'opération pour chaque frame, mais c'est le genre de truc qui est assez simple à faire par programmation, il suffit de connaître la position et la taille de la frame précédente quand on en place une nouvelle. Ça ne doit pas représenter énormément de lignes de code.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-01-2004 à 12:44:03    

Merci pour ta reponse,  
 
c'est vrai ca doit pas etre trop long a faire, puisque j'ai créer un tableau de Tframe, il est donc facile d'acceder au precedent. Je vais simplifier au maximum en mettant une taile de fenetre fixe par exemple.  
 
En fait si je comprends ce que tu dis, il me suffirait en fait de fixer align à alTop et de ne decaler que la position par rapport au bord gauche colonne par colonne.  
 
J'ai du mal avec la propriété Align ca fait jamais ce qu'on veut  :)  


---------------
J'écoute FIP sur le net !
Reply

Marsh Posté le 30-01-2004 à 12:45:30    

antp a écrit :

pour que ça se mette sur plusieurs lignes, je ne pense pas qu'il y ait quelque chose de prévu.
Si tu voulais tout en une colonne (une par ligne donc), il aurait suffit de les mettre en Align = alTop.
Tu dis que tu dois répéter l'opération pour chaque frame, mais c'est le genre de truc qui est assez simple à faire par programmation, il suffit de connaître la position et la taille de la frame précédente quand on en place une nouvelle. Ça ne doit pas représenter énormément de lignes de code.


 
Clairement :)
 
Tu mets une première frame de taille (hauteur1,longueur1) a 0,0, la seconde sera donc à 0,longueur1 , etc
 
c'est assez facile a faire :D et tout ce dont tu as besoin, c'est l'opérateur +, et les propriétés height, width, left et top des Tframe.

Reply

Marsh Posté le 30-01-2004 à 12:47:09    

3Phach4 a écrit :

Merci pour ta reponse,  
 
c'est vrai ca doit pas etre trop long a faire, puisque j'ai créer un tableau de Tframe, il est donc facile d'acceder au precedent. Je vais simplifier au maximum en mettant une taile de fenetre fixe par exemple.  
 
En fait si je comprends ce que tu dis, il me suffirait en fait de fixer align à alTop et de ne decaler que la position par rapport au bord gauche colonne par colonne.  
 
J'ai du mal avec la propriété Align ca fait jamais ce qu'on veut  :)  
 


 
Non, ca ne marchera pas. mettre  align a alTop signifie que quoique  tu fasses la propriété height sera tjs à 0 et  ignorée. Donc tes frames se chevaucheront etc.
 
Fait un placement manuel...

Reply

Marsh Posté le 30-01-2004 à 12:48:33    

3Phach4 a écrit :

Je vais simplifier au maximum en mettant une taile de fenetre fixe par exemple.  


 
La taille variable ne changera pas tellement le problème, si ce n'est qu'il faut que tu réappelles la procédure qui "range" les frames lors du redimensionnement.
 

3Phach4 a écrit :


En fait si je comprends ce que tu dis, il me suffirait en fait de fixer align à alTop et de ne decaler que la position par rapport au bord gauche colonne par colonne.  


 
non, je dis que alTop conviendrait si tu voulais mettre une seule colonne de frames. Mais quand tu as plusieurs colonnes et plusieurs lignes, il n'y a rien de prévu.
 

3Phach4 a écrit :


J'ai du mal avec la propriété Align ca fait jamais ce qu'on veut  :)  


 
Ça fait ce qu'on demande, il suffit de vouloir des choses prévues ou de le faire soi-même :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-01-2004 à 12:49:20    

Tetedeiench a écrit :


 
Non, ca ne marchera pas. mettre  align a alTop signifie que quoique  tu fasses la propriété height sera tjs à 0 et  ignorée. Donc tes frames se chevaucheront etc.


 
heu tu veux dire top à 0 ? Et ce n'est pas le cas non plus
Si tu as plusieurs frames en alTop, elles se placeront les unes en dessous des autres proprement.
Mais elles occuperont toute la largeur.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-01-2004 à 12:55:20    

OK merci les gars, oui en fait je l'ai fait a la main. C'est pas trés long, je pensais qu'il existais une fonction pour aligner automatiquement.  
 
Merci beaucoup.


---------------
J'écoute FIP sur le net !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed