FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Create_Object Emptypar Pedro Hier à 10:37

» Un autre pense-bête...
Create_Object Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Create_Object Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Create_Object Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Create_Object Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Create_Object Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Create_Object Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Create_Object Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Create_Object Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Create_Object Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Create_Object Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Create_Object Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Create_Object Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Create_Object Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Create_Object Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -38%
Ecran PC gaming 23,8″ – ACER KG241Y P3bip ...
Voir le deal
99.99 €

 

 Create_Object

Aller en bas 
4 participants
AuteurMessage
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Create_Object Empty
MessageSujet: Create_Object   Create_Object EmptyMer 20 Mar 2013 - 21:34

Bonsoir à tous et en particulier à Ygeronimi,

En regardant le code de ton jeu "Scrabble...." j'ai été séduit par ta façon de créer l'interface.

J'ai donc repris ton idée pour la faire à ma sauce et adapté à la méthode de repérage des numéros d'objet par un nom%.
Cette version ne traite pas toutes les commandes (EX: ON_CLICK) mais elle traite tous les objets Panoramic, sauf MAIN_MENU et SUB_MENU.

Prenez le temps de lire les commentaires qui contiennent des infos importantes.

Un seul code qui se divise en trois partie; l'aide, une interface d'exemple avec tous les objets et Les procédures nécessaires (pour #INCLUDE).

Code:
' Create_Object par Jean Claude sur inspiration de Objet.lib de Ygeronimi
error_french

' les dim et label ci-dessous sont à insérer dans le programme au sub Dim_Label()
dim n%:label clear_0
dim no%:no%=9:' réserve les numéros d'objet de 1 à 8 pour Form 0 ou autre besoin
'              attention le N°2 est necéssaire pout utiliser la procédure (il est libéré en sortie)
dim clic%,chang%:label Clic,objet_Click,change,objet_change:' pour le traitement des clics et des on_change
' valeurs retournés par le clic ou on_change
dim lig_sel%,item_sel$,txt$,txt_lig$,cap$,papa$,Xcount%,mini%,maxi%,pos%,typ%
dim grid_lig_sel%,grid_col_sel%,grid_cel_txt$,etat_clic%,etat_check%

' pour la démo
label visu_resultat_clic,visu_resultat_memo,visu_resultat_change
dim tour%
height 0,screen_y:width 0,410
memo 3:full_space 3:font_name 3,"DejaVu Sans Mono"
caption 0,str$(number_objects)+" Objets"

Interface()

END

Clic:
' ici définir l'action (branchement) du clic avec son nom
if clic%=BT_quit% then gosub clear_0
if clic%=alpha_1% then gosub visu_resultat_clic
if clic%=ABT_valid% then gosub visu_resultat_clic
if clic%=list_1% then gosub visu_resultat_clic
if clic%=edit_1% then gosub visu_resultat_clic
if clic%=combo_1% then gosub visu_resultat_clic
if clic%=check_1% or clic%=option_1% or clic%=option_2% then gosub visu_resultat_clic
if clic%=picture_1% or clic%=movie_1% then gosub visu_resultat_clic
if clic%=memo_1% then gosub visu_resultat_memo
if clic%=Form_principal% or clic%=0 then gosub visu_resultat_clic
if clic%=container_option_1% or clic%=container_1% then gosub visu_resultat_clic
return

change:
tour%=tour%+1:' pour éviter de remplir Form 0 au démarrage
if tour%>4 then gosub visu_resultat_change
return

visu_resultat_clic:
' item_add 3,""
item_add 3, "        EVENEMENT ON_CLICK"
item_add 3, "Numéro objet_cliqué / Type /Parent      => "+str$(clic%)+" / "+str$(typ%)+" / "+papa$
item_add 3, "Etat  CLICKED  de  l'objet              => "+str$(etat_clic%)
item_add 3, "Etat CHECKED de l'objet  (OPTION/CHECK) => "+str$(etat_check%)
item_add 3, "Caption($) de lobjet                    => "+cap$
item_add 3, "Contenu de l'objet        (EDIT/COMBO) => "+txt$
item_add 3, "Numéro ligne sélectionnée  (LIST/COMBO) => "+str$(lig_sel%)
item_add 3, "item($) ligne sélectionnée (LIST/COMBO) => "+item_sel$:' ce résultat est obtenu par item_index$
item_add 3, "texte ligne sélectionnée  (LIST/COMBO) => "+txt_lig$:' ce résultat est obtenu par item_read$(lig_sel%)
item_add 3, "Count (nombtre de ligne ou d'article)  => "+str$(Xcount%)
item_add 3, "ligne sélectionnée              (GRID) => "+str$(grid_lig_sel%)
item_add 3, "Colonne sélectionnée            (GRID) => "+str$(grid_col_sel%)
item_add 3, "item($) cellule sélectionnée    (GRID) => "+grid_cel_txt$
item_add 3,""
' Clear_Variable_Objet()
return

visu_resultat_memo:
' item_add 3,""
item_add 3, "        EVENEMENT ON_CLICK"
item_add 3, "MEMO"
item_add 3, "Numéro d'objet cliqué  / Type / Parent  => "+str$(clic%)+" / "+str$(typ%)+" / "+papa$
item_add 3, "Etat  CLICKED  de  l'objet              => "+str$(etat_clic%)
item_add 3, "texte de la première ligne              => "+txt_lig$:' ce résultat est obtenu par item_read$(1)
item_add 3, "Count (nombtre de ligne ou d'article)  => "+str$(Xcount%)
item_add 3,""
' Clear_Variable_Objet()
return

visu_resultat_change:
' item_add 3, ""
item_add 3, "        EVENEMENT ON_CHANGE"
item_add 3, "N° objet  changé / Type / Parent        => "+str$(chang%)+" / "+str$(typ%)+" / "+papa$
item_add 3, "Etat  CLICKED  de  l'objet              => "+str$(etat_clic%)
item_add 3, "Contenu de l'objet        (EDIT/COMBO) => "+txt$
item_add 3, "Numéro ligne sélectionnée  (MEMO/COMBO) => "+str$(lig_sel%)
item_add 3, "item($) ligne sélectionnée (MEMO/COMBO) => "+item_sel$:' ce résultat est obtenu par item_index$
item_add 3, "texte ligne sélectionnée  (MEMO/COMBO) => "+txt_lig$:' ce résultat est obtenu par item_read$(lig_sel%)
item_add 3, "Count (nombtre de ligne ou d'article)  => "+str$(Xcount%)
item_add 3, "Etat de  POSITION                (BAR) => "+str$(pos%)
item_add 3,""
' Clear_Variable_Objet()
return

clear_0:
clear 3:' to_foreground Form_principal%
return

' =================== EXEMPLE DE CREATION D'INTERFACE ==========================
Sub Interface()
dim_local Xobjet$,Xparent%,Xwidth%,Xheight%,Xtop%,Xleft%,Xcaption$,Xhint$,cr%,cv%,cb%,fcr%,fcv%,fcb%,Xcursor$

' Création de la Fenêtre Principale
no%=no%+1:dim Form_principal%:Form_principal%=no%
 Xobjet$="form":Xparent%=-1:Xcaption$="Fenêtre Principale":Xhint$="":Xcursor$="O"
 Xwidth%=870:Xheight%=500:Xtop%=screen_y-(Xheight%+10):Xleft%=screen_x-Xwidth%:cr%=170:cv%=220:cb%=255:fcr%=0:fcv%=0:fcb%=0
 Create_Object(Xobjet$,Xparent%,Xwidth%,Xheight%,Xtop%,Xleft%,Xcaption$,Xhint$,cr%,cv%,cb%,fcr%,fcv%,fcb%,Xcursor$)
 border_small no%

' Exemple de création d'un ALPHA et sa Police
no%=no%+1:dim alpha_1%:alpha_1%=no%
 Xobjet$="alpha":Xparent%=Form_principal%:Xwidth%=200:Xheight%=20:Xtop%=10:Xleft%=10
 Xcaption$="ALPHA":Xhint$="alpha_1%":cr%=170:cv%=220:cb%=255:fcr%=255:fcv%=0:fcb%=255:Xcursor$="O"
 Create_Object(Xobjet$,Xparent%,Xwidth%,Xheight%,Xtop%,Xleft%,Xcaption$,Xhint$,cr%,cv%,cb%,fcr%,fcv%,fcb%,Xcursor$)

' Exemple de gestion de la police d'un objet
' La SUB Police_objet(police$,taille%,gra$,italic$,raye$,souligne$)
 Police_objet("Arial",12,"O","O","O","O")

' pour les objets qui suivent j'ai choisi de ne pas utiliser la totalité des variables
' j'en ai entré un certain nombre directement dans l'appel de la procédure
no%=no%+1:dim BT_quit%:BT_quit%=no%
  Xobjet$="button":Xparent%=Form_principal%:Xcaption$="Clear_Form_0":Xhint$="Quitter le programme":Xcursor$="O"
  Create_Object(Xobjet$,Xparent%,100,20,40,10,Xcaption$,Xhint$,170,200,255,0,0,255,Xcursor$)

no%=no%+1:dim check_1%:check_1%=no%
  Xobjet$="check":Xparent%=Form_principal%:Xcaption$="CASE à COCHER":Xhint$="check_1%":Xcursor$="O"
  Create_Object(Xobjet$,Xparent%,200,20,70,10,Xcaption$,Xhint$,170,220,255,255,0,255,Xcursor$)
  Police_objet("Arial",10,"O","O","","O")

no%=no%+1:dim combo_1%:combo_1%=no%
  Xobjet$="combo":Xparent%=Form_principal%:Xcaption$="":Xhint$="combo_1%":Xcursor$="O"
  Create_Object(Xobjet$,Xparent%,200,20,100,10,Xcaption$,Xhint$,190,240,255,50,0,255,Xcursor$)
  Police_objet("Arial",10,"O","O","","")
  item_add no%,"Choix 1":item_add no%,"Choix 2":item_add no%,"Choix 3"

no%=no%+1:dim edit_1%:edit_1%=no%
  Xobjet$="edit":Xparent%=Form_principal%:Xcaption$="":Xhint$="edit_1%":Xcursor$="O"
  Create_Object(Xobjet$,Xparent%,200,20,130,10,Xcaption$,Xhint$,190,240,255,255,0,255,Xcursor$)
  Police_objet("Arial",10,"O","O","","")
  text no%,"edit"

no%=no%+1:dim list_1%:list_1%=no%
  Xobjet$="list":Xparent%=Form_principal%:Xcaption$="":Xhint$="list_1%":Xcursor$="O"
  Create_Object(Xobjet$,Xparent%,50,50,10,250,Xcaption$,Xhint$,200,250,255,0,0,155,Xcursor$)
  Police_objet("Arial",10,"O","","","")
  item_add list_1%,"Liste":item_add list_1%,"item_2"

no%=no%+1:dim memo_1%:memo_1%=no%
  Xobjet$="memo":Xparent%=Form_principal%:Xcaption$="":Xhint$="memo_1%":Xcursor$="O"
  Create_Object(Xobjet$,Xparent%,50,50,70,250,Xcaption$,Xhint$,230,255,255,0,0,155,Xcursor$)
  Police_objet("Arial",10,"","O","","")
  item_add memo_1%,"Memo"

no%=no%+1:dim picture_1%:picture_1%=no%
  Xobjet$="picture":Xparent%=Form_principal%:Xcaption$="":Xhint$="picture_1%":Xcursor$="O"
  Create_Object(Xobjet$,Xparent%,50,50,130,250,Xcaption$,Xhint$,255,255,255,0,0,155,Xcursor$)

no%=no%+1:dim movie_1%:movie_1%=no%
  Xobjet$="movie":Xparent%=Form_principal%:Xcaption$="":Xhint$="movie_1%":Xcursor$="O"
  Create_Object(Xobjet$,Xparent%,50,50,190,250,Xcaption$,Xhint$,0,0,0,0,0,0,Xcursor$)
  Police_objet("Arial",10,"","O","",""):' ne s'applique pas à MOVIE mais l'erreur est traitée

no%=no%+1:dim container_1%:container_1%=no%
  Xobjet$="container":Xparent%=Form_principal%:Xcaption$=" CONTAINER ":Xhint$="container_1%":Xcursor$=""
  Create_Object(Xobjet$,Xparent%,120,140,170,10,Xcaption$,Xhint$,170,220,255,0,50,255,Xcursor$)
  Police_objet("Arial",10,"","O","","")

no%=no%+1:dim progress_bar_1%:progress_bar_1%=no%
  Xobjet$="progress_bar":Xparent%=container_1%:Xcaption$="":Xhint$="progress_bar_1%":Xcursor$="O"
  Create_Object(Xobjet$,Xparent%,100,10,30,10,Xcaption$,Xhint$,0,0,0,0,0,0,Xcursor$)
  max progress_bar_1%,100:position progress_bar_1%,50

no%=no%+1:dim scroll_bar_1%:scroll_bar_1%=no%
  Xobjet$="scroll_bar":Xparent%=container_1%:Xcaption$="":Xhint$="scroll_bar_1%":Xcursor$=""
  Create_Object(Xobjet$,Xparent%,100,10,60,10,Xcaption$,Xhint$,0,0,0,0,0,0,Xcursor$)
  max scroll_bar_1%,100:position scroll_bar_1%,50

no%=no%+1:dim track_bar_1%:track_bar_1%=no%
  Xobjet$="track_bar":Xparent%=container_1%:Xcaption$="":Xhint$="track_bar_1%":Xcursor$=""
  Create_Object(Xobjet$,Xparent%,100,30,90,10,Xcaption$,Xhint$,0,0,0,0,0,0,Xcursor$)
  max track_bar_1%,100:position track_bar_1%,50

no%=no%+1:dim Dlist_trav1%:Dlist_trav1%=no%
  Xobjet$="dlist":Xcaption$="":Xhint$="":Xcursor$=""
  Create_Object(Xobjet$,Xparent%,0,0,0,0,Xcaption$,Xhint$,0,0,0,0,0,0,Xcursor$)

no%=no%+1:dim container_option_1%:container_option_1%=no%
  Xobjet$="container_option":Xparent%=Form_principal%:Xcursor$=""
  Xcaption$=" Container Option ":Xhint$="container_option_1%"
  Create_Object(Xobjet$,Xparent%,120,100,330,10,Xcaption$,Xhint$,170,220,255,0,50,255,Xcursor$)
  Police_objet("Monotype Corsiva",10,"O","","","O")

no%=no%+1:dim option_1%:option_1%=no%
  Xobjet$="option":Xparent%=container_option_1%:Xcaption$="Choix 1":Xhint$="option_1%":Xcursor$="O"
  Create_Object(Xobjet$,Xparent%,100,20,30,10,Xcaption$,Xhint$,170,220,255,255,0,255,Xcursor$)
  Police_objet("Arial",10,"","","","")

no%=no%+1:dim option_2%:option_2%=no%
  Xobjet$="option":Xparent%=container_option_1%:Xcaption$="Choix 2":Xhint$="option_2%":Xcursor$="O"
  Create_Object(Xobjet$,Xparent%,100,20,60,10,Xcaption$,Xhint$,170,220,255,255,0,255,Xcursor$)
  Police_objet("Elephant",10,"","","","O")

' Exemple de création d'un GRID
no%=no%+1:dim grid_1%:grid_1%=no%
  Xobjet$="grid":Xparent%=Form_principal%:Xcaption$="":Xhint$="grid_1%":Xcursor$=""
  Create_Object(Xobjet$,Xparent%,523,293,60,330,Xcaption$,Xhint$,200,240,255,0,0,255,Xcursor$)
  Police_objet("Arial",10,"","","","")
'  Compl_Grid(nb_col%,nb_lig%,nb_col_fixe%,nb_lig_fixe%,BW_col$,BH_lig$,lig_height%,col_width%,cfr%,cfv%,cfb%)
  Compl_Grid(8,17,1,1,"A","A",16,64,150,200,255)
  for n%=2 to 8:grid_write grid_1%,1,n%," Colonne: "+str$(n%-1):next n%
  for n%=2 to 17:grid_write grid_1%,n%,1," Ligne: "+str$(n%-1):next n%
  grid_write grid_1%,2,2,"lig: 1 / col: 1":grid_write grid_1%,2,3,"lig: 1 / col: 2"

' Exemple de création d'un ALPHA_BUTTON
no%=no%+1:dim ABT_valid%:ABT_valid%=no%
  Xobjet$="alpha_button":Xparent%=Form_principal%:Xwidth%=200:Xheight%=20:Xtop%=8:Xleft%=80
  Xcaption$="":Xhint$="alpha_bouton%":cr%=170:cv%=220:cb%=255:fcr%=55:fcv%=100:fcb%=255:Xcursor$="O"
  Create_Object(Xobjet$,Xparent%,Xwidth%,Xheight%,Xtop%,Xleft%,Xcaption$,Xhint$,cr%,cv%,cb%,fcr%,fcv%,fcb%,Xcursor$)
  Transforme_Alpha_Button("Wingdings",18,"O",67)

' SPIN
'  main_menu , sub_menu

End_Sub

' ========================= REGLAGE Clic sur ALPHA_BUTTON ======================
objet_Click:
' gestion couleur Alpha_bouton après click
if number_click=ABT_valid% then Anim_Alpha_bouton(55,100,255)
' ....
' ....
' ....
' ne rien changer ci-dessous
Ctrl_Clic(number_click)
gosub Clic
return

objet_change:
Ctrl_change(number_change)
gosub change
return
' ==============================================================================
'        LES PROCEDURES NECESSAIRES (par #include si vous le souhaitez)
' ------------------------------------------------------------------------------
Sub Clear_Variable_Objet()
lig_sel%=-1:item_sel$="Non traité":txt$="Non traité":txt_lig$="Non traité"
cap$="Non traité":papa$="Non traité":Xcount%=-1:pos%=-1:typ%=-1
grid_lig_sel%=-1:grid_col_sel%=-1:grid_cel_txt$="Non traité":etat_clic%=-1:etat_check%=-1
End_Sub
' ----------------------
Sub Ctrl_change(num_ob%)
Clear_Variable_Objet()
' traitement de on_change suivant type d'objet
dim_local ty%
ty%=object_type(num_ob%):typ%=ty%
chang%=num_ob%
' edit
if ty%=3
  chang%=num_ob%:etat_clic%=clicked(chang%):txt$=text$(chang%)
  papa$=object_parent(chang%):Exit_Sub
end_if
' memo
if ty%=4
  chang%=num_ob%:etat_clic%=clicked(chang%):papa$=object_parent(chang%)
  Xcount%=count(chang%)
  txt_lig$=item_read$(chang%,1)
  Exit_Sub
end_if
' les bar(s)
if ty%=16 or ty%=19
  chang%=num_ob%:papa$=object_parent(chang%)
  pos%=position(chang%)
  Exit_Sub
end_if
' combo
if ty%=5
  chang%=num_ob%:etat_clic%=clicked(chang%):papa$=object_parent(chang%)
  txt$=text$(chang%):lig_sel%=item_index(chang%):item_sel$=item_index$(chang%)
  if lig_sel%<1 then Exit_Sub
  txt_lig$=item_read$(chang%,lig_sel%):Exit_Sub
end_if
End_Sub
message "Ce type d'objet "+str$(to%)+" n'est pas traité à la sub Ctrl_change"
End_Sub
' ------------------------------------------------------------------------------
Sub Ctrl_Clic(num_obj%)
' traitement du clic suivant type d'objet
dim_local to%
to%=object_type(num_obj%):typ%=to%
' button
if to%=2
  clic%=num_obj%:etat_clic%=clicked(clic%)
  cap$=caption$(clic%):papa$=object_parent(clic%)
  Exit_Sub
end_if
' alpha et alpha_button
if to%=6
  clic%=num_obj%:etat_clic%=clicked(clic%):cap$=caption$(clic%)
  papa$=object_parent(clic%):Exit_Sub
end_if
' edit
if to%=3
  clic%=num_obj%:etat_clic%=clicked(clic%):txt$=text$(clic%)
  papa$=object_parent(clic%):Exit_Sub
end_if
' combo
if to%=5
  clic%=num_obj%:etat_clic%=clicked(clic%):papa$=object_parent(clic%)
  txt$=text$(clic%):lig_sel%=item_index(clic%):item_sel$=item_index$(clic%)
  txt_lig$=item_read$(clic%,lig_sel%):Exit_Sub
end_if
' list
if to%=8
  clic%=num_obj%:etat_clic%=clicked(clic%):papa$=object_parent(clic%)
  lig_sel%=item_index(clic%):item_sel$=item_index$(clic%)
  txt_lig$=item_read$(clic%,lig_sel%):Exit_Sub
end_if
' check et option
if to%=10 or to%=11
  clic%=num_obj%:etat_clic%=clicked(clic%):papa$=object_parent(clic%)
  etat_check%=checked(clic%):cap$=caption$(clic%):Exit_Sub
end_if
' picture et memo
if to%=9 or to%=4
  clic%=num_obj%:etat_clic%=clicked(clic%):papa$=object_parent(clic%)
  if to%=4
      Xcount%=count(clic%)
      txt_lig$=item_read$(clic%,1)
  end_if
  Exit_Sub
end_if
' form
if to%=7
  clic%=num_obj%:etat_clic%=clicked(clic%):papa$=object_parent(clic%)
  cap$=caption$(clic%)
  Exit_Sub
end_if
' les bar(s)
if to%=16 or to%=19
  clic%=num_obj%:etat_clic%=clicked(clic%):papa$=object_parent(clic%)
  mini%=min(clic%):maxi%=max(clic%):pos%=position(clic%)
  Exit_Sub
end_if
' Movie
if to%=15
  clic%=num_obj%:etat_clic%=clicked(clic%):papa$=object_parent(clic%)
  Exit_Sub
end_if
' Container et container_option
if to%=23 or to%=32
  clic%=num_obj%:etat_clic%=clicked(clic%):papa$=object_parent(clic%)
  cap$=caption$(clic%)
  Exit_Sub
end_if

' if to%="grid"
message "Cet objet n'est pas traité à la sub Ctrl_clic"
End_Sub
' ------------------------------------------------------------------------------
Sub Create_Object(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
dim_local trouv$
trouv$="":' au cas ou l'objet n'est pas géré
' ----
' GRID
if TY$="grid"
 trouv$="O":grid no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
 on_click no%,objet_Click
end_if
' ----
' CONTAINER_OPTION
if TY$="container_option"
 trouv$="O":container_option no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
 on_click no%,objet_Click
end_if
' ----
' CONTAINER
if TY$="container"
 trouv$="O":container no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
 on_click no%,objet_Click
end_if
' ----
' TRACK_BAR
if TY$="track_bar"
 trouv$="O":track_bar no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
on_change no%,objet_change
end_if
' ----
' SCROLL_BAR
if TY$="scroll_bar"
 trouv$="O":scroll_bar no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
on_change no%,objet_change
end_if
' ----
' PROGRESS_BAR
if TY$="progress_bar"
 trouv$="O":progress_bar no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
end_if
' ----
' MOVIE
if TY$="movie"
 trouv$="O":movie no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
end_if
' ----
' PICTURE
if TY$="picture"
 trouv$="O":picture no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
 on_click no%,objet_Click
end_if
' ----
' MEMO
if TY$="memo"
 trouv$="O":memo no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
 on_click no%,objet_Click
 on_change no%,objet_change
end_if
' -----
' EDIT
if TY$="edit"
 trouv$="O":edit no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
 on_click no%,objet_Click
 on_change no%,objet_change
end_if
' -----
' COMBO
if TY$="combo"
 trouv$="O":combo no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
 on_click no%,objet_Click
 on_change no%,objet_change
end_if
' -----
' OPTION
if TY$="option"
 trouv$="O":option no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
 on_click no%,objet_Click
end_if
' -----
' CHECK
if TY$="check"
 trouv$="O":check no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
 on_click no%,objet_Click
end_if
' -----
' BUTTON
if TY$="button"
 trouv$="O":button no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
 on_click no%,objet_Click
end_if
' -----
' ALPHA
if TY$="alpha" or TY$="alpha_button"
 trouv$="O":alpha no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
 on_click no%,objet_Click
end_if
' ----
' DLIST
if TY$="dlist"
 trouv$="O":dlist no%
end_if
' ----
' LIST
if TY$="list"
 trouv$="O":list no%:Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
 on_click no%,objet_Click
end_if
' ----
' FORM
if TY$="form"
  trouv$="O":form no%
  command_target_is no%
  parent_object(P%)
  width no%,W%:height no%,H%
  if W%=0 then full_space no%
  if L%=0
      left no%,L%
  else
      if L%=1
        left no%,int(screen_x/2-(width(no%)/2))
      else
        if L%>1
            left no%,L%
        end_if
      end_if
  end_if
  if T%=0
      top no%,T%
  else
      if T%=1
        top no%,int(screen_y/2-(height(no%)/2))
      else
        if T%>1
            top no%,T%
        end_if
      end_if
  end_if
caption no%,C$
if H$<>"" then hint no%,H$
Color_Fond_Object(CR%,CG%,CB%)
' Color_Police_Object(PR%,PG%,PB%)
on_click no%,objet_Click
end_if
' ----
' SORTIE
if trouv$="" then message "Ce type d'objet "+TY$+" n'est pas gérer ou n'existe pas"
End_Sub
' ------------------------------------------------------------------------------
Sub Police_objet(police$,taille%,gra$,italic$,raye$,souligne$)
if object_type(no%)=15 or object_type(no%)=16 then Exit_Sub
if object_type(no%)=19 or object_type(no%)=20 then Exit_Sub
if object_type(no%)=26 then Exit_Sub
font_name no%,police$:Font_size no%,taille%:if gra$="O" then font_bold no%
if italic$="O" then font_italic no%:if raye$="O" then font_strike no%
if souligne$="O" then font_underline no%
End_Sub
' ------------------------------------------------------------------------------
Sub Transforme_Alpha_Button(police$,taille%,gra$,chr_caption%)
font_name no%,police$:Font_size no%,taille%:if gra$="O" then font_bold no%
caption no%,chr$(chr_caption%)
End_Sub
' ------------------------------------------------------------------------------
Sub Anim_Alpha_bouton(fcr%,fcv%,fcb%)
dim_local bouton%,xb%,yb%,to%
bouton%=number_click:to%=object_type(bouton%):if to%<>6 or to%=-1 then Exit_sub
if active(bouton%)=0 or show(bouton%)=0 or clicked(bouton%)=0 then Exit_Sub
xb%=top(bouton%):yb%=left(bouton%):top bouton%,xb%+2:left bouton%,yb%+2:font_color bouton%,50,180,50
wait 300:top bouton%,xb%:left bouton%,yb%:font_color bouton%,fcr%,fcv%,fcb%
End_sub
' ------------------------------------------------------------------------------
Sub Compl_Grid(nb_col%,nb_lig%,nb_col_fixe%,nb_lig_fixe%,BW_col$,BH_lig$,lig_height%,col_width%,cfr%,cfv%,cfb%)
    grid_column no%,nb_col%:grid_row no%,nb_lig%:grid_column_fixed no%,nb_col_fixe%
    grid_row_fixed no%,nb_lig_fixe%:grid_row_height no%,lig_height%
    if BW_col$="A"
    grid_column_sizing_on no%
    else
    grid_column_sizing_off no%
    end_if
    if BH_lig$="A"
    grid_row_sizing_on no%
    else
    grid_row_sizing_off no%
    end_if
    grid_column_width no%,col_width%:grid_fixed_color no%,cfr%,cfv%,cfb%
End_Sub
' ---------------------------------------
Sub Dimension_et_Position(P%,W%,H%,T%,L%)
dim_local wb%,hb%,i%
if P%>0
  if object_type(P%)=7
      command_target_is P%
      i%=2:memo i%:full_space i%
      wb%=width(P%)-width(i%):hb%=height(P%)-height(i%):delete i%
  else
      wb%=0::hb%=0
  end_if
end_if
width no%,W%:height no%,H%
if L%=0
  left no%,L%
else
  if L%=1
      left no%,int(width(P%)/2-(width(no%)/2))-(wb%/2)
  else
      if L%>1
        left no%,L%
      end_if
  end_if
end_if
if T%=0
  top no%,T%
else
  if T%=1
      top no%,int(height(P%)/2-(height(no%)/2))-(hb%/2)
  else
      if T%>1
        top no%,T%
      end_if
  end_if
end_if
End_Sub
' -------------------
Sub parent_object(P%)
if P%=-1
  Exit_Sub
else
  parent no%,P%
end_if
End_Sub
' --------------------------------
Sub Color_Fond_Object(CR%,CG%,CB%)
if CR%>=0 and CR%<256
  if CG%>=0 and CG%<256
      if CB%>=0 and CB%<256
        color no%,CR%,CG%,CB%
      end_if
  end_if
end_if
End_Sub
' ----------------------------------
Sub Color_Police_Object(PR%,PG%,PB%)
if PR%>=0 and PR%<256
  if PG%>=0 and PG%<256
      if PB%>=0 and PB%<256
        font_color no%,PR%,PG%,PB%
      end_if
  end_if
end_if
End_Sub
' ----------------------------------------------------------------------
Sub Attributs_Base(TY$,P%,W%,H%,T%,L%,C$,H$,CR%,CG%,CB%,PR%,PG%,PB%,XC$)
  parent_object(P%)
  Dimension_et_Position(P%,W%,H%,T%,L%)
  if H$<>"" then hint no%,H$
  if TY$="button"
      caption no%,C$
      if XC$="O" then cursor_point no%
        Exit_Sub
  end_if
  if TY$="progress_bar"
      if XC$="O" then cursor_hourglass no%
      Exit_Sub
  end_if
  if TY$="scroll_bar" then Exit_Sub
  if TY$="track_bar" then Exit_Sub
  Color_Fond_Object(CR%,CG%,CB%)
  if TY$="movie" then Exit_Sub
  Color_Police_Object(PR%,PG%,PB%)
  if TY$="grid" then Exit_Sub
  if TY$="memo"
      if XC$="O" then cursor_arrow no%
      Exit_Sub
  end_if
  if TY$="picture"
      if XC$="O" then cursor_arrow no%
      Exit_Sub
  end_if
  if TY$="list"
      if XC$="O" then cursor_point no%
      Exit_Sub
  end_if
  if TY$="combo"
      if XC$="O" then cursor_point no%
      Exit_Sub
  end_if
  if TY$="edit" then Exit_Sub
  if TY$="check"
      if XC$="O" then cursor_point no%
  end_if
  if TY$="option"
      if XC$="O" then cursor_point no%
  end_if
  if TY$="alpha_button"
      if XC$="O" then cursor_point no%
  end_if
  caption no%,C$
End_Sub
' ------------------------------------------------------------------------------

' =================== CREATION DES OBJETS DE L'INTERFACE =======================
'                                  AIDE
' liste des variables permetant de ne pas avoir une ligne trop longue pour l'appel de la SUB
' Xobjet$,Xparent%,Xwidth%,Xheight%,Xtop%,Xleft%,Xcaption$,Xhint$,cr%,cv%,cb%,fcr%,fcv%,fcb%
' ------------------------------------------------------------------------------
' Principe: renseigner toutes les variables pour créer un Objet
' 0 ou -1 ou "" suivant les cas pour ne pas renseigner la variable (voir détail)
' (Les variables sont précedées d"un X pour éviter des collisions avec Panoramic)
' ----------------------------------------------------------
' 1) les attributs dimension, position, titre, info-bulle et curseur:
'  description des variables à renseigner pour créer l'objet:
'    Xobjet$ = mot-clé Panoramic de l'objet en minuscule (Ex: "button")
'    Xparent% = PARENT * Remarque: -1 pour ne pas désigner de parent
'    Xwidth% = WIDTH , Xheight% = HEIGHT * Remarque: if Xwidth%=0 then full_space
'    Xtop% = TOP * Remarque: 0 pour position en haut , 1 pour position centrée
'    Xleft% = LEFT * Remarque: 0 pour position à Gauche , 1 pour position centrée
'        2ème Remarque(TOP/LEFT): si le parent est une FORM la hauteur du bandeau
'        et les largeurs du cadre sont prisent en compte par le programme
'    Xcaption$ = CAPTION * Remarque: "" si vous ne voulez pas de caption
'    Xhint$ = HINT (Info_bulle) * Remarque: "" pour ne pas avoir de hint
' Xcursor$ = choisi le type de CURSOR proposé ("O" pour OUI / "" pour N)
'
' Remarque générale pour les variables ci_dessus:
'      si l'objet ne supporte pas une commande et que la variable est tout de
'      même renseignée, le programme n'en tient pas compte (Pas d'erreur)
'      c'est une prévention contre le copier/coller
' ----------------
' 2) Les couleurs:
'  cr%,cv%,cb% = COLOR de l'objet (rouge,vet,bleu)
'  fcr%,fcv%,fcb% = FONT_COLOR de l'objet (rouge,vet,bleu)
'
' Remarque pour les couleurs:
'    pour garder la couleur par défaud de l'objet entrer au moins une donnés hors
'    limite. Ex: 256,0,0 ou -1,-1,-1 ou -1,0,0
'
' 2ème Remarque: si l'objet ne supporte pas l'une des 2 commandes COLOR et FONT_COLOR
'    et que la variable est renseignée le programme n'en tiendra pas compte (Pas d'erreur)
'
' Cas particulier de l'Objet MOVIE:
'    il supporte COLOR mais pas FONT_COLOR donc penser à renseigner cr%,cv%,cb%
' ---------------------------
' 3) Les Objets particuliers:
'    - GRID:
'      créer l'objet comme les autres
'      puis utiliser Compl_Grid(?,?,?,?,?,?,?) avec les variables ci-dessous
'        nb_lig%,nb_col% = nombre de lignes et de colonnes
'        nb_col_fixe%, nb_lig_fixe% = nombre de lignes et de colonnes fixes
'        BW_col$, BH_lig$ = autoriser la modif manuelle des lignes et colonnes "A"=Autoriser
'        lig_height% = hauteur des lignes
'        col_width% = largeur des colonnes
'        cfr%,cfv%,cfb% = Couleur des cellules fixes
'
'    - ALPHA_BUTTON
'        créer un alpha comme les autres avec Xobjet$ = alpha_button
'        puis utiliser la procédure ci-dessous
'        Transforme_Alpha_Button(police$,taille%,gra$,chr_caption$) voir l'exemple
'
'    - MAIN_MENU et SUB_MENU:
'
' ------------------------------------------------------------------------------
'            REMARQUE SUR LE NOM (identifiant%) DONNER AU NUMERO D'OBJET
' créer une variable pour retenir mentalement le numéro de l'objet (no%) n'est pas
' indispensable au fonctionnement de la procédure.
' EX: la ligne => no%=no%+1:dim Form_principal%:Form_principal%=no%  peut être
'    remplacer par => no%=no%+1 sans incidence pour la création de l'object
' ------------------------------------------------------------------------------
'                              CARTOUCHE D'AIDE
' Copier/Coller les 3 lignes ci-dessous pour créer un objet
' rectifier les variables des 2 premières ligne (la 3 reste fixe pour l'appel SUB)

' Xobjet$="":Xparent%=0:Xwidth%=0:Xheight%=0:Xtop%=0:Xleft%=0
' Xcaption$="":Xhint$="":cr%=255:cv%=255:cb%=255:fcr%=0:fcv%=0:fcb%=0
' Create_Object(Xobjet$,Xparent%,Xwidth%,Xheight%,Xtop%,Xleft%,Xcaption$,Xhint$,cr%,cv%,cb%,fcr%,fcv%,fcb%,Xcursor$)



A+


Dernière édition par Jean Claude le Dim 24 Mar 2013 - 14:37, édité 1 fois
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Create_Object Empty
MessageSujet: Re: Create_Object   Create_Object EmptyMer 20 Mar 2013 - 22:55

Intéressant !
Good Idea ! Idea
Deux mérites pour Jean Claude et trois pour Ygeronimi !
Tu ne m'en veux pas Jean Claude, n'est-ce pas ? Laughing
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Create_Object Empty
MessageSujet: re   Create_Object EmptyMer 20 Mar 2013 - 23:11

Bravo Jean Claude !

Elle est chouette ta librairie !

Perso, j'avais séparé les objets pour une raison de paramètres
qui ne peuvent pas être appliqués à tous les objets et un peu pour la rapidité.
Je devais faire une librairie d'attribut pour les objets mais j'ai pas encore eu l'inspiration.
Et, comme tu la souligné, tout passer en paramètre d'une seule sub, affraid ...cà fait un appel un peu long Laughing

Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Create_Object Empty
MessageSujet: Re: Create_Object   Create_Object EmptyJeu 21 Mar 2013 - 7:07

@Papydall,
Le mérite reviens d'abord à Ygeronimi qui a eu l'idée, alors je ne peux pas t'en vouloir de lui donner un point de plus Very Happy

Sinon, j'ai encore du travail sur ce le sujet. Je vais regarder pour le traitement des évènements, il manque SPIN, les options pour GRID sont incomplètes.
Je réfléchis aussi à l’opportunité de gérer HIDE/SHOW ACTIVE/INACTIVE et la remise à zéro de certains objets s'ildoivent être utilisés plusieurs fois.


Merci pour vos réactions A+
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Create_Object Empty
MessageSujet: re   Create_Object EmptyJeu 21 Mar 2013 - 15:30

Une chose à la laquelle il faut réfléchir, ce sont les "on_click".
Dans ma Librairie, celle de base, le paramètre est 0 ou 1 et renvoi
sur le label "Clic" si le paramètre est 1.
La suite est gérée par "Select...case...end_select" dans le label.
Ceci n'est valable que si les numéros d'objets sont connus et existants
pas si les menus sont dynamiques (cas d'un menu langue qui évolue
en ajoutant un fichier Langue.ini dans le dossier Langues )...
Dans la dernière version, j'ai modifié pour avoir éventuellement 4 label
(Clic,Clic2,....)donc les paramètres vont de 0 à 4. Les autres sont gérés
comme suit :
Code:
' menu choix joueurs
Clic2:
  Clic2%=Number_Click :M_Joueur%=Clic2%
  for Gx%=2001 to 2000+count(201)
      if Gx%=Clic2% :Joueur$=item_read$(201,Gx%-2000):end_if
  next Gx%
  for Gx%=2001 to 2000+count(201)
      if object_exists(Gx%)=1 : Mark_off Gx% : else :Exit_for:end_if
  next Gx%
  Mark_on Clic2%
return

Gx% pour Global x% qui est ma variable passe partout
M_Joueur% pour Menu Joueur% qui me mémorise le n° du menu cliqué pour la sauvegarde sur un fichier Param.inf
Joueur$ garde le nom du joueur cliqué donc actif.

Bon, j'ai refait mon stock de dolipran.... Laughing
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Create_Object Empty
MessageSujet: Re: Create_Object   Create_Object EmptyJeu 21 Mar 2013 - 18:34

J'ai pas tout compris drunken , mais je vais essayer.

Par contre tu m'as mis la puce à l'oreille concernant ON_CLICK et CHECK, OPTION il y a deux possibilité:
le clic déclenche l'action inévitable cocher ou décocher, mais il se peut également qu'il serve en même temps de bouton.

Ce matin j'ai ajouter les options qui manquaient pour GRID (comme GRID_ROW_SIZE_ON .....), attention c'est pas encore en ligne.

Je vais créer un alpha_button (objet qui n'existe pas) pour différencier du vrai ALPHA.
Je vais également préparer une procédure pour réinitialiser un objet. Cette procédure pourra servir dans le programme... j'en dit pas plus je mettrais en ligne dès que ce sera fait.

A+
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Create_Object Empty
MessageSujet: re   Create_Object EmptyJeu 21 Mar 2013 - 19:28

@ Jean Claude,

Je suis entrain de revoir mon jeu "Scrabble_records"
je vais te mettre un lien pour que tu vois l'avancée des travaux.
Attention, il n'est pas jouable en l'état mais tu verras ce que je veux dire
pour la librairie, et tu auras ma dernière mouture.

Voilà : lien supprimé

Dès que tu me dis que tu l'as téléchargé, je supprimerai ce lien.
C'est en état de chantier et pas trop présentable. Laughing


Dernière édition par ygeronimi le Jeu 21 Mar 2013 - 20:47, édité 1 fois
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Create_Object Empty
MessageSujet: Re: Create_Object   Create_Object EmptyJeu 21 Mar 2013 - 20:43

C'est fait !

Mais je ne vais pas regarder avant samedi ou dimanche.

Merci pour ton aide.

A+
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Create_Object Empty
MessageSujet: Re: Create_Object   Create_Object EmptyJeu 21 Mar 2013 - 20:46

erreur
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Create_Object Empty
MessageSujet: Re: Create_Object   Create_Object EmptySam 23 Mar 2013 - 22:16

Bonsoir à tous,

@ygeronimi,
Je n'ai pas eu le temps de regarder "Srabble...." car je suis sur mon "Create_object"

@tous
J'ai avancé, mais j'ai encore des BUG (heu... des bug(s) qui m'appartiennent Very Happy )
Ces bug(s) sont uniquement sur l’évènement ON_CHANGE
Donc version juste pour voir...

Faites tourner et regardez les rapports.
Pour les plus courageux essayer de remettre en service la ligne 125. Je ne comprends pas pourquoi j'ai déjà un rapport sur ON_CHANGE sans avoir modifier l'édit (de plus le n° d'objet est faux). C'est également valable
pour tous les objet qui supportent ON_CHANGE. Le bug est dans mon code.....

Pour moi, ce soir c'est terminé, je n"en peux plus de coder et débugger. Je vais aller me distraire un peu.

Toutefois la partie ON_CLICK donne des rapports satisfaisant.
Notez que j'ai mis l'aide à la fin du code.

Code:

Pour Plus de clarté voir le code en début du sujet qui est mis à jour.

A+


Dernière édition par Jean Claude le Dim 24 Mar 2013 - 14:36, édité 4 fois
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Create_Object Empty
MessageSujet: Re: Create_Object   Create_Object EmptySam 23 Mar 2013 - 22:45

J'ai activé la ligne 125 et j'ai testé.

1. l'évènement ON_CHANGE est normal au début, car dans la ligne 125, tu modifies justement le EDIT que tu viens de créer. Donc, tu provoques toi-même l'évènement.

2. le numéro de l'objet dans le rapport est faux, pour une simple erreur de variable dans la ligne 78. Si tu la remplaces par ceci:
Code:
print "N° objet  changé / Type / Parent        => "+str$(chang%)+" / "+str$(typ%)+" / "+papa$
ça devrait marcher mieux.

Beau code !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Create_Object Empty
MessageSujet: Re: Create_Object   Create_Object EmptyDim 24 Mar 2013 - 9:26

Merci Klaus, tu m'as fait avancer.

Concernant l’évènement ON_CHANGE: effectivement tu as raison, je ne sait pas pourquoi j'avais dans l'idée qu'avant le premier END, ON_CHANGE ne serait pas pris en compte. J'ai donc mis un compteur pour ne pas remplir Form 0 dès le départ.

Concernant la ligne 78 effectivement il y avait une erreur de variable.

Je me suis débattu inutilement, hier, avec MIN et MAX en voulant utiliser MIN() et MAX() pour retourner l'état MIN et MAX des objets BAR. Grave erreur: les fonctions MIN(), MAX() n'ont rien à voir avec MIN et MAX. Et je suis tombé dans le piège (çà m'apprendra à lire la doc plus en détail)

Amélioration apportée ce matin:
- correction des bugs ci-dessus
- création de la SUB Clear_Variable_Objet() qui permet de réinitialiser les variables %=-1 et $="Non traité"
Ce qui permet une lecture plus précise du rapport.

J'ai rééditer le code corrigé ci-dessus (pas le premier en début de page)

Il me reste à coder SPIN ET GRID, et ensuite la SUB Reinit_Objet.
Je pense également intégrer le rapport dans une fenêtre indépendante que l'on pourrait appeler à la demande.
Ce sera bien utile en cours de codage...

A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Create_Object Empty
MessageSujet: Re: Create_Object   Create_Object EmptyDim 24 Mar 2013 - 14:44

Une nouvelle version en tout début de page (pour ne pas multiplier les code et /code.

Amélioration:
- le bouton à changé de fonction, il sert maintenant à effacer le contenu de Form 0 dont l'affichage est passé dans un mémo.
- j'ai ajouté une Sub Police_objet(police$,taille%,gra$,italic$,raye$,souligne$)


A bientôt pour la suite
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Create_Object Empty
MessageSujet: Re: Create_Object   Create_Object EmptyLun 25 Mar 2013 - 20:13

Bonsoir,

Je suis arrivé au terme de ce que je voulais faire.

J'ai séparé en trois fichiers.
- Aide_Sub_Creation_des_Objets
- Create_Object_Lib
- Exemple_Base_prog_avec_CreateObjet

Vous les trouverez dans le dossier Base_Create_Objet que vous trouverez sur mon Webdav.

panoramicien@Jean_Claude / MdP: panoramic123 / http://www.mydrive.ch/

A+
Revenir en haut Aller en bas
Contenu sponsorisé





Create_Object Empty
MessageSujet: Re: Create_Object   Create_Object Empty

Revenir en haut Aller en bas
 
Create_Object
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: