2010-07-15 5 views
4

L'implémentation Delphi du contrôle TFlowPanel semble manquer d'une caractéristique importante de la version C#, la AutoScroll.Comment faire défiler le contenu d'un TFlowPanel?

Le C# contrôle avec AutoWrap= False et AutoScroll=True se comportent comme un horizontal scrollable liste des contrôles.

Comment puis-je imiter le comportement de la version C# du contrôle?

Merci, Alin

post-scriptum Je sais que je peux utiliser TScrollBox pour obtenir ce comportement, mais TFlowPanel (dans la version non estropiée) permettent beaucoup plus de flexibilité.

+4

Avez-vous essayé l'intégration d'un TFlowPanel dans un TScrollBox? –

Répondre

8

Créez votre TFlowPanel dans un TScrollBox, avec les propriétés suivantes:

  • Aligner: alLeft
  • AutoSize: TRUE
  • AutoWrap: FAUX

Cela devrait se vous le comportement que vous êtes après je pense.

+0

oui, c'est le comportement que je voulais ... serait bien si cela pouvait être réalisé avec un seul contrôle de conteneur mais cela devra faire pour l'instant :) merci –

+0

Il pourrait - vous pourriez dériver un nouveau contrôle de TScrollbar incorporant la partie d'un comportement TFlowPanel dont vous aviez besoin sans aucune des fonctionnalités facultatives supplémentaires dont vous n'avez pas besoin. Si vous avez besoin de réutiliser ceci beaucoup, alors le temps investi dans la création d'un tel contrôle pourrait être bien remboursé, mais sinon, ce genre de "mash-up" est parfait et le développement basé sur les composants excelle à - créer les choses qui sont plus grandes [en utilité] que la somme des parties. – Deltics

3

Si vous voulez faire défiler verticalement définir

FlowPanel1.Align := alTop; 
FlowPanel1.AutoSize := True; 
FlowPanel1.AUtoWrap := False; 
+0

Ce paramètre ne fonctionne pas. J'utilise Delphi XE5. Les paramètres de défilement horizontal et vertical ne fonctionnent pas non plus. –

+0

désolé je ne peux pas aider, je n'ai que XE4 – MikeT

Questions connexes