Runtime library & Formulaire (Pure Basic 5.20 Beta)

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Runtime library & Formulaire (Pure Basic 5.20 Beta)

Message par falsam »

Pure Basic 5.20 Beta apporte un lot de pas mal de nouveauté et je me penche actuellement sur la Runtime library
Fred a écrit :Added: Runtime library
On peut utiliser des formulaires sous forme de boites de dialogues stockées dans des fichiers xml.

Mise en oeuvre.
Exemple d'un fichier xml que j'ai appelé demoUI1.xml

Code : Tout sélectionner

<?xml version="1.0"?>
<window id="0" name="MainForm" text="Ma fenetre" width="500" height="300" flags="#PB_Window_ScreenCentered">
	<hbox>
		<text text="Nom" width="80"/>
		<string id="1" text="Votre nom" width="150"/>
		<button text="Envoyer" width="100" onevent="ButtonClick()"/>
	</hbox>	
</window>
le code Pure Basic pour générer la boite de dialogue correspondante que j'ai appelé demo1.pb. Ces deux fichiers se trouvent dans un même dossier.

Code : Tout sélectionner

Enumeration
  #XML
  #Dialog 
EndEnumeration

Runtime Procedure ButtonClick()
  Debug GetGadgetText(1) ;<string id="1"
EndProcedure

Procedure Main()
  LoadXML(#XML, "demoUI1.xml")  
  CreateDialog(#Dialog)
  OpenXMLDialog(#Dialog, #XML, "MainForm")
  HideWindow(0, #False) ;<window id="0"
  
  While WaitWindowEvent() <> #PB_Event_CloseWindow : Wend
EndProcedure

Main()
Dans cet exemple les gadget se placent horizontalement avec l'utilisation de la balise <hbox> ... </hbox>. (<vbox> ... </vbox> pour une disposition verticale)

J'ai l'impression que les flags de la fenêtre ne fonctionnent pas.

Est il possible de positionner plusieurs blocs horizontaux ?
Est il possible de panacher des blocs horizontaux et verticaux sans passer par une balise <splitter> ?
[Edit] Réponse oui http://www.purebasic.fr/french/viewtopi ... 71#p154371
Dernière modification par falsam le ven. 21/juin/2013 14:21, modifié 2 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.03 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
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Runtime library & Formulaire

Message par Micoute »

Comme les layout et je trouve ça génial !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Runtime library & Formulaire

Message par falsam »

Micoute a écrit :Comme les layout et je trouve ça génial !
Micoute je préférerais que tu me donnes un exemple d'un fichier xml qui pourrait satisfaire à ma demande.
Configuration : Windows 11 Famille 64-bit - PB 6.03 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
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Runtime library & Formulaire

Message par falsam »

A la question peut on positionner plusieurs blocs horizontaux la réponse est oui. Il suffit pour cela de placer un container de blocs vertical qui contiendra les blocs horizontaux.

le fichier xml précédent devient

Code : Tout sélectionner

<?xml version="1.0"?>
<window id="0" name="MainForm" text="Ma fenetre" width="500" height="300" flags="#PB_Window_ScreenCentered">

	<vbox>
		<hbox>
			<text text="Nom" width="80"/>
			<string id="1" text="Votre nom" width="150"/>
		</hbox>
	
		<hbox>
			<button text="Envoyer" width="100" onevent="ButtonClick()"/>
			<description>Enregistrer</description>
		</hbox>

	</vbox>
</window>
Configuration : Windows 11 Famille 64-bit - PB 6.03 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
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Runtime library & Formulaire

Message par Micoute »

Spock a écrit :
Micoute a écrit :Comme les layout et je trouve ça génial !
tu preferes lesquels ? les layouts a la vanille ou au citron ? :lol:
Pourquoi ? Il n'y a pas tous les parfums ?
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Runtime library & Formulaire

Message par Micoute »

falsam a écrit :
Micoute a écrit :Comme les layout et je trouve ça génial !
Micoute je préférerais que tu me donnes un exemple d'un fichier xml qui pourrait satisfaire à ma demande.

Code : Tout sélectionner

<?xml version="1.0" ?> 
- <!--  Window 
  --> 
- <window id="0" name="hello" text="Window" label="TestDialog" width="320" height="10" flags="#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget">
- <splitter width="300" height="500">
- <hbox>
  <checkbox name="checkbox1" text="Run only one Instance" disabled="yes" Flags="" /> 
  <progressbar text="Vrey vreyv rye" /> 
  <trackbar text="Ole" invisible="no" Flags="#PB_TrackBar_Ticks|#PB_TrackBar_Ticks|#PB_TrackBar_Ticks" width="150" /> 
  <option text="option 1" name="option1" onevent="CheckBoxEvent()" /> 
  <option text="option 2" /> 
  </hbox>
- <vbox>
  <listview text="option 3" height="50" /> 
  <button text="Ole 2" /> 
  <listicon text="option 4" height="50" /> 
  <string text="string content" /> 
  <editor text="editorgadget" height="50" /> 
  <text text="Text gadget" /> 
  </vbox>
  </splitter>
  </window>
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Fred
Site Admin
Messages : 2652
Inscription : mer. 21/janv./2004 11:03

Re: Runtime library & Formulaire (Pure Basic 5.20 Beta)

Message par Fred »

Il y aussi un container gridbox:

Code : Tout sélectionner

<?xml version="1.0"?>

<!-- Window -->
<window id="0" name="GridBoxWindow" text="Window" label="TestDialog" width="220" height="250" flags="#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget">
  <gridbox spacing="3" columns="2" expand="yes">
      <checkbox text="Run only one Instance" disabled="yes" Flags=""/>
      <progressbar text="Vrey vreyv rye dsqj jsqhdk hqskjdh kjqshd kjqhsdjk hqjkdh kjqhdk qhkj"/>
      <trackbar text="Ole" invisible="yes" Flags="   #PB_TrackBar_Ticks | #PB_TrackBar_Ticks|#PB_TrackBar_Ticks"/>
      <option text="option 1" />
      <option text="option 2" />
      <listview text="option 3" height="50" />
      <button text="Ole 2" />
      <listicon text="option 4" height="50" />
      <string text="string content" />
      <editor text="editorgadget" height="50" />
      <text text="Text gadget" />
  </gridbox>
</window> 
On peut tout combiner, mettre une gridbox dans une gridbox qui est lui-meme dans un vbox. Ensuite tout est calculé automtiquement en fonction des contraintes specifiées, ce qui est tres pratiques quand on fait du multi OS car souvent les fonts sont pas les meme et la taille des controles non plus. Vous pouvez meme laisser ces fichiers XML en externe de votre appli, comme ca vos utilisateurs peuvent modifier l'interface comme bon leur semble ;)
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Runtime library & Formulaire (Pure Basic 5.20 Beta)

Message par falsam »

Fred a écrit :Il y aussi un container gridbox:
Merci pour cet exemple de fichier xml.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: Runtime library & Formulaire (Pure Basic 5.20 Beta)

Message par Patrick88 »

bleurk, ça me rappel horriblement le langage de description de fenêtre, le DCL + AutoLisp d'autoCAD... arglll

mais... d'un autre coté, cela pourrait permettre de faire un éditeur DCL, vu la similitude des commandes

:roll:


Patrick
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Runtime library & Formulaire (Pure Basic 5.20 Beta)

Message par Kwai chang caine »

Alors la jusqu'a maintenant tant bien que mal, j'arrivais à suivre les evolutions de PB (Peut etre "quelques" subtilités m'avaient échapées, mais je comprenais au moins à quoi ça sert)
Mais pour le coup, cette nouvelle fonction, j'y comprend rien et ça fait un peu peur :oops:

Déjà le coup des modules, c'est pas évident, j'ai compris que c’était comme en VB, pour avoir des modules réutilisables à volonté sans choquer les variables...je ne sais pas si c'est le seul avantage ???

Mais pour le runtime :

A quoi ça sert exactement ?
Ca vient d'ou ??? c'est surement déjà utilisé quelque part, ou ça sort du cerveau torturé de FRED :mrgreen:
PB deviendrait aussi un espèce de langage de scripts maintenant ?
Ca va permettre d'interfacer avec d'autres applis ou c'est juste pour "Scripter" PB ?
Aura-t-on plus d'explications de la part de FRED et en french si possible, parce que en anglais ça facilite pas vraiment la compréhension... :(

Et pourquoi pas une interview juste sur ces deux fonctions..parce que cette fois moi je trouve que c'est un sacré virage :lol:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Runtime library & Formulaire (Pure Basic 5.20 Beta)

Message par kernadec »

bonjour KCC
heureux de te lire, j'aime beaucoup les questions,
dont tu connais les réponses, mais que tu pose pour la communauté. :wink:
Pour répondre à ton inquiétude, :)
Beaucoup de choses sur Net sont du chinois pour moi aussi.... :mrgreen:
le XML est en quelque sorte le langage "mandarin" du Net
les Apis Google , Net Framework, mdsn etc.... sont accessibles en XML
Donc, Si PB devient capable d'inclure et faire exécuter du XML avec nos codes.
je suis fan, c'est trop cool... :D

Bonne journée KCC
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Runtime library & Formulaire (Pure Basic 5.20 Beta)

Message par Micoute »

Et c'est quand même bien d'avoir un langage qui évolue sans qu'on ai trop à remanier les code et c'est tant mieux, car je ne le referais pas tous les jours, comme disait Marie-Pierre Casey.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Torp
Messages : 360
Inscription : lun. 22/nov./2004 13:05

Re: Runtime library & Formulaire (Pure Basic 5.20 Beta)

Message par Torp »

+1 tout comme Kwai chang caine :)
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Runtime library & Formulaire (Pure Basic 5.20 Beta)

Message par Ar-S »

J'avoue que, non le XML, mais que ce "runtime" me perturbe aussi.
C'est un interpréteur XML ? en gros le XML est un standard bien utilisé en ligne et notre PB pour exploiter les pages en ligne qui l'utilisent ? Je vais attendre sagement la doc pour ce nouveau morceau mais ça parait bien sympa.
~~~~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
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Runtime library & Formulaire (Pure Basic 5.20 Beta)

Message par Kwai chang caine »

bonjour KCC
heureux de te lire, j'aime beaucoup les questions,
dont tu connais les réponses, mais que tu pose pour la communauté.
Merci mon bon KERNADEC, moi aussi je suis content de te lire :wink:
En fait, je pense que pas mal de personnes se posent des questions, mais n'osent pas les poser, peut etre de peur du ridicule.
Mais j'ai appris que le ridicule ne tue pas..sinon y'a longtemps que je serais mort :D
Peut etre même dans l'oeuf :mrgreen: :oops:

Moi je suis content que PB y progresse, et je me doute que FRED qui a une connaissance monstrueuse dans la prog, si il affuble PB de cette nouvelle robe, c'est qu'il a des raisons que nous comprendront surement plus tard.
Comme nous tous, je lui fait evidemment confiance en dehors du fait que je n'ai pas trop le choix non plus :lol:
Mais c'est pas parce que l'on sait qu'une piqure va nous soulager...que l'on en a pas peur :mrgreen:

Moi aussi j'attends que les copains beaucoups plus intelligent que moi fournissent des exemples et de lire aussi la doc, pour essayer de comprendre 8)

J'ai lu aussi que certains C ou le D, mais pas le C standard autorisent les procédures dans les procédures, FRED a déjà fait le premier pas avec le GOSUB dans une procédure, peut etre qu'un jour il voudra essayer de faire que PB sache faire ce que le D sait faire :D

Ca va devenir un avion ce PB....moi je commence à avoir les chocotes :oops:
Quand je pense que "certaines personnes" trouvent que les GIF c'est compliqué à coder :roll:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre