Creation d'un volet Windows, Linux et j'espere MacOS

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Creation d'un volet Windows, Linux et j'espere MacOS

Message par GallyHC »

Bonjour,

Je suis en train de faire un programme ou il y aura un volet a gauche un peu à la Outlook. Je vous donne deja le debut et vous pouvais voir a essaye de l'ameliorer.

http://www.koakdesign.info/programme_volet.zip

Merci d'avance,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Atomo
Messages : 207
Inscription : lun. 17/sept./2007 12:27

Message par Atomo »

J'ai une erreur au lancement dans le fichier "ops_design.pbi" ligne 157 : "specified Height is negative".
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Message par GallyHC »

J'ai PB 4.31 et je n'ai aucun problème pouvez vous me preciser votre OS + version et la version de PB.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

Bonjour,

moi j'ai lancer en PureBasic 4.30 et ubuntu quand je lance rien ne se passe meme pas un message du débogeur rien 8O






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Salut.

Ah! Pas mal, dommage que cela clignote un peu (Je chipote), sinon c'est beau.

J'ai sorti l'interface hors de l'écran, tout est nickel.
Redimensionner la hauteur et la partie gauche se redimensionne aussi.

Tu n'as pas trouvé le moyen de centrer le texte en hauteur ?

Sinon j'ai regardé le pbi et pas de code spécial Windows, donc ça pourrait éventuellement le faire sous Linux.

Avec la 4.31 et 4.40b1 :
Avec Debugger : L'interface apparait et disparait aussitôt et erreur dans le code ops.pbi ligne 156 : The specified "Height" is négativ.

Sans Debugger : Ça fonctionne.

Mais à la longue, le clignotement s'avère un peu embêtant.
Mais chapeau, parce que c'est beau

Bye.

[EDIT] Je fais chauffer les lampes de lautre vieux coucou sous Linux et je te dis ce qu'il en est.
Dernière modification par Geo Trouvpatou le dim. 23/août/2009 14:57, modifié 1 fois.
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

autant pour moi le debugger etait enlever :oops:
voici donc l'erreur sous linux :

ops_design.pbi
ligne 156
If CreateImage(#picture_0,pasx,pasy)
[ERROR] The specified 'Height' is negative.

chez moa pasx = 120 et pasy = 434



@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Même config que Venom sous Nux.
Avec Debugger : L'interface apparait et disparait aussitôt et erreur dans le code ops.pbi ligne 156 : The specified "Height" is négativ.

Sans Debugger : L'interface apparait et disparait aussitôt sans erreur.

En prenant l'exemple de la doc :

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 300, 30, "Position de la souris sur la fenêtre", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

    TextGadget(0, 10, 6, 200, 20, "")
    
    Repeat
      Event = WaitWindowEvent(20) ; Boucle au moins chaque 20ms pour une mise à jour
    
      SetGadgetText(0, "Coordonnées: " + Str(WindowMouseX(0)) + "," + Str(WindowMouseY(0)))       
    Until Event = #PB_Event_CloseWindow
  EndIf
Dés le départ lorsque la souris n'est pas sur la fenêtre, les coordonnées sont -1 et -1, c'est peut-être pour ça que ça plante direct au lancement.

Pour en revenir au clignotement, il faut se dire que l'utilisateur normal, clique sur le bouton dans le menu et terminé.
Il ne s'amuse pas à gigoter sa souris sur le menu pendant 10mn :wink:.

Tiens j'ai retrouvé un de mes 1er post avec un menu du même style que toi GallyHc.
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Geo Trouvpatou a écrit :Même config que Venom sous Nux.
Avec Debugger : L'interface apparait et disparait aussitôt et erreur dans le code ops.pbi ligne 156 : The specified "Height" is négativ.

Sans Debugger : L'interface apparait et disparait aussitôt sans erreur.
.
Idem sous MacOS avec PB4.30
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Message par GallyHC »

Merci a tous je vais voir le pourquoi.

Je suis sur XP pas de prob et sa fonctionne sur Ubuntu avant il n'y a aucune commande or celle du pure pour etre compatible.

Je vais voir cela rapidement, Je voulais vous le faire partage mais peu etre trop ativement ;). Apres j'espere pouvoir y mettre des icones.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Message par GallyHC »

Voila j'ai corrige,

Sa apparait sur WinXP et Ubuntu... Par contre j'ai un autre problème sur ubuntu que je vais expose ici.

a cette ligne

If mposx<109 And mposy>6+(i*60) And mposy<6+(i*60)+58 And maxvpos <> maxvsel And EventType() = #PB_EventType_LeftClick

il y a EventType() = #PB_EventType_LeftClick sa fonctionne sans prob sur windows mais sur linux sa fait comme si le bouton ete toujours clique et la je ne comprend pas.

Toujours le meme lien : http://www.koakdesign.info/programme_volet.zip

Cordialement,
GallyHC

PS : pouvez vous me dire si sur MacOs cela fonctionne maintenant? Et soye indulgant je debute en purebasic :)
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

As tu quelques screenshots du rendu ?
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Message par GallyHC »

Voila une capture d'écran : La partie en bleu fonce est quand cela est sélectionné et la partie bleu moin fonce est quand la souris passe dessus.

Image

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

tourne parfaitement sous ubuntu maintenant bien jouer le rendu est pas mal bravo.




@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Message par GallyHC »

Voila j'ai fais une petite correction pour linux. J'aurais besoin d'aide des MacOSien ;) quaand on clique sur la sourie WaitWindowEvent() envois un code

13100 pour Windows
3 pour linux
? pour MacOS

Pour savoir c simple j'ai mis un debug il faut juste positionne la souris dans le volet et clique avec la Souris, restant le bouton enfonce sa donne un chiffre. Pouvez vous me le donné pour que je l'ajoute.

Cordialement,
GallyHC

PS: ou y a t'il une facon becoup plus simple d'avoir le clique de la souris fiable sur les 3 OS?
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Anonyme

Message par Anonyme »

http://www.purebasic.fr/english/viewtopic.php?t=17998&

Code : Tout sélectionner

Procedure WindowMouseButton(Wnd, ButtonNr)
	
	CompilerIf #PB_Compiler_OS = #PB_OS_Linux
	;Linux Version
	
	Protected gdkWnd.l, x.l, y.l, mask.l
	
	If Wnd
		*Window.GTKWindow = Wnd
		gdkWnd = *Window\bin\child\window
		gdk_window_get_pointer_(gdkWnd, @x, @y, @mask)
		
		Select ButtonNr
			Case 0
				If (mask & #GDK_BUTTON1_MASK)
					ProcedureReturn 1
				EndIf
			Case 1
				If (mask & #GDK_BUTTON3_MASK)
					ProcedureReturn 1
				EndIf
			Case 2
				If (mask & #GDK_BUTTON2_MASK)
					ProcedureReturn 1
				EndIf
		EndSelect
	EndIf
	
	CompilerElse
	;Windows Version
	
	If Wnd And GetForegroundWindow_() = Wnd
		Select ButtonNr
			Case 0
				If GetAsyncKeyState_(#VK_LBUTTON) > 0
					ProcedureReturn 1
				EndIf
			Case 1
				If GetAsyncKeyState_(#VK_RBUTTON) > 0
					ProcedureReturn 1
				EndIf
			Case 2
				If GetAsyncKeyState_(#VK_MBUTTON) > 0
					ProcedureReturn 1
				EndIf
		EndSelect
	EndIf
	
	CompilerEndIf
	
	ProcedureReturn 0
EndProcedure

;-ExampleCode:

OpenWindow(0, 0, 0, 300, 200, #PB_Window_SystemMenu, "Test")

hWnd = WindowID()
If hWnd <> 0

CreateGadgetList(WindowID())
TextGadget(0, 10, 10, 280, 20, "Status")

Repeat
	Event = WindowEvent()
	
	If WindowMouseButton(hWnd, 0)
		SetGadgetText(0, "Left MouseButton pressed"  )
	ElseIf WindowMouseButton(hWnd, 1)
		SetGadgetText(0, "Right MouseButton pressed" )
	ElseIf WindowMouseButton(hWnd, 2)
		SetGadgetText(0, "Middle MouseButton pressed")
	EndIf
	
	Delay(15)
Until Event = #PB_Event_CloseWindow
EndIf
End
Y a pu qu'a trouvé un spécialiste mac/os
Répondre