Page 1 sur 1

[Resolu] Faire que le programme force Purebasic en X86 ?

Publié : jeu. 06/sept./2012 16:45
par Micoute
Je souhaiterais que mon "programme.pb" démarre l'éditeur PureBasic en 32 bits et ça je ne sais pas faire !
J'ai pensé à mettre à la fin de mon programme, la lithanie que laisse l'éditeur, est-ce une solution ?
Peut-être y-a-t'il mieux ! Mille mercis par avance.

Re: Comment faire pour que le programme force Purebasic en X

Publié : jeu. 06/sept./2012 17:38
par Ar-S
Tu fais un clique droit sur ton fichier .pb -> ouvrir avec -> et dans la liste tu sélectionnes ou tu vas chercher ton editeur 32bits.

Re: [Resolu] Faire que le programme force Purebasic en X86 ?

Publié : jeu. 06/sept./2012 17:46
par Micoute
Ok ! Merci beaucoup.

Re: [Resolu] Faire que le programme force Purebasic en X86 ?

Publié : jeu. 06/sept./2012 19:17
par falsam
Une autre solution consiste à déclarer plusieurs compilateurs dans son IDE
Voir tuto : http://www.purebasic.fr/french/viewtopi ... 21&t=13137 (Tout frais)

Re: [Resolu] Faire que le programme force Purebasic en X86 ?

Publié : jeu. 06/sept./2012 20:21
par Micoute
En fait, c'est un programme créé par un autre dont voici l'exemple :

Code : Tout sélectionner

XIncludeFile "Bouton maison.pbi"
Enumeration
	#Fenetre_principale
	#Fenetre_apercu
EndEnumeration
Enumeration
	#Texte_ChoisirIcone
	#Texte_Nbre_Boutons
	#Option_1_bouton
	#Option_2_boutons
	#Option_3_boutons
	#Texte_Option_1_bouton
	#Texte_Option_2_boutons
	#Texte_Option_3_boutons
	#Bouton_1_btn
	#Bouton_2_btn
	#Bouton_3_btn
	#Texte_des_boutons
	#Texte_Bouton_1
	#ComboBox_1
	#Texte_bouton_2
	#Texte_bouton_3
	#ComboBox_2
	#ComboBox_3
	#Option_son
	#Texte_titre_message
	#Chaine_message
	#Texte_EntrerMessage
	#Bouton_sans_icone
	#Editor_message
	#Bouton_Apercu
	#Bouton_Valider
	#Bouton_Quitter
	#Frame3D_Boutons
	#Frame3D_Icones
	#ButtonImage_1_btn
	#ButtonImage_2_btn
	#ButtonImage_3_btn
	#Bouton_Info
	#Bouton_Question
	#Bouton_Attention
	#Bouton_Erreur
	#Image
	#Image_1
	#Image_2
	#Image_3
	#Image_4
	#Fichier
EndEnumeration
;- Image Plugins
UsePNGImageDecoder()

Global.i Image1, Image2, Image3, Image4 ; Icônes sur nos boutons
Global.i NbreBoutons ; Nombre de boutons du requester
Global.i ValeurCombo1, ValeurCombo2, ValeurCombo3 ;Valeur renvoyée par chaque combo
Global.i Image; Id de l'icône du requester
Global.s Elements ; Eléments de la liste de chaque combo
Global.s Resultat1, Resultat2, Resultat3 ; texte renvoyé par les combos
Global Icone$ ; Icône affichée dans le requester
Global.s FichierSource = #PB_Compiler_FilePath + "Requester perso.pb"
;- Catch Images
Image1 = CatchImage(#Image_1, ?Image1); Icône Info
Image2 = CatchImage(#Image_2, ?Image2); Icône Question
Image3 = CatchImage(#Image_3, ?Image3); Icône Attention
Image4 = CatchImage(#Image_4, ?Image4); Icône Erreur

;- Images
DataSection
	Image1:
	IncludeBinary "icônes\information 3.png"
	Image2:
	IncludeBinary "icônes\question 3.png"
	Image3:
	IncludeBinary "icônes\attention 3.png"
	Image4:
	IncludeBinary "icônes\erreur 3.png"
	ImageSon:
	IncludeBinary "icônes\son.ico"
EndDataSection

Procedure Apercu()	
	Protected.i Bouton1=1, Bouton2=2, Bouton3=3, Icone=4, Texte=5
	
	OpenWindow(#Fenetre_apercu, 0, 0, 300, 150, GetGadgetText(#Chaine_message),#PB_Window_SystemMenu|#PB_Window_ScreenCentered)	
	
	If Resultat1 ; texte renvoyé par le combo1
		Init_BoutonPerso(1, 75, 30, GetWindowColor(#Fenetre_apercu), $FFFFFF, $E60B00, $FFFFFF, $E60B00, 0, 1)	
		CreerBouton(Bouton1, #Fenetre_apercu, Resultat1, 20, WindowHeight(#Fenetre_apercu)-50, 0)
	EndIf	
	
	If Resultat2 ; texte renvoyé par le combo2
		Init_BoutonPerso(1, 75, 30, GetWindowColor(#Fenetre_apercu), $FFFFFF, $1C00FF, $FFFFFF, $1C00FF, 0, 1)
		CreerBouton(Bouton2, #Fenetre_apercu, Resultat2, 115, WindowHeight(#Fenetre_apercu)-50, 0)
	EndIf	
	
	If Resultat3 ; texte renvoyé par le combo3
		Init_BoutonPerso(1, 75, 30, GetWindowColor(#Fenetre_principale), $FFFFFF, $019B24, $FFFFFF, $019B24, 0, 1)
		CreerBouton(Bouton3, #Fenetre_apercu, Resultat3, 210, WindowHeight(#Fenetre_apercu)-50, 0)
	EndIf
	
	If Image
		ImageGadget(Icone, 5,5,40,40, Image); Icône du requester
	EndIf
	
	Texte$ = GetGadgetText(#Editor_message); Texte du requester
	TextGadget(Texte, 60, 20, 200, 80, Texte$)
	
	Repeat
		Select WaitWindowEvent()
			Case #PB_Event_Gadget
				Select EventGadget()
					Case Bouton1
						Debug ValeurCombo1
					Case Bouton2
						Debug ValeurCombo2
					Case Bouton3
						Debug ValeurCombo3
				EndSelect
			Case #PB_Event_CloseWindow
				Select EventWindow()
					Case #Fenetre_apercu
						CloseWindow(#Fenetre_apercu)
						Break
				EndSelect
		EndSelect
		VerifierSurvolBouton(#Fenetre_apercu)
	ForEver
EndProcedure

Procedure CreerCode()
	If FileSize(FichierSource) 
		DeleteFile(FichierSource)
		CreateFile(#Fichier, FichierSource)
		OpenFile(#Fichier, FichierSource)
		
		WriteStringN(#Fichier, "XIncludeFile "+Chr(34)+"Bouton maison.pbi"+Chr(34))
		WriteStringN(#Fichier, "Enumeration")
		WriteStringN(#Fichier, "	#Fenetre_principale")
		WriteStringN(#Fichier, "	#Titre")
		WriteStringN(#Fichier, "	#Icone")
		WriteStringN(#Fichier, "	#message")
		WriteStringN(#Fichier, "	#Bouton1")
		WriteStringN(#Fichier, "	#Bouton2")
		WriteStringN(#Fichier, "	#Bouton3")
		WriteStringN(#Fichier, "EndEnumeration")
		WriteStringN(#Fichier, "")
		WriteStringN(#Fichier, ";- Image Plugins")
		WriteStringN(#Fichier, "UsePNGImageDecoder()")
		WriteStringN(#Fichier, "")
		WriteStringN(#Fichier, "Global.i NbreBoutons ; Nombre de boutons du requester")
		WriteStringN(#Fichier, "Global.i Image; Id de l'icone du requester")
		WriteStringN(#Fichier, "Global Icone$ ; Icone affichee dans le requester")
		WriteStringN(#Fichier, "")
		WriteStringN(#Fichier, "Procedure RequesterPerso()")
		WriteStringN(#Fichier, "	Protected.i Bouton1=1, Bouton2=2, Bouton3=3, Icone=4, Texte=5")
		WriteStringN(#Fichier, "")
		WriteStringN(#Fichier, "	OpenWindow(#Fenetre_principale, 0, 0, 300, 150, "+Chr(34)+GetGadgetText(#Chaine_message)+Chr(34)+",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)")
		WriteStringN(#Fichier, "")
		If NbreBoutons = 1 Or NbreBoutons = 2 Or NbreBoutons = 3
			WriteStringN(#Fichier, "	Init_BoutonPerso(1, 75, 30, GetWindowColor(#Fenetre_principale), $FFFFFF, $E60B00, $FFFFFF, $E60B00, 0, 1)")
			WriteStringN(#Fichier, "	CreerBouton(Bouton1, #Fenetre_principale, "+Chr(34)+Resultat1+Chr(34)+", 20, WindowHeight(#Fenetre_principale)-50, 0)")
			WriteStringN(#Fichier, "")
		EndIf
		If NbreBoutons = 2	Or NbreBoutons =3
			WriteStringN(#Fichier, "	Init_BoutonPerso(1, 75, 30, GetWindowColor(#Fenetre_principale), $FFFFFF, $1C00FF, $FFFFFF, $1C00FF, 0, 1)")
			WriteStringN(#Fichier, "	CreerBouton(Bouton2, #Fenetre_principale, "+Chr(34)+Resultat2+Chr(34)+", 115, WindowHeight(#Fenetre_principale)-50, 0)")
			WriteStringN(#Fichier, "")
		EndIf
		If NbreBoutons = 3
			WriteStringN(#Fichier, "	Init_BoutonPerso(1, 75, 30, GetWindowColor(#Fenetre_principale), $FFFFFF, $019B24, $FFFFFF, $019B24, 0, 1)")
			WriteStringN(#Fichier, "	CreerBouton(Bouton3, #Fenetre_principale, "+Chr(34)+Resultat3+Chr(34)+", 210, WindowHeight(#Fenetre_principale)-50, 0)")
			WriteStringN(#Fichier, "")
		EndIf
		WriteStringN(#Fichier, "	ImageGadget("+Str(Icone)+", 5,5,40,40, "+Str(Image)+"); Icone du requester")
		WriteStringN(#Fichier, "")
		WriteStringN(#Fichier, "	TextGadget(Texte, 60, 20, 200, 80, "+Chr(34)+GetGadgetText(#Editor_message)+Chr(34)+")")
		WriteStringN(#Fichier, "")
		WriteStringN(#Fichier, "	Repeat")
		WriteStringN(#Fichier, "		Select WaitWindowEvent()")
		WriteStringN(#Fichier, "			Case #PB_Event_Gadget")
		WriteStringN(#Fichier, "				Select EventGadget()")
		WriteStringN(#Fichier, "					Case Bouton1")
		WriteStringN(#Fichier, "						Debug "+Str(ValeurCombo1))
		WriteStringN(#Fichier, "					Case Bouton2")
		WriteStringN(#Fichier, "						Debug "+Str(ValeurCombo2))
		WriteStringN(#Fichier, "					Case Bouton3")
		WriteStringN(#Fichier, "						Debug "+Str(ValeurCombo3))
		WriteStringN(#Fichier, "				EndSelect")
		WriteStringN(#Fichier, "			Case #PB_Event_CloseWindow")
		WriteStringN(#Fichier, "			Select EventWindow()")
		WriteStringN(#Fichier, "				Case #Fenetre_principale")
		WriteStringN(#Fichier, "					CloseWindow(#Fenetre_principale)")
		WriteStringN(#Fichier, "					Break")
		WriteStringN(#Fichier, "			EndSelect")
		WriteStringN(#Fichier, "		EndSelect")
		WriteStringN(#Fichier, "		VerifierSurvolBouton(#Fenetre_principale)")
		WriteStringN(#Fichier, "	ForEver")
		WriteStringN(#Fichier, "EndProcedure")
		WriteStringN(#Fichier, "")
		WriteStringN(#Fichier, "RequesterPerso()")		
		WriteStringN(#Fichier, "")
		WriteStringN(#Fichier, "; IDE Options = PureBasic 4.61 (Windows - x64)")
		WriteStringN(#Fichier, "; CursorPosition = 1")
		WriteStringN(#Fichier, "; FirstLine = 1")
		WriteStringN(#Fichier, "; Folding = -")
		WriteStringN(#Fichier, "; EnableUnicode")
		WriteStringN(#Fichier, "; EnableThread")
		WriteStringN(#Fichier, "; EnableOnError")
		WriteStringN(#Fichier, "; CompileSourceDirectory")
		WriteStringN(#Fichier, "; Compiler = PureBasic 4.61 (Windows - x86)")
		WriteStringN(#Fichier, "; EnablePurifier")
		CloseFile(#Fichier)
	EndIf
	;CallDebugger
EndProcedure		

Procedure Ouvrir_Fenetre_principale()
	If OpenWindow(#Fenetre_principale, 476, 65, 400, 599, "Programme de création de message requester", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
		DefinirPoliceBouton("Microsoft Sans Serif", 8)
		
		;On crée notre zone pour choisir une icône
		Frame3DGadget(#Frame3D_Icones, 15, 5, 235, 285, "")
		TextGadget(#Texte_ChoisirIcone, 70, 15, 125, 15, "Veuillez choisir une icône")
		Init_BoutonPerso(1, 150, 40, GetWindowColor(#Fenetre_principale), $FFFFFF, $F5C8C8, $000000, $FFFFFF, 0, 2)
		ResizeImage(#Image_1, 20, 20)
		CreerBoutonH(#Bouton_Info, #Fenetre_principale, "Icône Info", 55, 40, #Image_1)
		ResizeImage(#Image_2, 20, 20)
		CreerBoutonH(#Bouton_Question, #Fenetre_principale, "Icône Question", 55, 90, #Image_2)
		ResizeImage(#Image_3, 20, 20)
		CreerBoutonH(#Bouton_Attention, #Fenetre_principale, "Icône Attention", 55, 140, #Image_3)
		ResizeImage(#Image_4, 20, 20)
		CreerBoutonH(#Bouton_Erreur, #Fenetre_principale, "Icône Erreur", 55, 190, #Image_4)
		
		;On définit si on veut une icône
		Init_BoutonPerso(1, 165, 30, GetWindowColor(#Fenetre_principale), $FFFFFF, $F5C8C8, $000000, $FFFFFF, 0, 2)
		CreerBouton(#Bouton_sans_icone, #Fenetre_principale, "Ne pas mettre d'icône", 30, 255, 0)
		
		;On choisit si on veut du son
		OptionGadget(#Option_son, 206, 264, 35, 15, "son")
		
		;On crée une zone por définir le nombres de boutons dans notre requester 
		Frame3DGadget(#Frame3D_Boutons, 260, 5, 120, 285, "")
		TextGadget(#Texte_Nbre_Boutons, 273, 15, 95, 15, "Nombre de boutons")
		OptionGadget(#Option_1_bouton, 275, 50, 15, 15, "")
		OptionGadget(#Option_2_boutons, 275, 70, 15, 15, "")
		OptionGadget(#Option_3_boutons, 275, 90, 15, 15, "")
		TextGadget(#Texte_Option_1_bouton, 290, 50, 50, 15, "1 bouton")
		TextGadget(#Texte_Option_2_boutons, 290, 70, 50, 15 , "2 boutons")
		TextGadget(#Texte_Option_3_boutons, 290, 90, 50, 15, "3 boutons")
		Init_BoutonPerso(1, 15, 15, GetWindowColor(#Fenetre_principale), $E60B00, $E60B00, $E60B00, $E60B00, 0, 2)
		DefinirPoliceBouton("Microsoft Sans Serif", 8)
		CreerBouton(#Bouton_1_btn, #Fenetre_principale, "", 350, 50, 0)
		Init_BoutonPerso(1, 15, 15, GetWindowColor(#Fenetre_principale), $1C00FF, $1C00FF, $1C00FF, $1C00FF, 0, 2)
		CreerBouton(#Bouton_2_btn, #Fenetre_principale, "", 350, 70, 0)
		Init_BoutonPerso(1, 15, 15, GetWindowColor(#Fenetre_principale), $019B24, $019B24, $019B24, $019B24, 0, 2)
		CreerBouton(#Bouton_3_btn, #Fenetre_principale, "", 350, 90, 0)
		TextGadget(#Texte_des_boutons, 274, 115, 90, 15, "Texte des boutons")
		TextGadget(#Texte_Bouton_1, 275, 145, 100, 15, "Texte du bouton 1 :")
		TextGadget(#Texte_bouton_2, 275, 185, 100, 15, "Texte du bouton 2")
		TextGadget(#Texte_bouton_3, 275, 230, 100, 15, "Texte du bouton 3")
		
		;On crée une liste les légendes pour les boutons du requester
		Elements = "Ok|Oui|Non|Annuler|Abandonner|Recommencer|Continuer|Ignorer|Choisir|Valider|Quitter"
		
		;On crée le combo 1
		ComboBoxGadget(#ComboBox_1, 275, 160, 100, 20)
		Compteur = CountString(Elements, "|")+1
		For i = 1 To compteur
			AddGadgetItem(#ComboBox_1, -1, StringField(Elements, i, "|"))
		Next
		DisableGadget(#ComboBox_1, 1)
		
		;puis le combo 2
		ComboBoxGadget(#ComboBox_2, 275, 205, 100, 20)
		For i = 1 To Compteur
			AddGadgetItem(#ComboBox_2, -1, StringField(Elements, i, "|"))
		Next
		DisableGadget(#ComboBox_2, 1)
		
		;et enfin le combo 3
		ComboBoxGadget(#ComboBox_3, 275, 250, 100, 20)
		For i = 1 To Compteur
			AddGadgetItem(#ComboBox_3, -1, StringField(Elements, i, "|"))
		Next
		DisableGadget(#ComboBox_3, 1)
		
		TextGadget(#Texte_titre_message, 25, 300, 350, 15, "Veuillez entrer le titre de votre message", #PB_Text_Center)
		StringGadget(#Chaine_message, 20, 320, 360, 20, "") ;Titre du Requester
		TextGadget(#Texte_EntrerMessage, 25, 345, 350, 15, "Veuillez entrer votre message", #PB_Text_Center)
		EditorGadget(#Editor_message, 20, 365, 360, 160) ; Texte du requester
		
		;On crée nos boutons
		Init_BoutonPerso(1, 115, 40, GetWindowColor(#Fenetre_principale), $FFFFFF, $F5C8C8, $000000, $FFFFFF, 0, 2)
		CreerBouton(#Bouton_Apercu, #Fenetre_principale, "Aperçu", 20, 550, 0)
		CreerBouton(#Bouton_Valider, #Fenetre_principale, "Valider", 143, 550, 0)
		CreerBouton(#Bouton_Quitter, #Fenetre_principale, "Quitter", 269, 550, 0)
	EndIf
EndProcedure

Ouvrir_Fenetre_principale()

;- Boucle d'événements
Repeat
	Select WaitWindowEvent()
		Case #PB_Event_Gadget
			Select EventGadget()
				Case #Option_1_bouton
					SetGadgetColor(#Texte_Option_1_bouton, #PB_Gadget_FrontColor, $E7A600)
					SetGadgetColor(#Texte_Option_2_boutons, #PB_Gadget_FrontColor, #Black)
					SetGadgetColor(#Texte_Option_3_boutons, #PB_Gadget_FrontColor, #Black)
					DisableGadget(#ComboBox_1, 0)
					DisableGadget(#ComboBox_2, 1)
					DisableGadget(#ComboBox_3, 1)
					NbreBoutons = 1
				Case #Option_2_boutons
					SetGadgetColor(#Texte_Option_1_bouton, #PB_Gadget_FrontColor, #Black)
					SetGadgetColor(#Texte_Option_2_boutons, #PB_Gadget_FrontColor, $E7A600)
					SetGadgetColor(#Texte_Option_3_boutons, #PB_Gadget_FrontColor, #Black)
					DisableGadget(#ComboBox_1, 0)
					DisableGadget(#ComboBox_2, 0)
					DisableGadget(#ComboBox_3, 1)
					NbreBoutons = 2
				Case #Option_3_boutons
					SetGadgetColor(#Texte_Option_1_bouton, #PB_Gadget_FrontColor, #Black)
					SetGadgetColor(#Texte_Option_2_boutons, #PB_Gadget_FrontColor, #Black)
					SetGadgetColor(#Texte_Option_3_boutons, #PB_Gadget_FrontColor, $E7A600)
					DisableGadget(#ComboBox_1, 0)
					DisableGadget(#ComboBox_2, 0)
					DisableGadget(#ComboBox_3, 0)
					NbreBoutons = 3
				Case #ComboBox_1
					Resultat1 = GetGadgetItemText(#ComboBox_1, GetGadgetState(#ComboBox_1)) ; texte renvoyé par le combo
					ValeurCombo1 = GetGadgetState(#ComboBox_1)
				Case #ComboBox_2
					Resultat2 = GetGadgetItemText(#ComboBox_2, GetGadgetState(#ComboBox_2))
					ValeurCombo2 = GetGadgetState(#ComboBox_2)
				Case #ComboBox_3
					Resultat3 = GetGadgetItemText(#ComboBox_3, GetGadgetState(#ComboBox_3))
					ValeurCombo1 = GetGadgetState(#ComboBox_3)
				Case #Option_son
				Case #Chaine_message
				Case #Bouton_sans_icone
				Case #Editor_message
				Case #Bouton_Apercu
					Apercu()
				Case #Bouton_Valider
					CreerCode()
				Case #Bouton_Quitter
					CloseWindow(#Fenetre_principale)
					End
				Case #Bouton_Info
					IconeParDefaut$ = #PB_Compiler_FilePath+"Icônes\Info*.png"
					Filtre$ = "Icône Info*.png|Info*.png|Exclamination.png|Exclamination*.png"
					Filtre = 0
					Icone$ = OpenFileRequester("Choisissez une icône à charger", IconeParDefaut$, Filtre$, Filtre)
					If Icone$
						LoadImage(#Image, Icone$)
						Image = ImageID(#Image)
					Else
						MessageRequester("Information", "La sélection a été annulée.", 0)
					EndIf 
					
					SetGadgetText(#Chaine_message, "Information...")
				Case #Bouton_Question
					IconeParDefaut$ = #PB_Compiler_FilePath+"Icônes\Question*.png"
					Filtre$ = "Icône Question*.png|Question*.png|Aide.png|Aide*.Png"
					Icone$ = OpenFileRequester("Choisissez une icône à charger", IconeParDefaut$, Filtre$, 0)
					If Icone$
						LoadImage(#Image, Icone$)
						Image = ImageID(#Image)
					Else
						MessageRequester("Information", "La sélection a été annulée.", 0)
					EndIf 
					
					SetGadgetText(#Chaine_message, "Question...")
				Case #Bouton_Attention
					IconeParDefaut$ = #PB_Compiler_FilePath+"Icônes\Attention*.png"
					Filtre$ = "Icône Attention*.png|Attention*.png"
					Icone$ = OpenFileRequester("Choisissez une icône à charger", IconeParDefaut$, Filtre$, 0)
					If Icone$
						LoadImage(#Image, Icone$)
						Image = ImageID(#Image)
					Else
						MessageRequester("Information", "La sélection a été annulée.", 0)
					EndIf 
					
					SetGadgetText(#Chaine_message, "Attention...")
				Case #Bouton_Erreur
					IconeParDefaut$ = #PB_Compiler_FilePath+"Icônes\Erreur*.png"
					Filtre$ = "Icône Erreur*.png|Erreur*.png"
					Icone$ = OpenFileRequester("Choisissez une icône à charger", IconeParDefaut$, Filtre$, 0)
					If Icone$
						LoadImage(#Image, Icone$)
						Image = ImageID(#Image)
					Else
						MessageRequester("Information", "La sélection a été annulée.", 0)
					EndIf 
					
					SetGadgetText(#Chaine_message, "Erreur...")
			EndSelect
		Case #PB_Event_CloseWindow
			Select EventWindow()
				Case #Fenetre_principale
					CloseWindow(#Fenetre_principale)
					Break
			EndSelect
	EndSelect
	VerifierSurvolBouton(#Fenetre_principale)
ForEver
dont la solution que j'ai trouvée fonctionne aussi
Merci à tous.