Gambas France BETA


Pas de compte ? Incription

label, textlabel,.... (mercredi, 9 décembre 2009, 13:06) par JEAN-YVON

12
AuteurMessages
Admin#1 Posté le 27/12/2009 à 23:06:00
Bonjour,
Comment écrire verticalement?
A part de détailler chaque lettre dans un label et de les assembler en vertical dans un container: Je vois pas
A+
JY

Un bon basic vaut mieux qu'un Bill-Basic
Admin#2 Posté le 27/12/2009 à 23:07:00
mettre une image d'un texte ecris verticalement comme ca par exemple :



Mais bon il y surement mieux a faire
;)
Admin#3 Posté le 27/12/2009 à 23:07:00
Salut,
Je n'y aurais pas pensé...Le truc c'est que je ne sais pas créé ça dans le code. Mon projet c'est de créer des étiquettes de texte vertical sur un graph à partir d'un texte pris dans une BdD.
là, il y a un composant à créer! Avis.....
A+
JY

Un bon basic vaut mieux qu'un Bill-Basic
Admin#4 Posté le 27/12/2009 à 23:08:00
citation:
Le truc c'est que je ne sais pas créé ça dans le code. Mon projet c'est de créer des étiquettes de texte vertical sur un graph à partir d'un texte pris dans une BdD./quote]

C'est bien ce que je craignais. Mon bricolage reste un bricolage...

là, il y à un composant à créer! Avis.....


Sans doute ce sera fait dans Gambas3. Le composant gb.chart à été grandement amélioré a ce que j'en ais compris.
Admin#5 Posté le 27/12/2009 à 23:08:00
Peut être ca :

http://gambaslinux.eg2.fr/articles.php?lng=fr&pg=379


:P :P
Admin#6 Posté le 27/12/2009 à 23:09:00
Ca, ça ne manipule que des images...
il faudrait transformer une chaine de caractères en image et dans gambas je doute que ce soit faisable...

mais peut être que gambix va nous trouver LA solution qui marche
Admin#7 Posté le 27/12/2009 à 23:09:00
Bien le bonjour,
En cliquant sur le lien donné par Spheris, j'avais presque l'espoir qu'il y ait quelque part un truc dans lequel on puisse glisser un texte: Ben, non! Pourtant VB est loin d'être aussi riche(je suis resté au 6)! Il y a même un oilpaint. Super!
A+
JY

Un bon basic vaut mieux qu'un Bill-Basic
Admin#8 Posté le 27/12/2009 à 23:10:00
Vous avez demander un génie?
;)


Dim hPic as New Picture
Dim sMyText as String


sMyText = "toto titi tata"

Draw.Begin(hPic)
'on redimentionne hPic a la taille du text
hPic.Resize(Draw.TextWidth,Draw.TextHeight)
'on remplis le hpic avec une couleur de base
'sinon on a une erreur
hPic.Fill(gb.white)
'On dessine le texte
'mais on pourrait aussi définir (avant le resize)
'la police via draw.font
Draw.Text(sMyText,0,0)
Draw.End


'Alors la on utilise la convertion en image
'pour utilisé la propriété rotate de image
'puis rotate retourne une nouvelle image
'qu'on converti en picture pour la réaffecter a hpic
hPic = hPic.Image.Rotate(90).Picture

--------------------------

Voila ...

en claire pour la dernière manip afin que je n'ai pas a me répeter sur les objets :

dim hPic, hRotpic as picture
dim hImage, hRotImage as image

hImage = hPic.Image
hRotImage = hImage.Rotate(90)
hRotPic = hRotImage.Picture

hPic = hRotPic


en une ligne =
hPic = hPic.Image.Rotate(90).Picture

Du moment que l fonction retourne un objet on peut directement utilisé ses propriété a la suite

Dim Myarray as String

myarray = ["titi", "toto", "tata"]
MyArray.Sort


Peut aussi se dire
if ["titi", "toto", "tata"].Find(s) then ...


sachant que [] retourne un tableau.

Mais aussi on peut faire :
print split(File.Load("myfile"))[1]

Bien allez, je vous laisse digérer ça c'est une partie importante du monde objet
Admin#9 Posté le 27/12/2009 à 23:10:00
Hello Génie!

Quand tu écris du code tu oublies que tu t'adresse à des mortels.....Veux tu je t'en prie etre plus concis:
citation:
Draw.Begin(hPic)

me renvois "bad picture"
Alors, j'ai essayé de débuter mon dessin sur ma feuille (me) ou de dessiner une image sur ma form. Rien....Bon si : draw.begin(me) passe
mais
citation:
'on redimentionne hPic a la taille du text
hPic.Resize(Draw.TextWidth,Draw.TextHeight)

là: il me demande de lui donner des interger et non des fonction alors j'ai conciencieusement convertie:
hPic.Resize(cint(Draw.TextWidth),cint(Draw.TextHeight))
Gambas n'a pas voulu se laisser faire. Heureusement j'en suis arrivé à me dire mais il parle peut etre en GB3
Alors maintenant tu nous le dis: c'est du 2 ou du 3?
A+
JY
PS: excuses pour les autres: j'ai patienté et personne ne répondais alors.....
Admin#10 Posté le 27/12/2009 à 23:11:00
PUBLIC SUB Form_Open()
DIM hPic AS NEW Picture
DIM sText AS String

sText = "coucou"
hPic.Resize(ME.Font.Width(sText), ME.Font.Height(sText))
Draw.Begin(hPic)

hPic.Fill(Color.Transparent)
Draw.Text(sText, 0, 0)
Draw.End

hPic = hPic.Image.Rotate(Rad(90)).Picture

ME.Picture = hPic

END



Bien ce code est bon !

On fait un rad(90) car gambas comme beaucoup de langage parle en radian pas en degrés donc il faut convertir

Comme on dit, Gambas, il y a moins bien, mais c'est payant !
Admin#11 Posté le 27/12/2009 à 23:11:00
Super! un très grand merci!



Je vais pouvoir mettre des légendes verticales sur un graph.
A+
JY

Un bon basic vaut mieux qu'un Bill-Basic
Admin#12 Posté le 27/12/2009 à 23:12:00
Un peu compliqué quand même....

J'espère que c'est plus simple sur Gambas 3
Admin#13 Posté le 27/12/2009 à 23:13:00
Salut à tous
ben, c'est même plus compliqué que ça, puisse qu'on ne peut pas avoir de tableau d'image
Mais ça marche.




Oui, c'est lourd, oui c'est pas encore au point mais ça me plait.
Merci Géni!
A+
JY

Un bon basic vaut mieux qu'un Bill-Basic
:D :D
Admin#14 Posté le 27/12/2009 à 23:13:00
bah ya pas vraiement de manière plus simple de fonctionner.


pour simplifier vous vous faite une fonction qui prend un string pour argument et un entier d'angle et qui retourne un picture

comme ça ya plus qu'a :

mypic = VertText("montext", 90)



Comme on dit, Gambas, il y a moins bien, mais c'est payant !
Admin#15 Posté le 27/12/2009 à 23:13:00
ne peut on pas faire un GRAB sur un label ?
pour créer une image de ce label et pour l'utiliser à foison ?

:lol:
12