Bonjour. pour afficher une forme geometrique j'ai utilisé TShape stEllipse, je que des chaines de carectere s'affiche a l'interieure de cette forme comment je fait? merci d'avance pour votre aide
Bonjour. pour afficher une forme geometrique j'ai utilisé TShape stEllipse, je que des chaines de carectere s'affiche a l'interieure de cette forme comment je fait? merci d'avance pour votre aide
Par exemple en posant un TLabel sur ta forme géométrique, en lui changeant sa propriété Color (et en lui donnant la même que ton Ellipse).
Eventuellement changer la couleur de la Font.
merci pour votre reponse. j'ai un StringGrid qui contient des lignes et des colonnes , je veut que le nombre de Ellipse dépend de nombre de ligne de StringGrid, et chaque Ellipse contient les chaines de carectere qui existe dans une ligne de ce StrinGrid.merci d'avance pour votre aide.
ok ..., je supose que j'ai un StringGrid qui contient 3 lignes je veut un code que quand je clik sur un bouton s'affiche 3 forme geometrique Ellipse .
et Ellipse 1 contient les chaines de carectere qui existe dans la premire ligne de StrinGrid, le 2eme Ellipse Contient les chaine de carectere de la 2eme ligne de StringGrid etc..........
Ben tu fais une boucle for et tu itère sur chaque ligne de ton StringGrid, et tu créée dynamiquement (dans le code avec un new ) à chaque fois un TShape et un TLabel que tu positionne à l'endroit souhaité sur ta Form. Dans un premier temps tu peux te contenté des TLabel.
Mais ca me parait très compliqué, et je ne vois pas trop l'intérêt, mais après tout si tu estime que tu a en a besoins...
si c'est possible tu peut me donné le code parce que comme tu as dit c'est compliqué .merci pour votre aide.
Le but c'est quand même que tu cherche un peu par toi même, pas que quelqu'un te donne le truc tout fais!
Tu fais une boucle for, tu utilise le lien que je t'ai donné pour comprendre comment créer des composant dynamiquement (dans l'exemple c'est un TButton, a toi de faire pareil avec TLabel et TShape)) , et tu verra c'est pas bien compliqué...
Essai de le faire, et si tu n'y arrive pas alors poste ton code pour voir ce qui ne va pas, et alors on pourra t'aider.
Bon courage.
merciiiii![]()
Salut !
On peut aussi developper une classe dérivée de TShape ce qui permet d'avoir accès au Canvas de l'objet et dans ce cas il suffirait de dessiner le texte directement sur le shape.
A plus !
Bonjour , j'arrive pas .j'ai met au debut ce code:
je ne sais pas quoi faire par la suite.merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for(int i=0;i<Form1->StringGrid2->RowCount;i++) { TShape *Shape1; Shape1=new TShape(this); Shape1->Parent=Panel1; }
Salut
Peut etre en recuperant le Canvas du TShape et utiliser " Canvas->TextRect " un exemple
Le code
houps
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 TControlCanvas *pCn; pCn = new TControlCanvas(); pCn->Control = Shape1; TRect TheRect; TheRect = Rect(10,10,100,100); pCn->TextRect(TheRect, 10, 10, "Hello World");desole grille par henderson
Il y a juste le TLabel, a toi d'ajouter encore le TShape et de gérer les couleurs...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 void __fastcall TForm1::Button1Click(TObject *Sender) { int positionLeft = 30 ; int positionTop = 10 ; int ecartEntreDeuxLabel = 12 ; TLabel *label ; for( int i = 0; i < StringGrid1->RowCount; i++) { label = new TLabel(this); label->Parent = Form1; label->Caption = StringGrid1->Cells[0][i] ; label->Left = positionLeft; label->Top = positionTop +(i*ecartEntreDeuxLabel) ; } }
salut c'est quoi le code pour que le nombre de Shape =le nombre de ligne de StringGrid .merci d'avance pour votre aide.
Ben c'est la boucle for qui créee le bon nombre de composant...
Tu a tester le code que je t'ai donné?
oui j'ai tester ton code il me permet d'afficher les chaines de carectere qui existe dans les liges de la premiere colonne de StringGrid dans la forme 1.
pour Shape j'ai fait
j'arrive pas a mettre le code qui dépend le nombre de Shape avec i.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 TShape *Shape ; for( int i = 0; i < Form1->StringGrid2->RowCount; i++) { Shape = new TShape(this); Shape->Parent = Panel1; Shape->Shape=stEllipse; ????????????????????? }
merci pour votre aide
Ben si il y a 5 lignes dans ton StringGrid, ca va te creer 5 TShape, si il y a 6 lignes, ca va te creer 6 TShape, etc...
A toi de les positionner avec les propriétés Left et Top de ton TShape
c'est quoi la popriété pour
merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Shape->? =Form1->StringGrid2->Cells[0][i] ;
ton TShape n'a pas besoin d'accueillir du texte!
voilà un truc tous fais, a toi juste de positionné les composants:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 void __fastcall TForm1::BitBtn2Click(TObject *Sender) { // DECLARATION DES CONTANTE DE POSITION DES COMPOSANTS int labelLeft = 50 ; int labelTop = 12 ; int ecartEntreDeuxCompo = 30 ; int shapeLeft = 20 ; int shapeTop = 5 ; int shapeWidth = 100 ; int shapeHeigth = 28 ; TColor couleur = clLime ; TLabel *label ; TShape *shape ; // CREATION DES COMPOSANTS for( int i = 0; i < StringGrid1->RowCount; i++) { shape = new TShape(this); shape->Parent = Form1; shape->Shape = stEllipse ; shape->Left = shapeLeft; shape->Top = shapeTop +(i*ecartEntreDeuxCompo) ; shape->Width = shapeWidth ; shape->Height = shapeHeigth ; shape->Brush->Color = couleur ; label = new TLabel(this); label->Parent = Form1; label->Caption = StringGrid1->Cells[0][i] ; label->Left = labelLeft; label->Top = labelTop +(i*ecartEntreDeuxCompo) ; label->Color = couleur ; } }
merci beaucoup sat83 pour ton aide , il fonctionne tres bien
je veut que chaque shape contient tout les chaine de carectere qui existe dans la ligne de StringGrid ( le premier Shape contient tout les carecteres de la 1er ligne de StringGrid, le 2eme shape contient tout les carectere de 2eme ligne de StringGrid ex........) merci d'avance pour votre aide.
Partager