French DrawLine ne s'affiche pas au bon endroit

yfleury

Active Member
Licensed User
Longtime User
j'ai un panel dans un scrollview. Donc je peux faire défiler panel.

dans ce panel, j'ai plusieurs label et je veux tirer un trait horizontal (drawline) d'une épaisseur de 1dip tout juste au-dessus du label mais la ligne se retrouve beaucoup plus basse....

je ne sais pas pourquoi et j'ai tester plusieurs chose sans succès.

B4X:
label1.setlayout(5dip,100dip, 100%x-5dip,40dip)
DessineLigne.DrawLine(5dip, label1.top, 100%x-5dip, label1.top, Colors.Green, 1dip )

et la ligne est beaucoup plus basse que le label1

Merci de me mettre sur une piste

Yves
 

wolf

Member
Licensed User
Longtime User
Pour tout mes panels, scrollview, ... j'utilise une variable z
dim z as int
z = 0 (ou ce que l'on veut pour le haut)

Ensuite pour tous les objets que j'affiche ca donne un truc du type :

XXXXX.addview(labelx, 5dip, z ,largeur, hauteur)
z=z+hauteur + 5dip

en supposant que je veuille 5 dip d'écart entre les objets-labels, button, checkbox etc).

c'est très pratique, on peut du coup déplacer les lignes n'importe où, les objets se repositionnent pile sans avoir à calculer, etc

Et avec cela je met mes "drawlignes" pile ou je veux
 

yfleury

Active Member
Licensed User
Longtime User
tout ce que je veux, c'est d'ajouter une ligne comme séparateur qui sera attacher a un label.

les label sont dans un panel qui est a son tour dans un scrollview.

drawline utilise des x et y en float et pas en int

est-ce que les x et y du drawline sont attacher au scrollview ou au panel

Je ne saisi pas le concept.

Copie de mon log si ca peu aider
------------------------
labelpere top : 324
labelpere hauteur : 60
100%x 100$y : 720 1084
panelgarde : 702 X 3000
GetDeviceLayoutValues : 720 x 1184, scale = 2.0 (320 dpi)
scrollviewmain.Top : 170
scrollviewmain.Height : 900

ligne1 : 398
ligne2 : 478
ligne3 : 538
 

yfleury

Active Member
Licensed User
Longtime User
J'ai fini par résoudre mon problème.

j'avais une hauteur pour mon panel de 1500 et ca me donnait 3000 et je n'arrivais pas a comprendre pourquoi. j'ai mis ma hauteur du panel a 1500dip et puis voilà, tout est rentrer dans l'ordre,
 

yfleury

Active Member
Licensed User
Longtime User
L'idée est bonne en autant que le panel ai une couleur différente des label et que les label ne sois pas transparent. Mais c'est un bonne idée.
 
Top