Développement Mac OS / Windows

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
gibet_b
Messages : 13
Inscription : lun. 03/déc./2012 18:15
Localisation : Au coeur des Combrailles (63)
Contact :

Développement Mac OS / Windows

Message par gibet_b »

Bonjour à tous,

Jusqu'à aujourd'hui, lorsque je voulais faire de petits développement cross-plateformes (ou juste simples), j'utilisais RealBasic... Mais aujourd'hui ma licence a un certain âge (version 2008) et je n'ai jamais adhéré à leur politique tarifaire et de mise à jour. Je ne sais pas pourquoi, mais j'ai des réticences à m'y plonger entièrement.

Ce que j'apprécie à première vue avec PB, c'est la politique tarifaire et de licence bien sûr, mais aussi la communauté de développeur qui m'a l'air plus dynamique que RB. J'ai aussi l'impression que PB permet de garder davantage la main que RealBasic, ou en tout cas oblige à maitriser davantage ce que l'on fait. C'est peut-être une fausse idée...

Cela fait plusieurs années (!!!) que j'entends parler de PureBasic, et je m'y suis plongé aujourd'hui pour la première fois. Et déjà, j'ai quelques questions :

- J'ai téléchargé la version d'essai sous Windows et sous Mac. J'ai créé un projet sous Windows et j'ai essayé de l'ouvrir sous Mac, ça n'a pas marché. J'ai également essayé d'ouvrir les fichiers pb et pbf séparément, sans plus de succès. Normal ?
- Pour créer un exécutable Windows et un exécutable Mac, il faut installer PB sur Windows et Mac, et compiler sur chaque plateforme ? On peut pas générer un exécutable pour Mac si on est sous Windows, et inversement ?
- Peut-on créer un projet complètement multiplateforme ou faut-il faire des déclinaisons d'un projet principal ? Y a-t-il des directives permettant d'exécuter des parties de code selon que l'on soit sur Windows ou Mac ?

Et pour finir deux questions qui ont moins à voir :
- j'ai cru comprendre que l'éditeur visuel serait intégré à l'EDI lors de la prochaine mise à jour : cela voudra-t-il que l'on pourra plus facilement ouvrir un pbf en mode éditeur visuel si on est dans l'EDI (parce que là, il faut ouvrir l'éditeur, et faire fichier>ouvrir>aller chercher le fichier) ?
- quel gadget faut-il utiliser pour créer un éditeur de texte enrichi ? texteditor ou canvas ?

D'avance merci,
Jean-Baptiste,
Développement logiciel, infographie, livres numériques et sites internet en Auvergne : www.bournisien.info
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: Développement Mac OS / Windows

Message par jbernard13 »

Salut et bievenue


Voici un exemple de blocnote

Code : Tout sélectionner

; ---Par Jbernard13  2010 -----

;**** Constantes de la fenetre 
Enumeration
  #Fenetre_Main
EndEnumeration

;**** Constantes de la barre de menu ****
Enumeration
  #menu_charger
  #menu_sauver
  #menu_quitter
EndEnumeration
;**** Constantes des gadgets ****
Enumeration
  #Editeur_texte
  #fichier_sauver
EndEnumeration
;**** Procedures pour la chargement et la sauvegarde d'un fichier ****
;**** Procedure de chargement d'un fichier ****
Procedure Chargement()
  ClearGadgetItems(#Editeur_texte)
  
    Text.s=OpenFileRequester( "chargement d'un fichier texte","","Fichier text|*.txt",0)
    If Text<> ""
      If OpenFile(0,Text)
        Repeat
          AddGadgetItem(#Editeur_texte,-1,ReadString(0))
        Until Eof(0)
        CloseFile(0)
      EndIf
    EndIf
  EndProcedure 
 


  ;**** Procedure de sauvegarde d'un fichier **** 
  Procedure Sauvegarde()
    Sauver.s =SaveFileRequester("Sauvegarde  d'un fichier","","Fichier.texte|*.txt",0)
    If LCase(GetExtensionPart(Sauver)) <> "text"
      Sauver.s+".txt"
      
      CreateFile(#fichier_sauver ,Sauver)
      For nb_ligne = 0 To CountGadgetItems(#Editeur_texte )
        texte_ligne$=GetGadgetItemText(#Editeur_texte , nb_ligne,0)
        WriteStringN(#fichier_sauver ,texte_ligne$)
      Next
      CloseFile(#fichier_sauver)
    EndIf
  EndProcedure 




;**** Creation de la fenetre, de la barre de menu et du gadget ****
If OpenWindow(#Fenetre_Main,0,0,560,480,"BlocNote demo",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
  If CreateMenu(0,WindowID(#Fenetre_Main))
    MenuTitle("Fichier")
    MenuItem(#menu_charger,"Charger un fichier")
    MenuItem(#menu_sauver,"Sauver un fichier")
    MenuBar()
    MenuItem(#menu_quitter,"Quitter")
    EndIf
 EditorGadget(#Editeur_texte,10,20,540,380)
EndIf



;****Boucle du programme ****
Repeat 
  Select WaitWindowEvent()
    Case #PB_Event_Menu
      Select EventMenu()
        Case #menu_charger : Chargement()
        Case #menu_sauver : Sauvegarde()
          Case #menu_quitter
          MessageRequester("information","Au revoir")
          CloseWindow(#Fenetre_Main)
      EndSelect
      Case #PB_Event_CloseWindow
      Fermer_fenetre =#True
  EndSelect
Until Fermer_fenetre
End


Jbernard13
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Développement Mac OS / Windows

Message par falsam »

Bonjour gibet_b et bienvenue sur ce forum.
gibet_b a écrit :Pour créer un exécutable Windows et un exécutable Mac, il faut installer PB sur Windows et Mac, et compiler sur chaque plateforme ?
Oui
gibet_b a écrit :On peut pas générer un exécutable pour Mac si on est sous Windows, et inversement ?
Contrairement à RealBasic, on ne peut pas.
gibet_b a écrit :Quel gadget faut-il utiliser pour créer un éditeur de texte enrichi ? texteditor ou canvas ?
Ni l'un ni l'autre. TextEditor moyennant l'utilisation de quelques API. Tu peux aussi utiliser le ScintillaGadget.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Développement Mac OS / Windows

Message par graph100 »

Bienvenue gibet_b :D
je vais essayer de te répondre point par point :
gibet_b a écrit :- J'ai téléchargé la version d'essai sous Windows et sous Mac. J'ai créé un projet sous Windows et j'ai essayé de l'ouvrir sous Mac, ça n'a pas marché. J'ai également essayé d'ouvrir les fichiers pb et pbf séparément, sans plus de succès. Normal ?
Ca, je ne sais pas, d'autre auront la répondre...
gibet_b a écrit :- Pour créer un exécutable Windows et un exécutable Mac, il faut installer PB sur Windows et Mac, et compiler sur chaque plateforme ? On peut pas générer un exécutable pour Mac si on est sous Windows, et inversement ?
Pour compiler pour Mac il faut installer PB sur un mac. de même pour windows et Linux.
gibet_b a écrit :- Peut-on créer un projet complètement multiplateforme ou faut-il faire des déclinaisons d'un projet principal ? Y a-t-il des directives permettant d'exécuter des parties de code selon que l'on soit sur Windows ou Mac ?
Bien sur ! Il suffit de ne pas utiliser de commande spéciale à un seul OS. Ou bien d'utiliser les directives de compilation (comme ci-dessous) pour faire un code qui fonctionnera sur chaque OS visé !
Il y a des mots clés spéciaux pour faire cela : Exemple de Guimauve pris sur le Forum anglais :

Code : Tout sélectionner

CompilerSelect #PB_Compiler_OS
   
  CompilerCase #PB_OS_Windows
    #PropertyGrid_SectionFont = "Arial"
    #PropertyGrid_DefaultItemHeight = 20
    #PropertyGrid_SectionFontSize   = 10
   
  CompilerCase #PB_OS_Linux
    #PropertyGrid_SectionFont = "Mint Spirit"
    #PropertyGrid_DefaultItemHeight = 30
    #PropertyGrid_SectionFontSize   = 10
   
  CompilerCase #PB_OS_MacOS
    #PropertyGrid_SectionFont = "Arial"
    #PropertyGrid_DefaultItemHeight = 25
    #PropertyGrid_SectionFontSize   = 14
   
  CompilerDefault ; future
    #PropertyGrid_SectionFont = "Arial"
    #PropertyGrid_DefaultItemHeight = 20
    #PropertyGrid_SectionFontSize   = 12
   
CompilerEndSelect
gibet_b a écrit :- j'ai cru comprendre que l'éditeur visuel serait intégré à l'EDI lors de la prochaine mise à jour : cela voudra-t-il que l'on pourra plus facilement ouvrir un pbf en mode éditeur visuel si on est dans l'EDI (parce que là, il faut ouvrir l'éditeur, et faire fichier>ouvrir>aller chercher le fichier) ?
Ça ne sait pas trop, il y a déjà un éditeur visuel dans pb, personnellement je ne l'utilise pas bcp, ou juste quand je veux une petite fenêtre vite faite.
gibet_b a écrit :- quel gadget faut-il utiliser pour créer un éditeur de texte enrichi ? texteditor ou canvas ?
Le canvas n'est pas un gadget d'édition de texte, il te permet de dessiner facilement dessus. Tu peux te lancer dans la programmation d'un canvas - editeur de texte, mais, pour l'avoir fait, je peux te dire que c'est long, et avant que tu es mis en place toutes les commandes basiques, il va se passer un bout de temps ! (le post ou j'avais mis le code, je n'ai pas mis le post à jour depuis, mais le code devrais l'être plus ou moins.).

Tu peux utiliser le texteditorgadget() pour une utilisation simple, mais il y a aussi le ScintillaGadget() que je n'ai jamais utiliser, mais qui permet (il me semble) des fonctions avancées.

[edit] : @falsam : autant pour moi, tu as été plus rapide :lol:
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
gibet_b
Messages : 13
Inscription : lun. 03/déc./2012 18:15
Localisation : Au coeur des Combrailles (63)
Contact :

Re: Développement Mac OS / Windows

Message par gibet_b »

Merci beaucoup à tous pour votre accueil, et vos pistes. Je vais les suivre, et je ne manquerai pas de venir vous embêter à nouveau au besoin (et il y en aura :lol: ).

J'ai constaté un bug étonnant : impossible d'enregistrer un fichier sur ma Dropbox sur mon Mac... Et je pense que mes problèmes d'ouverture avec les fichiers créés sous Windows venaient également de là, car si j'enregistre sur le bureau puis que je copie dans ma dropbox, impossible d'ouvrir (sauf si je remets le fichier sur le bureau). Je vais essayer de faire remonter ce bug, à toutes fins utiles.
Jean-Baptiste,
Développement logiciel, infographie, livres numériques et sites internet en Auvergne : www.bournisien.info
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Développement Mac OS / Windows

Message par Ar-S »

Bienvenue à toi !
Pas sur de ma réponse mais Dropbox est un espace en ligne non ? Pour accéder à tes fichiers tu peux les atteindre via l'explorateur en apparence mais les fichiers sont bien distant. C'est à mon avis une histoire de
1 - télécharger le ficher de la dropbox
2 - ouvrir normalement le fichier télécharger.

j'utilise pas dropbox (j'ai 4go chez wuala mais jamais testé lé récupération de programme.)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
gibet_b
Messages : 13
Inscription : lun. 03/déc./2012 18:15
Localisation : Au coeur des Combrailles (63)
Contact :

Re: Développement Mac OS / Windows

Message par gibet_b »

Ar-S a écrit :Bienvenue à toi !
Pas sur de ma réponse mais Dropbox est un espace en ligne non ? Pour accéder à tes fichiers tu peux les atteindre via l'explorateur en apparence mais les fichiers sont bien distant. C'est à mon avis une histoire de
1 - télécharger le ficher de la dropbox
2 - ouvrir normalement le fichier télécharger.

j'utilise pas dropbox (j'ai 4go chez wuala mais jamais testé lé récupération de programme.)
Oui et non :)
Dropbox te sauvegarde bien les fichiers en ligne, mais tu n'accèdes pas directement aux fichiers en ligne, ils sont stockés en local.

Une question qui n'a rien à voir : quel intérêt d'utiliser une constante par fenêtre/controle/etc. plutôt que #PB_Any ? Quand est-ce que cela a un intérêt ?

Sinon, ce que je trouve un peu étrange, c'est que les include utilisent un chemin absolu... Du coup, ça ne facilite pas le travail sur plusieurs machines ou pire sur plusieurs plateformes.
Jean-Baptiste,
Développement logiciel, infographie, livres numériques et sites internet en Auvergne : www.bournisien.info
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Développement Mac OS / Windows

Message par falsam »

Pour que les fichiers stockés sur Dropbox, soient vus en local, il faut bien penser à installer l'application Dropbox (Mac/Windows/Linux). J'ai un dossier sur dropbox sur lequel j'enregistre mes codes Pure Basic ce qui me permet de les compiler à la fois sous linux et sous Windows sans qu'il soit nécessaire de basculer les codes d'un system à un autre.
gibet_b a écrit :Une question qui n'a rien à voir : quel intérêt d'utiliser une constante par fenêtre/controle/etc. plutôt que #PB_Any ? Quand est-ce que cela a un intérêt ?
En utilisant la constante #pb_any, tu laisses le compilateur choisir le handle de cette constante. A toi de le récupérer besoin est. Il est essentiellement utilisé pour des gadgets dont on a pas besoin de tester des évènements comme par exemple TextGadget() ou Frame3DGadget().

Un exemple de code.

Code : Tout sélectionner

EnableExplicit

Enumeration
  #Mainform
  #Name
  #Save
EndEnumeration

Define.l Event, GEvent, TEvent

Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered

Procedure Open_MainForm()
  OpenWindow(#Mainform, 0, 0, 500, 400, "#Pb_Any ou pas", WindowStyle)
  Frame3DGadget(#PB_Any, 20, 20, 350, 200,"Adresse")
  TextGadget(#PB_Any, 30, 50, 80, 20, "Nom")
  StringGadget(#Name, 120, 50, 200, 22, "") 
  
  ButtonGadget(#Save, 375, 25, 80, 22, "Enregistrer")
  
EndProcedure

  
Open_MainForm()

;-Boucle évenementielle
Repeat
  Event  = WaitWindowEvent(10)
  GEvent = EventGadget()
  TEvent = EventType()
  
  Select Event
    Case #PB_Event_Gadget
      Select GEvent
        Case #Name
          Select TEvent
            Case #PB_EventType_Focus
              SetGadgetColor(#Name, #PB_Gadget_BackColor, RGB(255, 215, 0))
            Case #PB_EventType_LostFocus
              SetGadgetColor(#Name, #PB_Gadget_BackColor, RGB(255, 255, 255))
          EndSelect
          
        Case #Save
          MessageRequester("Information", "Vous avez cliqué sur le bouton Enregistrer")
          
      EndSelect
        
    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver
gibet_b a écrit :Sinon, ce que je trouve un peu étrange, c'est que les include utilisent un chemin absolu... Du coup, ça ne facilite pas le travail sur plusieurs machines ou pire sur plusieurs plateformes.
Parce que Pure Basic ne contient pas de variables d'environnement permettant de définir un dossier contenant les includes comme dans RapidQ que j'ai connu :)
Dernière modification par falsam le mar. 04/déc./2012 17:19, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Re: Développement Mac OS / Windows

Message par Fred »

Non les includes n'utilisent pas le chemin absolu, mais relatif au fichier dans lequel est l'include.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Développement Mac OS / Windows

Message par falsam »

Fred a écrit :Non les includes n'utilisent pas le chemin absolu, mais relatif au fichier dans lequel est l'include.
:?: Aurais je louper quelque chose !!
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
gibet_b
Messages : 13
Inscription : lun. 03/déc./2012 18:15
Localisation : Au coeur des Combrailles (63)
Contact :

Re: Développement Mac OS / Windows

Message par gibet_b »

Falsam, j'ai bien sûr l'application Dropbox installée sur chacune de mes machines... C'est étrange. Un bug qui se produit peut-être que sur ma machine ? Ou alors, un bug avec la version de démo ? Ça m'étonne un peu.

Fred, un include réalisé via l'éditeur visuel :

Code : Tout sélectionner

XIncludeFile "/Users/jeanbaptistebournisien/Desktop/TaT - PureBasic/Form_Principale.pb"
C'est un chemin absolu, non ? Et tous mes fichiers sont dans le même répertoire.

Sinon, habituellement en PureBasic, à quel moment initialise-t-on des champs ? Par exemple, je voudrais qu'il y ait par défaut un "_" dans un texteditor, ou qu'un spin affiche un "0". Je sais comment le faire par le code, mais je me demandais à quel moment vous le faisiez.
Et en parlant de texteditor, y a-t-il un moyen de centrer le texte à l'intérieur, et d'abaisser sa ligne de base (car je trouve que les caractères s'affichent assez haut) ?
Jean-Baptiste,
Développement logiciel, infographie, livres numériques et sites internet en Auvergne : www.bournisien.info
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Re: Développement Mac OS / Windows

Message par Fred »

Oui c'est absolu, mais c'est le Form Designer qui crée cette ligne, c'est pas une obligation. D'ailleurs ca devrait etre modifié, Polo si tu nous lis ;)
Avatar de l’utilisateur
gibet_b
Messages : 13
Inscription : lun. 03/déc./2012 18:15
Localisation : Au coeur des Combrailles (63)
Contact :

Re: Développement Mac OS / Windows

Message par gibet_b »

Fred a écrit :Oui c'est absolu, mais c'est le Form Designer qui crée cette ligne, c'est pas une obligation. D'ailleurs ca devrait etre modifié, Polo si tu nous lis ;)
C'est vrai, je n'avais pas eu la curiosité d'essayer avec juste
XIncludeFile "Form_Principale.pb"
Mais ça fonctionne !
Jean-Baptiste,
Développement logiciel, infographie, livres numériques et sites internet en Auvergne : www.bournisien.info
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Développement Mac OS / Windows

Message par falsam »

Voila pourquoi j'avais l'impression de louper quelque chose : Je n'utilise pas Form Designer. J'ai une préférence pour l'écriture :p
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Développement Mac OS / Windows

Message par GallyHC »

gibet_b> Bienvenue sur ce forum, même si je t'ai deja croisé sur un autre lollllllllllllllllllll

falsam> Bien venu au club lolll moi aussi j'aicris plus et je n'ai pas pris l'habitude du "Form Designer", même si je viens du VB6.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Répondre