Creation d'un volet Windows, Linux et j'espere MacOS
Creation d'un volet Windows, Linux et j'espere MacOS
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
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)
-
- Messages : 471
- Inscription : dim. 23/déc./2007 18:10
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.
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.
autant pour moi le debugger etait enlever
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
@++

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
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
-
- Messages : 471
- Inscription : dim. 23/déc./2007 18:10
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 :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
.
Tiens j'ai retrouvé un de mes 1er post avec un menu du même style que toi GallyHc.
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
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

Tiens j'ai retrouvé un de mes 1er post avec un menu du même style que toi 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
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

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
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
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)
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
As tu quelques screenshots du rendu ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
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?

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)
http://www.purebasic.fr/english/viewtopic.php?t=17998&
Y a pu qu'a trouvé un spécialiste mac/os
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