Bonjour à tous
Si j'ai un label sur form1, il n'apparait pas dans les onglets de ma pagecontrol, alors qu'il n'y a pas de problème avec les autres composants.
Version imprimable
Bonjour à tous
Si j'ai un label sur form1, il n'apparait pas dans les onglets de ma pagecontrol, alors qu'il n'y a pas de problème avec les autres composants.
hello,
En effet j'ai le même phénomène que toi. TLabel est un des composants les plus basiques (descend de TGraphicControl pas de TWinControl) et à la place, tu pourrais utiliser un TStaticText (onglet Additional).
Ami calmant, J.PCitation:
TLabel is a TGraphicControl and is drawn by the LCL, while TStaticText is a TWinControl descendent (as is TPanel) and is drawn by the underlying
"interface"
Je vais donc mettre un TStaticText.
merci
Par curiosité, j’aimerai bien que tu précises ton problème (que je n’ai pas encore rencontré), étant un gros utilisateur des composants TPageControl ?
Bonjour
J'ai une Form avec des TEdit et Des TLabel. Comme ils ont comme parent la TForm, ils doivent normalement apparaitre sur les pages du TPageControl.
Or seul Les TEdit apparaissent.
Un exemple en pièce jointe: Pièce jointe 613383
Je vient de regarder le contenu de ton fichier ZIP.
Alors, ta logique est érroné par rapport au fonctionnement des TPageControl.
Ton Tlabel et ton Tedit sont au dessus de ton TPageControl, alors qu’il devrait se trouver dans les Ttabsheet enfants.
non, le parent de tLabel et tEdit s'est la TForm et non la TPageControl
hello,
pour éviter que la discussion ne tourne en rond je mets mon grain de sel :
En fait sematimo veut un composant qui soit présent sur tous les pages du TPageControl. Pour faire cela en mettant le composant sur la TForm il sera visible sur toutes les pages du TPageControl, sinon on ne peut pas mettre un composant visible sur plusieurs pages à la fois.
Ami calmant, J.P
En mettant ton composant sur le Tform, il ne fait pas partie du tes ttabsheet enfants du TPageControl, cela ne pose pas de problème à condition qu’il ne se trouve pas en superposition !
Si le but et d’avoir ce tedit + tlabel sur toute les pages, tu dois obligatoirement en créer autant qu’il y aura de ttabsheet, ce n’est pas possible autrement.
Comme l’a clairement explicité Jurassic Pork, ton idée n’est pas possible ;)
mon TEdit n'est pas en surperposition avec les composants enfants et est visible sur toutes les pages, s'est tout ce que je veux.
Bonjour,
La solution d'utiliser un TWinControl permet de le mettre (empilement Z) au dessus des autres indépendamment de son owner. C'est pourquoi la solution proposée par Jurassic Pork d'utiliser un TSaticText est opérationnelle.
Sauf erreur, les TGraphicControl se dessinent sur le canvas de leur owner (ici la TForm). Ils sont actualisés lorsque la TForm l'est. Mais même quand cela arrive, les autres objets (comme le TPageControl) sont dessinés après, donc par dessus (tout cela se fait hors écran).
La première idée serait de déclencher une actualisation à chaque modification du TPageControl (ou des pages). Mais cela n'est pas une solution : si le PageControl est opaque, la modification de quelque chose en dessous de la zone du TForm qui supporte le TPageControl sera sans effet, tandis qu'autrement on risque d'entrer dans une boucle de messages d'actualisation (avec une sécurité qui laisserait le TPageControl vainqueur).
La seule solution que je vois pour utiliser mordicus un seul TLabel, serait de coller un TPaintBox sur le TPageControl et de placer les composant non fenêtrés sur le TPaintBox. Il faut relayer les événements qui atterrissent sur le TPaintBox vers le TPageControl et actualiser tout ce qu'il porte quand le TPageControl est modifié. Ce n'est pas très élégant mais cela doit tomber en marche. Je me demande si un TSaticText n'est pas un TLabel dans un TPainBox :mouarf:
La solution de Jurassic Pork est 1000 fois meilleure (on peut aussi mettre un TPanel sans bord et transparent). Dans tous les cas, il faudrait normalement relayer les événements vers le TPageControl. Sinon, par exemple, un clic sur le TSaticText n'aura aucun effet sur la page en cours.
L'autre solution est de ne pas mettre ce texte sur la TPageControl. S'il est commun à tous les onglets, il n'a pas vocation à être à l'intérieur.
Salutations