Gambas France BETA


Pas de compte ? Incription

Création d'une image avec Draw.Begin, Draw.End

Ce sujet est résolu.

1
AuteurMessages
linuxos#1 Posté le 30/1/2012 à 10:19:33
Un peu de sel, de poivre et la crevette sera... Bonjour,

Je suis actuellement en train de migrer toute mon application gbrrdgraphix de Gambas2 en Gambas3 et voila que je me heurte a quelques petits soucis c'est pourquoi je m'en vais requerir votre aide sur ce coups la si vous le voulez bien:

Dans cette application j'ai abusé du Drag/Drop entre divers objets (treeview, listview, gridview, etc) et pour que la manipulation du Drag/Drop soit plus intuitive, lorsque que le débute un Drag, j'ai une une petite fonction qui me crée une Picture transparente dans laquelle je dessine un texte correspondant a ce que je veux 'Drag et Droper' afin de l'assigner a la proprieté Drag.Icon


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
PUBLIC SUB Creer_Icone_Drag_And_Drop(TextValeur AS STRING, CouleurText AS STRING) AS Picture

' Procedure pour créer une icone avec un texte pour le Drag&Drop

DIM NewPicture AS Picture
DIM NewFont AS NEW Font
DIM CouleurTextTemp AS INTEGER

NewPicture = NEW Picture(Len(TextValeur) * 8 + 28, 16, TRUE)

NewFont.Bold = TRUE
NewFont.Size = 8
NewFont.Name = "Sans"

SELECT CASE CouleurText
CASE "Rouge"
CouleurTextTemp = Color.Red
CASE "Bleu"
CouleurTextTemp = Color.Blue
END SELECT

' Creation de l'image
Draw.Begin(NewPicture)
Draw.Background = Color.LightGray
Draw.Foreground = CouleurTextTemp
Draw.Font = NewFont
Draw.Text(Trim(Textvaleur), 1, 1, 8)
Draw.End

NewPicture.Flush()

RETURN NewPicture

END


Hors maintenant cela ne donne rien du tout en Gambas3, le texte est illisible au bout du compte. Je sais que beaucoup de choses ont changées coté dessin entre Draw, Paint, Cairo, etc et j'avoue que je bute sur tout cela.
Si quelqu'un avait une petite idée svp ?

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
linuxos#2 Posté le 30/1/2012 à 11:22:05
Un peu de sel, de poivre et la crevette sera... J'ai épluché le code de l'exemple Drag&Drop et j'ai trouvé mon bonheur:

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
PUBLIC SUB Creer_Icone_Drag_And_Drop(TextValeur AS STRING, CouleurText AS STRING) AS Picture

' Procedure pour créer une icone avec un texte pour le Drag&Drop

DIM NewPicture AS Image
DIM NewFont AS NEW Font
DIM CouleurTextTemp AS INTEGER

NewPicture = NEW Image(Len(TextValeur) * 8 + 28, 16, Color.Transparent)

NewFont.Bold = TRUE
NewFont.Size = 8
NewFont.Name = "Sans"

SELECT CASE CouleurText
CASE "Rouge"
CouleurTextTemp = &H40FF0000
CASE "Bleu"
CouleurTextTemp = &H4000FF00
END SELECT

' Creation de l'image
Paint.Begin(NewPicture)
Paint.Brush = Paint.Color(CouleurTextTemp)
Paint.Font = NewFont
Paint.Text(Trim(Textvaleur), 1, 1, NewPicture.Width, 16, Align.Left)
Paint.Fill
Paint.End

RETURN NewPicture.Picture

END


Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
manu#3 Posté le 30/1/2012 à 19:22:53
Avec Gambas ca roule !C'est bien avec olivier, il fait les questions et les réponses ;)
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
1