IceDesign GUI Designer

Programmation d'applications complexes
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: IceDesign GUI Designer

Message par MetalOS »

Malgré tous Chris ton designer semble vraiment bien. Je viens donc d'acheter une version.
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: IceDesign GUI Designer

Message par MetalOS »

Voici mes 2 premières observations :D . T'inquiète pas je ne suis pas chiant sur les demandes :lol: :lol:

Un installeur serais vraiment un plus et si possible d'avoir le français mais uniquement pour les menus de l'interface et surtout du menu settings, sinon pour le reste ça peut rester en anglais ça ne pause pas de problème. Merci autrement ça semble vraiment très bon comme concepteur bravo.
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: IceDesign GUI Designer

Message par MetalOS »

Une autre petite question Chris,

Je n'arrive pas à trouver comment créer plusieurs fenêtre ?
Avatar de l’utilisateur
Mindphazer
Messages : 635
Inscription : mer. 24/août/2005 10:42

Re: IceDesign GUI Designer

Message par Mindphazer »

Je crois pas qu'on puisse...
Bureau : Win10 64bits
Maison : Macbook Pro M1 14" SSD 512 Go / Ram 16 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
ChrisR
Messages : 221
Inscription : sam. 14/févr./2015 16:20

Re: IceDesign GUI Designer

Message par ChrisR »

Merci pour ton achat MetalOS, j'espère qu'il te sera utile pour créer tes futurs interfaces.

Pour le multi-fenêtre, désolé, mais comme le dit Mindphazer, il n'est pas possible.
Cependant, tu peux lancer autant d'instance IceDesign que tu le souhaites.
Mais ,malheureusement, il n'y a pas de copier/coller, d'une interface à une autre possible ainsi :(
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: IceDesign GUI Designer

Message par MetalOS »

Mince c'est dommage. Pas grave je vais utiliser IceDesign en portable (Clé USB) comme ca je pourrais développer au travail depuis ma clé sans rien installer. Pour le multi fenêtre j'utilise aussi PureForm. Bon courage dans la suite du développement de IceDesign.
Avatar de l’utilisateur
ChrisR
Messages : 221
Inscription : sam. 14/févr./2015 16:20

Re: IceDesign GUI Designer

Message par ChrisR »

IceDesign a été mis à jour en version 1.5.2

Nouveautés :
  • Les constantes des containers sont maintenant dessinées (ex ci-dessous avec #PB_ScrollArea_Center).
    Cependant, il ne sont redessiné, uniquement si il ne contient pas d'autres gadgets et si le container est fermé.
  • Ajouter SplitterExt Module by chi pour colorer les Splitters.
  • Cut, copy, paste and clone Containers est à disposition maintenant. Il inclut la copie de tous les gadgets enfants.
  • Depuis la liste "Create Controls", vous pouvez glisser-déposer les gadgets à créer dans n'importe quel containeur même s'il n'est pas ouvert ou dans une autre branche.
  • Vous pouvez maintenant sélectionner librement un Gadget ou un Container dans la fenêtre, sans avoir besoin de passer par, ouvrir/fermer des containers.

Image
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: IceDesign GUI Designer

Message par MetalOS »

Cool merci Chris,

Une petite question, si toutefois je voudrais créer un logiciel avec plusieurs fenêtres il faut procéder comment ? Réécrire manuellement les autres fenêtres ?
Avatar de l’utilisateur
ChrisR
Messages : 221
Inscription : sam. 14/févr./2015 16:20

Re: IceDesign GUI Designer

Message par ChrisR »

Bonjour MetalOS,
Tu peux utiliser sans souci IceDesign pour créer une application, logiciel avec plusieurs fenêtre.

Pour cela, pour chaque fenêtre, renomme le nom de la fenêtre: #Window_0 en par exemple: #MainWindow, #SecondWindow...
Dans les paramètres, tu peux utiliser "Add Window Name to Variable/Constante Name", utile ensuite pour voir en un clin d'œil dans quelle fenêtre le Gadget est utilisé.
Toujours dans les paramètres, tu peux utiliser "Include the EventLoop" pour la fenêtre principale et décocher l'option pour les autres fenêtres , il sera plus facile ensuite.
N'oublie pas d'utiliser le paramètre "Save the Code As" qu'en tu crées une nouvelle fenêtre. Tu peux ensuite remettre l'option sur "Save and Open in a New Tab".

Sur un logiciel multi fenêtre, il peut être bien de cocher les options "Bind All Gadget Events" et "Bind Events in an Include File". Ainsi les événements peuvent être écrit dans un fichier source séparé, pour une meilleur organisation, structure, il sera plus facile à gérer dans les projets importants.

Ensuite, il faut que tu les assembles entre eux, avec XIncludeFile et quelques petites modifs, voir l'exemple ci-dessous, les modifs sont entre les balises ; AJOUTS et ; FIN AJOUTS
Exemple:
Maindow.pb:

Code : Tout sélectionner

EnableExplicit

;- Enumerations
Enumeration Window
  #MainWindow
EndEnumeration

Enumeration Gadgets
  #Btn_Second_Window
EndEnumeration
; AJOUTS
XIncludeFile "SecondWindow.pb"
; FIN AJOUTS

;- Declare
Declare Open_MainWindow(X = 0, Y = 0, Width = 640, Height = 480)

Procedure Open_MainWindow(X = 0, Y = 0, Width = 640, Height = 480)
  If OpenWindow(#MainWindow, X, Y, Width, Height, "MainWindow", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ButtonGadget(#Btn_Second_Window, 150, 160, 330, 110, "Second Window")

  EndIf
EndProcedure

;- Main Program
Open_MainWindow()

;- Event Loop
Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Break

      ;-> Event Gadget
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Btn_Second_Window   ; Second Window
          MessageRequester("Information", "Button Name : #Btn_Second_Window" +#CRLF$+#CRLF$+ "Text : " + GetGadgetText(EventGadget()))
          ; AJOUTS
          Open_SecondWindow()
          CloseWindow(#MainWindow)

        Case #Btn_First_Window   ; Second Window
          MessageRequester("Information", "Button Name : #Btn_First_Window" +#CRLF$+#CRLF$+ "Text : " + GetGadgetText(EventGadget()))
          Open_MainWindow()
          CloseWindow(#SecondWindow)
          ; FIN AJOUTS
      EndSelect

  EndSelect
ForEver

SecondWindow.pb:

Code : Tout sélectionner

EnableExplicit

;- Enumerations
Enumeration Window
  #SecondWindow
EndEnumeration

Enumeration Gadgets
  #Btn_First_Window
EndEnumeration

;- Declare
Declare Open_SecondWindow(X = 0, Y = 0, Width = 640, Height = 480)

Procedure Open_SecondWindow(X = 0, Y = 0, Width = 640, Height = 480)
  If OpenWindow(#SecondWindow, X, Y, Width, Height, "SecondWindow", #PB_Window_ScreenCentered)
    ButtonGadget(#Btn_First_Window, 150, 160, 330, 110, "First Window")

  EndIf
EndProcedure

; AJOUTS: CODE A UTILISER DANS LA FENETRE PRINCIPAL, LE SUPPRIMER ICI. POUR L'EXAMPLE IL EST MIS EN COMMENTAIRE.
; Main Program
;Open_SecondWindow()
;
;Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
; FIN AJOUTS

A reproduire sur un petit exemple, avant d'attaquer un plus gros projet :wink:
Chris
Avatar de l’utilisateur
ChrisR
Messages : 221
Inscription : sam. 14/févr./2015 16:20

Re: IceDesign GUI Designer

Message par ChrisR »

IceDesign a été mis à jour en version 1.5.3

Changements :
  • Conserver la même taille interne de la fenêtre , quelles que soient les constantes utilisées pour la fenêtre.
  • Sauvegarder les constantes de la fenêtre dans IceDesign.ini, pour les restaurer lors de la prochaine utilisation.
  • Ajout du support OnError. Si nécessaire, il sera complété plus tard avec d'autres données, pour essayer de reproduire l' erreur.
Image
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: IceDesign GUI Designer

Message par MetalOS »

Super, merci Chris.
Avatar de l’utilisateur
ChrisR
Messages : 221
Inscription : sam. 14/févr./2015 16:20

Re: IceDesign GUI Designer

Message par ChrisR »

MetalOS a écrit : ven. 10/déc./2021 9:47 Une petite question, si toutefois je voudrais créer un logiciel avec plusieurs fenêtres il faut procéder comment ? Réécrire manuellement les autres fenêtres ?
En plus de mon mail précédent, J'ai fait une petite démo:

Image
Avatar de l’utilisateur
ChrisR
Messages : 221
Inscription : sam. 14/févr./2015 16:20

Re: IceDesign GUI Designer

Message par ChrisR »

IceDesign a été mis à jour en version 1.5.6

Nouvelles fonctionnalités
  • De belles améliorations des performances générales et améliorations pour les opérations groupés telle que:
    Open or Import IceDesign Form (*.icef), copie de Gadgets et Containers,...
    C'est beaucoup plus rapide et fluide maintenant 8)
    Je savais que je pouvais optimiser pour les opérations goupées en appelant certaines fonctions uniquement à la fin mais je ne pensais pas qu'il aurait un tel impact.
    J'aurais du le faire plus tôt ;)
  • Améliorations de la selection libre pour selectionner un Gadget ou un Containeur dans une autre branche.
  • Ajouter options du Menu Contextuel et raccourcis claviers "Select All (Ctrl+A)" et "Unselect All (Ctrl+U)".
  • Ajouter option dans les paramètres "Add Compiler IsMainFile" pour inclure le source généré via XIncludeFile sans avoir à le modifier.
Avatar de l’utilisateur
ChrisR
Messages : 221
Inscription : sam. 14/févr./2015 16:20

Re: IceDesign GUI Designer

Message par ChrisR »

IceDesign a été mis à jour en version 1.5.7

Corrige un bug pour sélectionner les gadgets au niveau principal depuis un autre niveau, lorsque le menu ou la toolbar sont inclus
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: IceDesign GUI Designer

Message par MetalOS »

Merci Chris pour l'astuce du multi-Window :wink:
Répondre