une fenetre etrangement simple
une fenetre etrangement simple
Peut on afficher une fenetre graphique sans bord ni barre de titre et dans la taille que l'on veux; style une fenetre de 130 pix/ 80 pix ??
Si oui, ca se passe ou? Quand? Comment? Sur terre?
Meme question mais pour un sprite (sans fenetre donc, mais simplement affiché sur le bureau de windows)
Si oui, ca se passe ou? Quand? Comment? Sur terre?
Meme question mais pour un sprite (sans fenetre donc, mais simplement affiché sur le bureau de windows)
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Pour un sprite ou une image, tu dois obligatoirement l'afficher sur une window/ ou un screen. Mais encore une fois, tu peux utiliser la constante pour enlever les bordures et on aura l'impression que c'est une image "volante".
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
le soldat nous avait fait un truc geant pour faire des fenetres de la forme que tu veux
c'est un exemple a méditer , une fenetre ronde ça te dit ?
c'est un exemple a méditer , une fenetre ronde ça te dit ?

Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.90
;
; Explication du programme :
; Donner à une fenêtre une forme spécifique. Par exemple faire une fenêtre ronde ou triangulaire.
Enumeration
#Quitter
#Forme1
#Forme2
#Forme3
#Forme4
#Forme5
EndEnumeration
Procedure Forme()
If GetGadgetState(#Forme1) ; si on a choisi la forme 1
Region = CreateRoundRectRgn_(0, 0, WindowWidth(), WindowHeight(), 40, 60) ; Création de la région pour faire une fenêtre avec les angles arrondis
; CreateRoundRectRgn_(X1, Y1, X2, Y2, R1, R2)
; X1, Y1 : coordonné du point haut gauche de la region
; X1, Y1 : coordonné du point haut gauche de la region
; R1, R2 : rayon de l'ellipse qui va servir à arrondir les angles de la region
SetWindowRgn_(WindowID(), Region, #True) ; On applique la région
DeleteObject_(Region) ; On supprime la région
ElseIf GetGadgetState(#Forme2) ; si on a choisi la forme 2
Region = CreateEllipticRgn_(0, 0, WindowWidth(), WindowHeight()) ; Création de la région pour faire une fenêtre elliptique
; CreateEllipticRgn_(X1, Y1, X2, Y2)
; X1, Y1 : coordonné du point haut gauche de la region
; X1, Y1 : coordonné du point haut gauche de la region
SetWindowRgn_(WindowID(), Region, #True) ; On applique la région
DeleteObject_(Region) ; On supprime la région
ElseIf GetGadgetState(#Forme3) ; si on a choisi la forme 3
Region = CreatePolygonRgn_(?Triangle, 4, #Alternate) ; Création de la région pour faire une fenêtre elliptique
; CreateRoundRectRgn_(Array, NbPoints, Type)
; Array : Adresse de la liste ou de la Data
; NbPoints : Nombre de points du polygone + 1 (car on fait une boucle donc on a 2 fois le premier point)
; Type : Voir msdn
SetWindowRgn_(WindowID(), Region, #True) ; On applique la région
DeleteObject_(Region) ; On supprime la région
ElseIf GetGadgetState(#Forme4) ; si on a choisi la forme 4
Region1 = CreateRectRgn_(0, 0, WindowWidth(), WindowHeight()) ; Création d'une région en rectangle
Region2 = CreateRectRgn_(10, 10, WindowWidth() - 10, 50) ; Création d'une région en rectangle
; CreateRectRgn_(X1, Y1, X2, Y2)
; X1, Y1 : coordonné du point haut gauche de la region
; X1, Y1 : coordonné du point haut gauche de la region
CombineRgn_(Region1, Region1, Region2, #RGN_DIFF) ; On combine les 2 régions
; Les modes suivants sont disponibles :
; #RGN_AND : Intersection
; #RGN_OR : Union
; #RGN_DIFF : Différences
; #RGN_XOR : Union moins les intersections
SetWindowRgn_(WindowID(), Region1, #True) ; On applique la région finale
DeleteObject_(Region1) ; On supprime les régions
DeleteObject_(Region2)
ElseIf GetGadgetState(#Forme5) ; si on a choisi la forme 5
Region1 = CreatePolygonRgn_(?Triangle, 4, #Alternate)
Region2 = CreateEllipticRgn_(0, 0, WindowWidth(), WindowHeight())
CombineRgn_(Region1, Region1, Region2, #RGN_OR) ; On combine les 2 régions
SetWindowRgn_(WindowID(), Region1, #True) ; On applique la région finale
DeleteObject_(Region1) ; On supprime les régions
DeleteObject_(Region2)
EndIf
EndProcedure
; Création de la fenêtre et dela GadgetList
If OpenWindow(0, 0, 0, 400, 400, #PB_Window_Borderless | #PB_Window_ScreenCentered, "Test") = 0 Or CreateGadgetList(WindowID(0)) = 0
End
EndIf
; Création des boutons et de l'option d'affichage
ButtonGadget(#Quitter, 100, 100, 200, 20, "Quitter")
OptionGadget(#Forme1, 100, 125, 200, 15, "Angles arrondis")
OptionGadget(#Forme2, 100, 140, 200, 15, "Ronde")
OptionGadget(#Forme3, 100, 155, 200, 15, "Triangle")
OptionGadget(#Forme4, 100, 170, 200, 15, "Trouée")
OptionGadget(#Forme5, 100, 185, 200, 15, "Triangle + Rond")
Repeat
Event = WaitWindowEvent()
If Event = #PB_EventGadget
Select EventGadgetID() ; boutons, zone de texte, ...
Case #Quitter
Event = #PB_EventCloseWindow ; On quitte
Default
Forme() ; sinon, on change la forme de la fenêtre
EndSelect
EndIf
Until Event = #PB_EventCloseWindow
End
DataSection
Triangle :
Data.l 200, 400, 0, 0, 400, 0, 200, 400 ; Coordonnées des points du triangle en x, y (il faut faire une boucle donc on revient au premier point du triangle
EndDataSection
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
j'avais pas de forfait internet potable !! donc j'ai eu envie de te repondre
mais le cout des connections m'a freiné !!
maintenant ça va
voici ton exemple basé sur le code du soldat :
il gere plusieur forme !!
mais le cout des connections m'a freiné !!
maintenant ça va

voici ton exemple basé sur le code du soldat :
il gere plusieur forme !!

Code : Tout sélectionner
; prg crée par Dobro
; en pure basic 3.94 beta4
; a l'aide de Japbe !!! <--ça marche avec !! :D
InitSprite()
InitMouse()
Declare Forme(forme)
If OpenWindow(0, 0, 0, 400, 400, #PB_Window_BorderLess | #PB_Window_ScreenCentered, "Test") = 0 Or CreateGadgetList(WindowID(0)) = 0
End
EndIf
WindowID = WindowID(0)
OpenWindowedScreen(WindowID, 0, 0, 400, 400, AutoStretch, 1, 1)
CreateSprite(1, 32,32)
StartDrawing(SpriteOutput(1))
Box(0, 0,32, 32,RGB($F1,$FD,$1A) )
StopDrawing()
Forme(2)
; change le chifre = change la forme !!!
; forme(0) = rectangle
; Forme(1) = rectangle avec bord arrondi
; Forme(2)= rond !!!
; Forme(3)=Triangle
; forme(4)=rectangle avec trou
; forme(5)=rond+triangle
sensx=10/2
sensy=16/2
Repeat
ExamineMouse()
If MouseButton(2) ; si clique bouton droit
End ; on quitte
EndIf
xp=xp+sensx
yp=yp+sensy
If xp+32>400 : sensx=-sensx:EndIf
If xp<0 : sensx=-sensx:EndIf
If yp+32>400 : sensy=-sensy:EndIf
If yp<0 : sensy=-sensy:EndIf
DisplaySprite(1, xp, yp)
FlipBuffers()
ClearScreen(255, 100, 100)
ForEver
End
; les procedures
Procedure Forme(forme)
Select forme
Case 1
Region = CreateRoundRectRgn_(0, 0, WindowWidth(), WindowHeight(), 40, 60) ; Création de la région pour faire une fenêtre avec les angles arrondis
; CreateRoundRectRgn_(X1, Y1, X2, Y2, R1, R2)
; X1, Y1 : coordonné du point haut gauche de la region
; X1, Y1 : coordonné du point haut gauche de la region
; R1, R2 : rayon de l'ellipse qui va servir à arrondir les angles de la region
SetWindowRgn_(WindowID(), Region, #True) ; On applique la région
DeleteObject_(Region) ; On supprime la région
Case 2
Region = CreateEllipticRgn_(0, 0, WindowWidth(), WindowHeight()) ; Création de la région pour faire une fenêtre elliptique
; CreateEllipticRgn_(X1, Y1, X2, Y2)
; X1, Y1 : coordonné du point haut gauche de la region
; X1, Y1 : coordonné du point haut gauche de la region
SetWindowRgn_(WindowID(), Region, #True) ; On applique la région
DeleteObject_(Region) ; On supprime la région
Case 3
Region = CreatePolygonRgn_(?Triangle, 4, #ALTERNATE) ; Création de la région pour faire une fenêtre elliptique
; CreateRoundRectRgn_(Array, NbPoints, Type)
; Array : Adresse de la liste ou de la Data
; NbPoints : Nombre de points du polygone + 1 (car on fait une boucle donc on a 2 fois le premier point)
; Type : Voir msdn
SetWindowRgn_(WindowID(), Region, #True) ; On applique la région
DeleteObject_(Region) ; On supprime la région
Case 4 ; rectangle
Region1 = CreateRectRgn_(0, 0, WindowWidth(), WindowHeight()) ; Création d'une région en rectangle
Region2 = CreateRectRgn_(10, 10, WindowWidth() - 10, 50) ; Création d'une région en rectangle
; CreateRectRgn_(X1, Y1, X2, Y2)
; X1, Y1 : coordonné du point haut gauche de la region
; X1, Y1 : coordonné du point haut gauche de la region
CombineRgn_(Region1, Region1, Region2, #RGN_DIFF) ; On combine les 2 régions
; Les modes suivants sont disponibles :
; #RGN_AND : Intersection
; #RGN_OR : Union
; #RGN_DIFF : Différences
; #RGN_XOR : Union moins les intersections
SetWindowRgn_(WindowID(), Region1, #True) ; On applique la région finale
DeleteObject_(Region1) ; On supprime les régions
DeleteObject_(Region2)
Case 5
Region1 = CreatePolygonRgn_(?Triangle, 4, #ALTERNATE)
Region2 = CreateEllipticRgn_(0, 0, WindowWidth(), WindowHeight())
CombineRgn_(Region1, Region1, Region2, #RGN_OR) ; On combine les 2 régions
SetWindowRgn_(WindowID(), Region1, #True) ; On applique la région finale
DeleteObject_(Region1) ; On supprime les régions
DeleteObject_(Region2)
EndSelect
EndProcedure
DataSection
Triangle :
Data.l 200, 400, 0, 0, 400, 0, 200, 400 ; Coordonnées des points du triangle en x, y (il faut faire une boucle donc on revient au premier point du triangle
EndDataSection
Dobro !!kelly a écrit :@Dodo
Je vais etudier ton code avec minutie
THX

le Dobro estun instrument de music qui resemble a une guitare ! mais
au lieu d'une table d'harmonie pour amplifier le son des cordes , le Dobro
dispose d'un resonateur , un cone metallique tres fin sur lequel repose les cordes , le Dobro a ete popularisé par Mark knopfler (Dires-straits)
Mais existe depuis 1926 !

et j'en possede un ! d'ou mon pseudo

Tu dois fierement ressortir ton speach a chaque fois. Ca doit couter cher =)
je sais pas comment il faut que je prenne ça

et pour skiner des fenetre tu as ce lien qui t'indiquera une piste !
http://purebasic.hmt-forum.com/viewtopic.php?t=2937
Dernière modification par Backup le dim. 07/août/2005 18:15, modifié 2 fois.
cela pouvais etre pris facilement dans l'autre sens non ?
Mettons que j'ai rien dit !
je viens de réediter mon message pour virer le coté argneux
désolé pour la meprise !
pour les Dobro voici un lien qui en contient d'autre
en Français pour tout savoir sur ces merveilles
http://www.membres.lycos.fr/resophonic/


Mettons que j'ai rien dit !

je viens de réediter mon message pour virer le coté argneux

désolé pour la meprise !

pour les Dobro voici un lien qui en contient d'autre
en Français pour tout savoir sur ces merveilles
http://www.membres.lycos.fr/resophonic/

Un Dobro ! 
oui le model de Mark knofler est un Style 0 de 1926 !! (tres rare)
il est de marque "National"
on appel ces instruments des Dobro car on ne peut pas appeler ça des Guitare (il a bien fallu leur donner un nom !!)
et Dobro est aussi une Marque !! j'explique :
dobro viens de DOpeyra BROsers les freres dopeyra on inventé et fabriqué ces instruments avant l'invention des Ampli guitare !!
a l'epoque il fallait avoir un instrument qui puisse sonner aussi fort qu'un piano !
alors il ont inventé ce systeme de production sonore a base de "resonateur"
les 2 freres Dopeyra ont donc crée la Dobro compagnie , puis ensuite l'un des deux freres est partie pour créé la "National Compagnie"
Dobro faisais des instrument en Bois (toujours avec un resonateur)
comme la photo qui apparait dans le lien que j'ai mis !
et National , faisait des Dobros en metal (Bronze-cuivre-Nickel-Chrome)
(comme celui de Mark choux fleur)
et puis ensuite les deux compagnie fabriquaient des instruments en bois et en metal !!
la National compagnie a fait Faillite , il ne restai plus que Dobro Compagnie , puis plus tard Dobro a ete revendu a OMI puis tres vite
revendu a Gibson !!!
il existe une Marque National basé a toulouse qui comercialise des Dobro, mais cela n'a rien a voir avec La National Compagnie !
aujourd'hui ED Dopeyra l'inventeur du resonateur vit toujours !
il est conseillé chez Gibson pour la fabrication des Dobro de la Marque Dobro!
Mon Dobro (Metal)est une Replique d'un model de l'année 1930 !!
Fait sous la direction de ED dopeyra chez Gibson ! il date de 1988
c'est un model (custom) aniversaire de la fabrication du meme model chez National du coup le logo de mon Dobro est un Logo avec le look
du 2eme Logo National , mais avec Marqué dessus "By Dobro"
voila je mettrais des Photos a l'ocasion si tu veux voir !
pour repondre a ta question ! oui les Dobro se Fabrique toujours !!
Malheureusement il existe beaucoup de Copie Chinoise ect..
qui a mon avis ternisse les Vrais !
(Son pourri !)

oui le model de Mark knofler est un Style 0 de 1926 !! (tres rare)
il est de marque "National"
on appel ces instruments des Dobro car on ne peut pas appeler ça des Guitare (il a bien fallu leur donner un nom !!)
et Dobro est aussi une Marque !! j'explique :
dobro viens de DOpeyra BROsers les freres dopeyra on inventé et fabriqué ces instruments avant l'invention des Ampli guitare !!
a l'epoque il fallait avoir un instrument qui puisse sonner aussi fort qu'un piano !
alors il ont inventé ce systeme de production sonore a base de "resonateur"
les 2 freres Dopeyra ont donc crée la Dobro compagnie , puis ensuite l'un des deux freres est partie pour créé la "National Compagnie"
Dobro faisais des instrument en Bois (toujours avec un resonateur)
comme la photo qui apparait dans le lien que j'ai mis !
et National , faisait des Dobros en metal (Bronze-cuivre-Nickel-Chrome)
(comme celui de Mark choux fleur)
et puis ensuite les deux compagnie fabriquaient des instruments en bois et en metal !!
la National compagnie a fait Faillite , il ne restai plus que Dobro Compagnie , puis plus tard Dobro a ete revendu a OMI puis tres vite
revendu a Gibson !!!
il existe une Marque National basé a toulouse qui comercialise des Dobro, mais cela n'a rien a voir avec La National Compagnie !
aujourd'hui ED Dopeyra l'inventeur du resonateur vit toujours !
il est conseillé chez Gibson pour la fabrication des Dobro de la Marque Dobro!
Mon Dobro (Metal)est une Replique d'un model de l'année 1930 !!
Fait sous la direction de ED dopeyra chez Gibson ! il date de 1988
c'est un model (custom) aniversaire de la fabrication du meme model chez National du coup le logo de mon Dobro est un Logo avec le look
du 2eme Logo National , mais avec Marqué dessus "By Dobro"
voila je mettrais des Photos a l'ocasion si tu veux voir !

pour repondre a ta question ! oui les Dobro se Fabrique toujours !!
Malheureusement il existe beaucoup de Copie Chinoise ect..
qui a mon avis ternisse les Vrais !
