Pages: 1
- Sujet précédent - [MB] Fenêtre M_FORMAT_PICK_FILL à partir d'un bouton BrushPicker?? - Sujet suivant
#1 Thu 19 June 2008 11:24
- Miss T.
- Participant assidu
- Lieu: En pleine amazonie...
- Date d'inscription: 17 Oct 2005
- Messages: 294
[MB] Fenêtre M_FORMAT_PICK_FILL à partir d'un bouton BrushPicker??
Bonjour à tous,
(La petite colle du jour?)
Il est possible dans une fenêtre de dialogue d'inclure un jôli bouton BrushPicker. Ce bouton ouvre une boite de dialogue qui ne permet de choisir que la trame du polygone.
En explorant un peu ze web, je suis tombée sur le M_FORMAT_PICK_FILL, qui affiche la fenêtre Style Polygone avec la trame et le contour.
D'où les question à deux balles:
- serait-il possible qu'il bouton de type BrushPicker (où on voit le style de polygone choisi) envoie une fenêtre de type M_FORMAT_PICK_FILL?
- serait-il possible que le style de contour sur le bouton BrushPicker soit modifié lui aussi?
Hors ligne
#2 Thu 19 June 2008 12:24
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [MB] Fenêtre M_FORMAT_PICK_FILL à partir d'un bouton BrushPicker??
Traduction (car j'ai du mal à piger !):
- tu veux créer un bouton BrushPicker où l'icone soit celle du style polygone en cours (trame et contour) ??
- ou tu veux modifier celui de l'interface MI, avec le même objectif ??
Au deux je dirais: impossible....
Mais peut être y a t il une troisième interprétation (ou plus...)
nb: parce qu'un bouton BrushPicker ça envoie une fenêtre M_FORMAT_PICK_FILL , de même qu'un run menu command 502 dans la FMB....
Hors ligne
#3 Thu 19 June 2008 14:05
- Miss T.
- Participant assidu
- Lieu: En pleine amazonie...
- Date d'inscription: 17 Oct 2005
- Messages: 294
Re: [MB] Fenêtre M_FORMAT_PICK_FILL à partir d'un bouton BrushPicker??
Traduction:
- placer un bouton BrushPicker permet d'avoir un bouton montrant la trame de polygone choisi (voir image BrushPicker_bouton.jpg) mais il lance une fenêtre ne permettant de choisir que la trame du polygone (voir image BrushPicker.jpg)
- placer un bouton normal lançant la commande run menu command M_FORMAT_PICK_FILL permet d'obtenir la fenêtre de configuration des styles habituelle (voir image M_FORMAT_PICK_FILL.jpg).
D'où la question: est-il possible d'avoir un bouton à l'allure "BrushPicker" (dont la trame et le contour du polygone sont modifiables) qui lancerait une fenêtre de type "M_FORMAT_PICK_FILL"?
Dernière modification par Miss T. (Thu 19 June 2008 14:06)
Hors ligne
#5 Thu 19 June 2008 18:25
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [MB] Fenêtre M_FORMAT_PICK_FILL à partir d'un bouton BrushPicker??
Je dirais quelque chose comme ça:
Dim reg_brush as brush
Dialog title "Choix de trame et contour"
Control BrushPicker
Into reg_brush
Value CurrentBrush()
Disable
Control OKButton
Control CancelButton
If CommandInfo(Cmd_Info_dlg_OK) then run menu command 502 End If
Hors ligne
#6 Fri 20 June 2008 10:38
- Miss T.
- Participant assidu
- Lieu: En pleine amazonie...
- Date d'inscription: 17 Oct 2005
- Messages: 294
Re: [MB] Fenêtre M_FORMAT_PICK_FILL à partir d'un bouton BrushPicker??
En effet, c'est un bon début: je désactive le brushbutton et place dessous un bouton de même taille et même emplacement qui appelle ma fonction M_FORMAT_PICK_FILL et met à jour le style du bouton avec currentbrush().
Dernier soucis: comment mettre à jour le bouton brushbutton, y compris avec le style de contour choisi?
Hors ligne
#7 Fri 20 June 2008 11:18
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [MB] Fenêtre M_FORMAT_PICK_FILL à partir d'un bouton BrushPicker??
Avec CurrentBrush() les 2 aspects (trame et contour) sont représentés
Il faut donc, avant de l'utiliser, le redéfinir par Set Style Brush MakeBrush(a, b, c) et Set Style BorderPen MakePen(d, e, f) , les valeurs de a à f étant obtenues par le choix fait et/ou par un StyleAttr()....
Hors ligne
#8 Fri 20 June 2008 14:41
- Miss T.
- Participant assidu
- Lieu: En pleine amazonie...
- Date d'inscription: 17 Oct 2005
- Messages: 294
Re: [MB] Fenêtre M_FORMAT_PICK_FILL à partir d'un bouton BrushPicker??
Bon sang!
Rien à faire, le code suivant ne modifie pas le contour du polygone du bouton brush (mais la trame, si):
Code:
Sub Main Dialog Title "La belle fenêtre!!" Width 345 Height 384 Control StaticText Position 87,118 Width 48 Height 10 Title "Style par déf.:" Control BrushPicker Position 135,113 Width 20 Height 20 calling ModifStyleDef ID 2100 'Into reg_brush Value CurrentBrush() Disable Control Button Position 135,113 Width 20 Height 20 Title "." calling ModifStyleDef If CommandInfo(CMD_INFO_DLG_OK) Then print "Youpiiiiiiiii!" End Sub '--------------------------------------------------------------- Sub ModifStyleDef dim a, b, c, d, e, f as integer print currentbrush() & chr$(10) & CurrentBorderPen() run menu command M_FORMAT_PICK_FILL a = styleAttr(currentbrush(), BRUSH_PATTERN) b = styleAttr(currentbrush(), BRUSH_FORECOLOR) c = styleAttr(currentbrush(), BRUSH_BACKCOLOR) d = styleAttr(CurrentBorderPen(), PEN_WIDTH) e = styleAttr(CurrentBorderPen(), PEN_PATTERN) f = styleAttr(CurrentBorderPen(), PEN_COLOR) Set Style Brush MakeBrush(a, b, c) Set Style BorderPen MakePen(d, e, f) print currentbrush() & chr$(10) & CurrentBorderPen() ' j'ai vérifié, le CirrentBorderPen est bien modifié Alter Control 2100 value currentbrush() end sub
Tu as une idée du pourkoi qu'ça foire?
Hors ligne
#9 Fri 20 June 2008 16:41
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [MB] Fenêtre M_FORMAT_PICK_FILL à partir d'un bouton BrushPicker??
Pas moyen de raffraichir ce fichu BrushPicker....
Seule bidouille trouvée: enlever le dialogue et le recréer
nb: quelques corrections au passage....
Code:
Sub Main Dialog Title "La belle fenêtre!!" Width 345 Height 384 Control StaticText Position 87,118 Width 48 Height 10 Title "Style par défaut:" Control BrushPicker Position 135,113 Width 20 Height 20 ID 2100 Value CurrentBrush() Disable Control Button Position 135,113 Width 20 Height 20 Title "" calling ModifStyleDef End Sub '--------------------------------------------------------------- Sub ModifStyleDef Dialog remove run menu command M_FORMAT_PICK_FILL Dialog Title "La belle fenêtre!!" Width 345 Height 384 Control StaticText Position 87,118 Width 48 Height 10 Title "Style par défaut:" Control BrushPicker Position 135,113 Width 20 Height 20 ID 2100 Value CurrentBrush() Disable Control Button Position 135,113 Width 20 Height 20 Title "" calling ModifStyleDef
Hors ligne
#10 Thu 26 June 2008 16:26
- Miss T.
- Participant assidu
- Lieu: En pleine amazonie...
- Date d'inscription: 17 Oct 2005
- Messages: 294
Re: [MB] Fenêtre M_FORMAT_PICK_FILL à partir d'un bouton BrushPicker??
OK, ça marche.
Sauf que je dois faire ça pour deux styles: le style objets "par défaut" et objet "en cours".
Le code suivant me permet de relancer ma fenêtre qui s'initialisait avec le sub main2. Le problème est que lorsqu'on modifie le style CurrentBorderPen, ce sont les deux contours sur les BrushPicker qui se mettent à jour,et essayer de les modifier un à un ne sert à rien vu qu'il faut relancer la fenêtre pour mettre le contour à jour...
Code:
Sub main 'config' des styles par défaut sinon message d'erreur (je ne sais pas pourquoi, un OnError ne détecte pas l'absence de définition de DefaultBrush ou CurBrush) DefaultBrush = MakeBrush (1,8421504, -1) CurBrush = MakeBrush (16,8421504, -1) Set Style BorderPen MakePen(2,2,8421504) call main2 end sub Sub Main2 Dialog Title "Oh la belle fenêtre" Width 345 Height 384 'les boutons de choix de styles par défaut ou pour l'objet courant Control StaticText Position 87,118 Width 48 Height 10 Title "Style par déf.:" Control BrushPicker Position 135,113 Width 20 Height 20 calling ModifStyleDef ID 2100 'Into reg_brush Value DefaultBrush Disable Control Button Position 135,113 Width 20 Height 20 Title "." calling ModifStyleDef Control StaticText Position 161,118 Width 53 Height 10 Title "Cadre en cours:" Control BrushPicker Position 215,113 Width 20 Height 20 calling ModifStyleCur ID 2200 'Into reg_brush Value CurBrush Disable Control Button Position 215,113 Width 20 Height 20 Title "." calling ModifStyleCur end sub Sub ModifStyleDef run menu command M_FORMAT_PICK_FILL DefaultBrush = currentbrush() Dialog remove call Main2 end sub Sub ModifStyleCur run menu command M_FORMAT_PICK_FILL CurBrush = currentbrush() Dialog remove call Main2 end sub
J'ai aussi essayé de faire un set Style entre les deux control BrushPicker mais MB n'apprécie pas du tout.
Si pas d'idées, tant pis, je me rabats sur le double bouton "Brushpicker" et "penpicker". Mais c'est moche.
Dernière modification par Miss T. (Thu 26 June 2008 16:29)
Hors ligne
Pages: 1
- Sujet précédent - [MB] Fenêtre M_FORMAT_PICK_FILL à partir d'un bouton BrushPicker?? - Sujet suivant