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.
Quelques SUBs, en vrac - Page 2 Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Quelques SUBs, en vrac - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Quelques SUBs, en vrac - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Quelques SUBs, en vrac - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Quelques SUBs, en vrac - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Quelques SUBs, en vrac - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Quelques SUBs, en vrac - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Quelques SUBs, en vrac - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Quelques SUBs, en vrac - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Quelques SUBs, en vrac - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Quelques SUBs, en vrac - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Quelques SUBs, en vrac - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Quelques SUBs, en vrac - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Quelques SUBs, en vrac - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Quelques SUBs, en vrac - Page 2 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

 

 Quelques SUBs, en vrac

Aller en bas 
+5
Klaus
Yannick
Jicehel
papydall
JL35
9 participants
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
bignono

bignono


Nombre de messages : 1127
Age : 67
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptySam 19 Jan 2013 - 0:21

Merci pour ces quelques sub dont certaines vont m'être certainement très utiles! Ces derniers jours j'étais absent du forum...
A+
Revenir en haut Aller en bas
Yannick




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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: re   Quelques SUBs, en vrac - Page 2 EmptySam 19 Jan 2013 - 13:44

Une petit début pour une sub objet

Code:
sub Objet(Type%,V%,H%,W%,T%,L%,P%)
  If Variable("NO%")=0:Dim NO% :NO%=0:Else:NO%=NO%+1:End_If
  Select Type%
      Case 1
      ' Form
      If NO%>0 Then Form NO%
      Case 2
      ' Alpha
      Alpha NO%
      Case 3
      ' Edit
      Edit NO%
      Case 4
      ' Combo
      Combo NO%
      case 5
      ' List
      List NO%
      Case 6
      ' Dlist
      Dlist NO%
      Case 7
      ' Memo
      Memo NO%
      Case 8
      ' Container
      Container NO%
      Case 9
      ' Container option
      Container_Option NO%
      Case 10
      ' Option
      Option NO%
      Case 11
      ' Check
      Check NO%
      Case 12
      ' Button
      Button NO%
      Case 13
      ' Grid
      Grid NO%
      Case 14
      ' Picture
      Picture NO%
      Case 15
      ' Sound
      Sound NO%
      Case 16
      ' Movie
      Movie NO%
      Case 17
      ' Image
      Image NO%
  End_Select
  ' Visibilité
  If V%<1 Then hide NO%
  ' Dimensions
  If H%>0 Then Height NO%,H%
  If W%>0 Then Width NO%,W%
  ' Placement
  If NO%=0
      If T%>0 : Top NO%,T% :Else:Top NO%,(Screen_y-H%)/2:End_If
      If L%>0 : Left NO%,L% :Else :Left NO%,(Screen_x-W%)/2:End_If
  Else
      If T%>0 then Top NO%=T%
      If L%>0 then Left NO%=L%
  End_If 
  ' filiation
  If P%>0 then Parent NO%,P%
End_Sub

Type%=objet
V%= Visible ou caché (1/0)
Dimensions :
H%=Height
W%=Width
Emplacement :
T%=Top
L%=Left
Filiation :
P%=Parent

La valeur 0 est réservé pour "Sans Valeur", la valeur est donc celle par défaut de l'objet

c'est un peu long à cause des commentaires et la liste des objets n'est pas complète.
c'est une base de travail...
Qu'en pensez vous ?


Dernière édition par ygeronimi le Sam 19 Jan 2013 - 23:54, édité 1 fois (Raison : correction)
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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptySam 19 Jan 2013 - 16:43

Ygeronimi s’est remis au boulot !

Ce que tu as tenté est bien.

Maintenant mes mais :

LIGNE 2 , tu dois initialiser no% à 1 et non à 0 sinon ça ne marche pas.
Code:
 If Variable("NO%")=0:Dim NO% :NO%=1:Else:NO%=NO%+1:End_If
LIGNE 67 et 68 , change le signe = par une virgule
Code:
 If T%>0 then Top NO%,T%
 If L%>0 then Left NO%,L%

CONTINUE !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
bignono

bignono


Nombre de messages : 1127
Age : 67
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptySam 19 Jan 2013 - 17:16

Et à la ligne 51 movie NO% au lieu de movie N!
Wink Wink Wink
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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptySam 19 Jan 2013 - 20:25

La SUB Objet(….) crée par Ygeronimi me semble un peu difficile à utiliser.
Je m’explique :
Pour l’appeler on doit lui fournir (entre autres) un type.
Or ce type est une valeur numérique définie ainsi :
1 pour une FORM
2 pour un ALPHA
3 pour un EDIT
4 pour un COMBO
5 pour une LIST
etc..
Pratiquement est-ce qu’on peut retenir ces valeurs ? Moi non !

J’ai donc repris l’idée de Ygeronimi et j’ai modifié la procédure de telle sorte qu’on puisse l’appeler en lui transmettant comme type non pas une valeur numérique mais une chaîne de caractères explicite en appelant les objets par leur nom.

Dans le code suivant, j’ai indiqué comment se fait l’appel.

Code:
label quit
dim n_container%

' Exemple d'appel de SUB Creat_Objet(....)

Creat_Objet("container",1,400,400,10,50,0)
  n_container% = no%
Creat_objet("alpha",1,100,100,100,100,n_container%)
  hint no%,"Je suis un ALPHA" : font_color no%,0,0,255 : caption no%,"UN ALPHA"
Creat_Objet("MEMO",1,100,100,200, 100,n_container%)
  item_add no%,"Je suis un MEMO"
Creat_Objet("LIST",1,150,160,10,200,n_container%)
  item_add no%,"Je suis une liste" : item_add no%,""
  item_add no%,"1er élément de liste" : item_add no%,"2ème élément de liste"
Creat_Objet("button",1,0,150,300,220,n_container%)
  caption no%,"Je suis bon à cliquer !" : on_click no%,quit

end
' ******************************************************************************
quit:
terminate
return : ' cette commande n'est pas nécessaire, mais elle est là pour les règles de l'art !

' *****************************************************************************
' Type$ indique le type de l'objet : FORM, ALPHA, EDIT etc...
' V% = 0 ---> l'objet sera invisible (HIDE); V% = 1 ---> l'objet sera visible (SHOW)
' H% ---> HEIGHT ; W% ---> WIDTH; T% ---> TOP; L% ---> LEFT
' P% ---> PARENT <--- La valeur 0 pour indiquer que l'objet n'a pas de parent (orphelin !!!)
SUB Creat_Objet(Type$,V%,H%,W%,T%,L%,P%)
      If Variable("NO%") = 0 : Dim NO% : NO% = 1 : Else : NO% = NO% + 1 : End_If

      if upper$(Type$) = "FORM"  then Form NO%
      if upper$(type$) = "ALPHA" then Alpha NO%
      IF UPPER$(Type$) = "EDIT"  then Edit NO%
      IF UPPER$(Type$) = "COMBO" then Combo NO%
      IF UPPER$(Type$) = "LIST"  then List NO%
      IF UPPER$(Type$) = "DLIST" then Dlist NO%
      IF UPPER$(Type$) = "MEMO"  then Memo NO%
      IF UPPER$(Type$) = "CONTAINER" then Container NO%
      IF UPPER$(Type$) = "CONTAINER_OPTION" then Container_Option NO%
      IF UPPER$(Type$) = "OPTION" then Option NO%
      IF UPPER$(Type$) = "CHECK"  then Check NO%
      IF UPPER$(Type$) = "BUTTON" then Button NO%
      IF UPPER$(Type$) = "GRID"  then Grid NO%
      IF UPPER$(Type$) = "PICTURE" then Picture NO%
      IF UPPER$(Type$) = "SOUND"  then Sound NO%
      IF UPPER$(Type$) = "MOVIE"  then Movie NO%
      IF UPPER$(Type$) = "IMAGE"  then Image NO%

  ' Visibilité
      If V% < 1 Then hide NO%
  ' Dimensions
      If H% > 0 Then Height NO%,H%
      If W% > 0 Then Width NO%,W%
  ' Placement
      If NO% = 1
        If T% > 0 : Top NO%,T% : Else : Top NO%,(Screen_y-H%)/2 : End_If
        If L% > 0 : Left NO%,L%: Else : Left NO%,(Screen_x-W%)/2: End_If
      Else
        If T% > 0 then Top NO%,T%
        If L% > 0 then Left NO%,L%
    End_If
  ' filiation
    If P% > 0 then Parent NO%,P%
END_SUB
' ******************************************************************************

C’est à vous de réagir si ça vous intéresse.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptySam 19 Jan 2013 - 20:41

Je m'étais fais la même réflexion, pas pratique de manipuler les types numériques d'objets.
Ta solution est mieux, mais encore un peu... lourde, à mon avis, avec la série de IF upper$(...

Encore une fois, je regrette le bon vieux basic avec le Select Case qui fonctionnait aussi bien avec des variables alphanumériques que des variables numériques, du genre
SELECT UPPER$(Type$)
CASE "FORM": ...
CASE "ALPHA"
c'est (c'était) quand même plus simple à lire (et à coder).
Revenir en haut Aller en bas
Klaus

Klaus


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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptySam 19 Jan 2013 - 20:52

Alors, moi aussi, j'ai envie de contribuer aux procédures réutilisables. Donc, extraits de KGF_SUB.bas, 3 procédures qui sont utilisables SANS KGF.dll:

1. Alignement d'un texte dans un objet (edit, memo, ...). Il faut donner le numéro de l'objet:
Code:
' === alignement d'un texte
Sub Align(No%,T$,Alignement$,WC%)
  Dim_Local sp%,x%,t%        : ' Définition des variables locales
  If Variable("Align$")=0 then Dim Align$ : ' On doit définir une variable globale pour retourner la chaine calculée
  sp% = text_width(" ",No%)  : ' La variable sp% correspond à la taille d'un espace
  t% = text_width(T$,No%)    : ' La variable t% correspond à la taille du texte
  ' Teste si l'on a demandé un affichage centré
  If Alignement$="C"
    ' *** bug dans Panoramic ***  x% = int((w%-sp%-t%)/sp%/2)
    x% = int((WC%-sp%-t%)/sp%*2)  : ' Calcul du nombre d'espaces à ajouter devant la chaine
  Else
    ' Teste si l'on a demandé un affichage à droite
    If Alignement$="D" Then x% = int((WC%-sp%-t%)/sp%) - 1  : ' Calcul du nombre d'espaces à ajouter devant la chaine
  End_If
  if x% > 0 then T$ = string$(x%," ")+T$ : ' On ajoute les espaces devant la chaine (0 si alignement à gauche)
  Align$ = T$  : ' On place la chaine modifiée dans la chaine de retour
End_Sub

2. Alignement d'un texte avec plus d'options, et il n'y a plus besoin de numéro d'objet:
Code:
' === alignement d'un texte avec police, taille, gras
Sub AlignEX(T$,Alignement$,WC%,police$,taille%,gras%)
  Dim_Local sp%,x%,x1%,t%,i%, TT$        : ' Définition des variables locales
  If Variable("AlignEX$")=0 then Dim AlignEX$ : ' On doit définir une variable globale pour retourner la chaine calculée
  ' chercher le premier numéro d'objet libre
  i% = 1
  while object_exists(i%)=1
    i% = i% + 1
  end_while
  ' créer un ALPHA avec les bons attributs
  alpha i% : font_name i%,police$ : font_size i%,taille%
  if gras%=1 then font_bold i%
  sp% = text_width(" ",i%)  : ' La variable sp% correspond à la taille d'un espace
  t% = text_width(T$,i%)    : ' La variable t% correspond à la taille du texte
  ' Teste si l'on a demandé un affichage centré
  If Alignement$="C"
    ' *** bug dans Panoramic ***  x% = int((w%-sp%-t%)/sp%/2)
    x% = int((WC%-sp%-t%)/sp%*2)  : ' Calcul du nombre d'espaces à ajouter devant la chaine
    x1% = x%
  Else
    ' Teste si l'on a demandé un affichage à droite
    If Alignement$="D"
      x% = int((WC%-sp%-t%)/sp%) - 1  : ' Calcul du nombre d'espaces à ajouter devant la chaine
      x1% = 0
    else
      x1% = int((WC%-sp%-t%)/sp%) - 1  : ' Calcul du nombre d'espaces à ajouter devant la chaine
      x% = 0
    end_if
 End_If
  TT$ = T$
  if x% > 0 then TT$ = string$(x%," ")+TT$ : ' On ajoute les espaces devant la chaine (0 si alignement à gauche)
  if x1% > 0 then TT$ = TT$+string$(x1%," ") : ' On ajoute les espaces derrière la chaine (0 si alignement à gauche)
  AlignEX$ = TT$  : ' On place la chaine modifiée dans la chaine de retour
  delete i% : ' supprimer le ALPHA interne
End_Sub

3. remplacement de toutes tes occurrences d'un caractère par un autre dans une chaîne:
Code:
' === remplacer toutes les occurrences d'un caractère par un autre
sub RemplacerCaracteres(t$,c1$,c2$)
  if variable("RemplacerCaracteres$")=0 then dim RemplacerCaracteres$
  dim_local p%,s$
  s$ = t$
  p% = instr(s$,c1$)
  while p%>0
    if p%=1
      s$ = c2$+mid$(s$,p%+1,len(s$))
    else
      s$ = left$(s$,p%-1)+c2$+mid$(s$,p%+1,len(s$))
    end_if
    p% = instr(s$,c1$)
  end_while
  RemplacerCaracteres$ = s$
end_sub

EDIT

l'utilisation de ces procédures est montrée dans demo_KGF_SUB.bas.


Dernière édition par Klaus le Sam 19 Jan 2013 - 21:09, édité 1 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptySam 19 Jan 2013 - 20:58

@L35:
Tu crées une chaine du type "alpha......edit......memo.....list.... " etc. L'important, c'est de donner un nombre de caractères identiques à chaque mot-cle, en complétant par n'importe quoi (ici, des points). Puis tu fais
Code:

type% = (instr(chaine_type$,type$)+n%-1)/n%
select i%
  case 1: ' alpha
  case 2: ' edit
  case 3: ' memo
  case 4: ' list
...
end_select
chaine_type$ est cette chaîne de référence, type$ est un mot_clé recherché, et n% est la longueur retenue pour tous les mots-clé.

Note: j'ai mis les mots-clé dans n'importe quel ordre, sans lien avec le type d'objet. Techniquement, ce n'est pas nécessaire pour piloter le SELECT. Ce serait juste pour l'élégance...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptySam 19 Jan 2013 - 21:25

Intéressant (j'étais en train de chercher une solution ...), je note.
et tes Subs, intéressantes aussi.

Suite à la tienne qui remplace un caractère par un autre, j'en ai une qui remplace toutes les occurences d'un mot par un autre dans une chaîne:
Code:
SUB Replace(a$,b$,c$)
' Remplace dans a$ les occurences de b$ par c$ (tailles différentes éventuelles)
' chaîne résultante dans rs_ch$
DIM_LOCAL rm_k%, rm_u%, ff_a$
IF VARIABLE("rs_ch$") = 0 THEN DIM rs_ch$
rs_ch$ = a$: rm_k% = INSTR(rs_ch$, b$)
WHILE rm_k% > 0
    rs_ch$ = LEFT$(rs_ch$, rm_k%-1) + c$ + MID$(rs_ch$, rm_k%+LEN(b$), 500): ' nouvelle chaîne
    rm_u% = rm_k%+LEN(c$): ff_a$ = MID$(rs_ch$, rm_u%, 500)
    rm_k% = INSTR(ff_a$, b$)
    IF rm_k% = 0 THEN EXIT_WHILE
    rm_k% = rm_k%+rm_u%-1
END_WHILE
END_SUB
on pourrait aussi prévoir d'autres paramètres des objets, comme le Caption, la couleur, mais tout ça entraîne bien loin.

Pour la définition des objets, la création d'une chaîne contenant tous les noms d'objets avec la même longueur oblige à s'aligner sur le nom d'objet le plus long, et on ne sait pas s'il n'y en aura pas un plus long plus tard...
On pourrait faire comme ceci (ça ressemble à la solution papydall, mais j'ai mis le numéro d'objet à attribuer dans les paramètres d'appel, perso je préfère):
Code:
Objets("Button",7,1,50,20,200,150,0): CAPTION 7,"Bouton": ' <- exemple d'appel de la Sub
END

SUB Objets(obj$,No%,V%,T%,L%,W%,H%,P%)
DIM_LOCAL indx%
IF VARIABLE("T_obj$") = 0
  DIM T_obj$
  T_obj$="01SCENE3D;02BUTTON;03EDIT;04MEMO;05COMBO;06ALPHA;07FORM;08LIST;09PICTURE;"
  T_obj$=T_obj$+"10CHECK;11OPTION;12MAIN_MENU;13SUB_MENU;14SOUND;15MOVIE;16TRACK_BAR;"
  T_obj$=T_obj$+"17OPEN_DIALOG;18SAVE_DIALOG;19SCROLL_BAR;20PROGRESS_BAR;21SPIN;"
  T_obj$=T_obj$+"22GRID;23CONTAINER;24;25;26DLIST;27SCENE2D;28TIMER;29;30;31;"
  T_obj$=T_obj$+"32CONTAINER_OPTION;33;34;35;36;37;38;39;40;41IMAGE;"
END_IF
indx% = INSTR(T_obj$,UPPER$(obj$)+";"): indx% = VAL(MID$(T_obj$,indx%-2,2))
SELECT indx%
    CASE 1: SCENE3D No%
    CASE 2: BUTTON No%
    CASE 3: EDIT No%
    ' ....
    ' ....
END_SELECT
TOP No%,T%: LEFT No%,L%
IF W% > 0 THEN WIDTH No%,W%
IF H% > 0 THEN HEIGHT No%,H%
IF P% > 0 THEN PARENT No%,P%
IF V% = 0 THEN HIDE No%
END_SUB
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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptySam 19 Jan 2013 - 23:32

Hello World !
Merci Klaus et JL35 pour vos réactions.
Je vais voir vos codes.
Les belles idées sortent de plusieurs têtes qui réfléchissent ensemble sur un point commun.
JL35, je trouve que ta méthode est bonne.

A l’instar de KGF.dll de Klaus, on peut réaliser ensemble (chacun apportera sa contribution) PANO_SUB qui comportera différentes procédures.
Et au lieu de réinventer la roue à chaque fois, il suffira pour un programmeur d’intégrer dans son programme PANO_SUB par #INCLUDE PANO_SUB ou de copier/coller la ou les SUBs qui l’intéressent.
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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: re   Quelques SUBs, en vrac - Page 2 EmptySam 19 Jan 2013 - 23:52

@ JL35,

Je me suis posé la question sur select et les alphanumerique et j'en suis au même regrets... Sad

@ tous,

Je ne suis pas sur qu'une seule Sub pour tout les objets soit très opportune... scratch
Si on veut une Sub pour tous on est obligé de retreindre les paramètres à leur paramètres communs

Numéro, visibilité , top,left,height, width,parent

@ papydall,

parent 0 est correct puisque 0 renvoi sur le form 0

Edit

tout comme l'initialisation à 0 des objets puisque si je n' appelle pas la sub pour le form 0 il est créé par defaut et à ce moment les attributs s'applique sur le form 0

ce sont les autres objets qui ne sont pas développés... Laughing


Re Edit

dans mon idéal, l'appelle à la sub serait :

Objet ( "objet", Visibilité%,Dim.H%,Dim.L%,Top%,Left%,Parent%)

j'ai essayé de passé la font en paramètre mais j'ai eu droit à une "erreur exception" au premier appel scratch
peut être un minibug de l'éditeur...

RE Re Edit

@ JL35,

Je viens de regarder ton code pour les objets, l'idée me plait même si perso je me garderai la possibilité
de centrer les form avec les paramètre T% et L% à 0

" J'aime bien quand les form sont centrés sur l'écran..." Laughing


Dernière édition par ygeronimi le Dim 20 Jan 2013 - 0:15, édité 4 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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 0:14

Ygeronimi, bien sûr parent 0 renvoie sur FORM 0 mais si tu appelles ta SUB comme ceci , pour créer un ALPHA par exemple (avec no% initialisée à 0):

Code:
objet(2,1,100,100,10,10,0)
tu obtiens le message d’erreur OBJECT number out of range
puisque tu tentes de créer ALPHA 0.
C’est pourquoi je dis que no% doit être initialisée à 1.
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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: re   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 0:18

@ papydall,

si tu initialise NO% à 1 ta sub ne marche pas pour ton form 0

c'est pour cela que je l'initialise à 0 et qu'il faut dans les autres "case" spécifier la condition

if NO%=0 then NO%=NO%+1


Edit :

Ce n'était qu'une ébauche....
...et donc pas complète

Edit

on peut, pour éviter les répétitions, mettre

if Type%>1 and NO%=0 then NO%=NO%+1 avant le "select"


RE Edit

@ JL35,

Par simplicité, il est important à mes yeux que "form" soit en première ou en dernière position de la chaîne...


Dernière édition par ygeronimi le Dim 20 Jan 2013 - 0:28, édité 2 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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 0:27

Dans ce cas ça sera beaucoup de lignes de test
Code:
 if NO%=0 then NO%=NO%+1
Si on initialise no% à 1 et on traite FORM 0 en dehors de la SUB, ne serait-il pas mieux ?

EDIT : J'ai posté avant de voir ton EDIT !


Dernière édition par papydall le Dim 20 Jan 2013 - 0:31, édité 1 fois
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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: re   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 0:30

j'ai fait un edit, on s'est croisé

on peut écrire

if Type%>1 and NO%=0 then NO%=NO%+1

avant le select


Edit : là où tout se complique c'est quand on veut créer plusieurs objets identiques avec une boucle
et des parmètres différents.... scratch
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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 0:36


Je suis content que tu as retrouvé le plaisir de te faire torturer les neuronnes ! Quelques SUBs, en vrac - Page 2 3d-moqueur-rire-3
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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: re   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 0:42

J'ai chopé un rhume d'enfer et je carbure à l'actifed et au Doliprane
Je ne sens plus mes neuronnes...

lol!
Revenir en haut Aller en bas
Yannick




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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: re   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 0:46

J' en reviens à la déclaration de plusieurs objets identiques par un boucle

on va devoir créer les objets
retrouver le numéro de l'objet de départ
refaire une boucle avec une indentation des attributs

( cas de plusieurs edit l'un sous l'autre où à côté de l'autre par exemple )

Pour les captions, il va falloir faire une boucle qui passe en revue tout les objets
et applique le caption à l'objet d'après une lecture de data.... affraid

(cas de plusieurs alpha par exemple )

Edit :

je ne suis pas sûr mais je pense que cela devrait ressembler à çà :
Code:
for x%=0 to Number_objects
        if object_type(x%)=6
        y%=y%+1
        restore
        for z%=1 to (Nombre de data)
          read a$
          if right$(a$,len(a$)-1)="Alpha" then exit_for
        next z%
        for w%=1 to y%
          read a$
        next w%
        caption x%,a$
        end_if
    next x%
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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 1:38

Regarde ceci:
Code:
label quit
dim n_container% ,i%, j%

' Exemple d'appel de SUB Creat_Objet(....)
Creat_Objet("container",1,400,500,10,50,0)
  n_container% = no%
' Appel de SUB Creat_Objet dans 2 boucles imbriquées avec paramètres calculés
 for i% = 1  to 5
    for j% = 1 to 5
        creat_objet("alpha",1,100,100,10+i%*50,10+(j%-1)*100,n_container%)
        caption no%,"ALPHA " + str$((i%-1)*5+j%)
    next j%
 next i%
 
Creat_Objet("button",1,0,100,300,180,n_container%)
  caption no%,"QUIT" : on_click no%,quit
  inactive no% : message "CONTINUER" : active no%
  for i% = 1 to 25
    font_bold i% : font_color i%,rnd(255),rnd(255),rnd(255)
  next i%
end
' ******************************************************************************
quit:
terminate
return : ' cette commande n'est pas nécessaire, mais elle est là pour les règles de l'art !

' *****************************************************************************
' Type$ indique le type de l'objet : FORM, ALPHA, EDIT etc...
' V% = 0 ---> l'objet sera invisible (HIDE); V% = 1 ---> l'objet sera visible (SHOW)
' H% ---> HEIGHT ; W% ---> WIDTH; T% ---> TOP; L% ---> LEFT
' P% ---> PARENT <--- La valeur 0 pour indiquer que l'objet n'a pas de parent (orphelin !!!)
SUB Creat_Objet(Type$,V%,H%,W%,T%,L%,P%)
      If Variable("NO%") = 0 : Dim NO% : NO% = 1 : Else : NO% = NO% + 1 : End_If

      if upper$(Type$) = "FORM"  then Form NO%
      if upper$(type$) = "ALPHA" then Alpha NO%
      IF UPPER$(Type$) = "EDIT"  then Edit NO%
      IF UPPER$(Type$) = "COMBO" then Combo NO%
      IF UPPER$(Type$) = "LIST"  then List NO%
      IF UPPER$(Type$) = "DLIST" then Dlist NO%
      IF UPPER$(Type$) = "MEMO"  then Memo NO%
      IF UPPER$(Type$) = "CONTAINER" then Container NO%
      IF UPPER$(Type$) = "CONTAINER_OPTION" then Container_Option NO%
      IF UPPER$(Type$) = "OPTION" then Option NO%
      IF UPPER$(Type$) = "CHECK"  then Check NO%
      IF UPPER$(Type$) = "BUTTON" then Button NO%
      IF UPPER$(Type$) = "GRID"  then Grid NO%
      IF UPPER$(Type$) = "PICTURE" then Picture NO%
      IF UPPER$(Type$) = "SOUND"  then Sound NO%
      IF UPPER$(Type$) = "MOVIE"  then Movie NO%
      IF UPPER$(Type$) = "IMAGE"  then Image NO%

  ' Visibilité
      If V% < 1 Then hide NO%
  ' Dimensions
      If H% > 0 Then Height NO%,H%
      If W% > 0 Then Width NO%,W%
  ' Placement
      If NO% = 1
        If T% > 0 : Top NO%,T% : Else : Top NO%,(Screen_y-H%)/2 : End_If
        If L% > 0 : Left NO%,L%: Else : Left NO%,(Screen_x-W%)/2: End_If
      Else
        If T% > 0 then Top NO%,T%
        If L% > 0 then Left NO%,L%
    End_If
  ' filiation
    If P% > 0 then Parent NO%,P%
END_SUB
' ******************************************************************************
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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: re   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 2:08

cheers Effectivement on peut faire de cette façon, c'est trop compliqué...

Je vais essayé de rajouter mon bout de code au tien... Laughing
Revenir en haut Aller en bas
Yannick




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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: re   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 2:42

j'ai ajouté çà :
Code:
Sub Nom_alpha()
dim_local x%,z%,a$
' placement du point de lecture des datas à 0
restore
' recherche du début de la liste des captions pour les alphas
for z%=1 to 26
  read a$
  if right$(a$,len(a$)-1)="Alpha" then exit_for
next z%
' attribution des captions pour les alphas
for x%=0 to Number_objects
  if object_type(x%)=6
      read a$
      caption x%,a$
  end_if
next x%
end_sub

data "#Alpha" :data "georges"
data "pierre" :data "stephane"
data "paul"  :data "cosmos"
data "jacques":data "jl35"
data "léon"  :data "maelilou"
data "nestor" :data "jjn4"
data "jean"  :data "jc"
data "isidore":data "nardo"
data "luc"    :data "flower"
data "papydall":data "claude"
data "klaus"  :data "marie"
data "nicolas" :data "jpcr"
data "robert"  :data "jdebord"

avec le simple appel : Nom_alpha()
après la création
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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 13:15

Pourquoi pas puisque ça marche !Quelques SUBs, en vrac - Page 2 Yahoo-supercontent
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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: re   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 14:58

le plus triste de cette sub ,
c'est que je ne me souviens pas de 25 panoramiciens régulier sur le forum Rolling Eyes
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 15:05

J'efface, j'avais pas vu la liste... mais c'est un peu nébuleux (pour moi), c'est vrai qu'avec la neige qui tombe sans arrêt... papydall, ça va ? fait pas trop froid en Tunisie ?
Revenir en haut Aller en bas
Yannick




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

Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: re   Quelques SUBs, en vrac - Page 2 EmptyDim 20 Jan 2013 - 16:34

Avec les idées des uns et des autres additionnées aux miennes,
j'en suis arrivé à ce résultat :
Code:
Objets("Button",1,50,20,200,150,0,"button")
Objets("Alpha",1,10,10,0,0,0,"alpha")
END

SUB Objets(obj$,V%,T%,L%,W%,H%,P%,C$)
DIM_LOCAL indx%
' Numérotation
If VARIABLE("No%")=0:Dim No% :No%=0:Else:No%=No%+1:End_If
' Création de l'objet
IF VARIABLE("T_obj$") = 0
  DIM T_obj$
  T_obj$="01SCENE3D;02BUTTON;03EDIT;04MEMO;05COMBO;06ALPHA;07FORM;08LIST;09PICTURE;"
  T_obj$=T_obj$+"10CHECK;11OPTION;12MAIN_MENU;13SUB_MENU;14SOUND;15MOVIE;16TRACK_BAR;"
  T_obj$=T_obj$+"17OPEN_DIALOG;18SAVE_DIALOG;19SCROLL_BAR;20PROGRESS_BAR;21SPIN;"
  T_obj$=T_obj$+"22GRID;23CONTAINER;24;25;26DLIST;27SCENE2D;28TIMER;29;30;31;"
  T_obj$=T_obj$+"32CONTAINER_OPTION;33;34;35;36;37;38;39;40;41IMAGE;"
END_IF
indx% = INSTR(T_obj$,UPPER$(obj$)+";"): indx% = VAL(MID$(T_obj$,indx%-2,2))
if indx%<>7 and NO%=0 then NO%=NO%+1
SELECT indx%
    CASE 1: SCENE3D No%
    CASE 2: BUTTON No% :Caption No%,C$
    CASE 3: EDIT No%
    CASE 4: MEMO No%
    CASE 5: COMBO No%
    CASE 6: ALPHA No% :Caption No%,C$
    CASE 7: IF No%>0 THEN FORM No% :Caption No%,C$
    CASE 8: LIST No%
    CASE 9: PICTURE No%
    CASE 10: CHECK No% :Caption No%,C$
    CASE 11: OPTION No% :Caption No%,C$
    CASE 12: MAIN_MENU No%
    CASE 13: SUB_MENU No% :Caption No%,C$
    CASE 14: SOUND No%
    CASE 15: MOVIE No%
    CASE 16: TRACK_BAR No%
    CASE 17: OPEN_DIALOG No%
    CASE 18: SAVE_DIALOG No%
    CASE 19: SCROLL_BAR No%
    CASE 20: PROGRESS_BAR No%
    CASE 21: SPIN No%
    CASE 22: GRID No%
    CASE 23: CONTAINER No% :Caption No%,C$
    CASE 26: DLIST No%
    CASE 27: SCENE2D No%
    CASE 28: TIMER No%
    CASE 32: CONTAINER_OPTION No% :Caption No%,C$
    CASE 41: IMAGE No%
END_SELECT
' Visibilité
If V% = 0 Then hide NO%
' Dimensions
If H% > 0 Then Height NO%,H%
If W% > 0 Then Width NO%,W%
' Placement
If indx% = 7
  If T% > 0 : Top NO%,T% : Else : Top NO%,(Screen_y-H%)/2 : End_If
  If L% > 0 : Left NO%,L%: Else : Left NO%,(Screen_x-W%)/2: End_If
Else
  If T% > 0 then Top NO%,T%
  If L% > 0 then Left NO%,L%
End_If
' filiation
If P% > 0 then Parent NO%,P%
END_SUB

J'ai ajouté la possibilité d'un caption défini dès l'appel mais que l'on peut laisser "vide" par ""
J'ai dans l'idée qu'il serait bien que chaque objet puisse afficher son numéro par défaut dès son affichage.
L'affichage pouvant être initialisé par la suite, cela faciliterai le job pour retrouver le numéro de chacun des
objets par prévisualisation de l'interface.

Qu'en pensez vous ?


Dernière édition par ygeronimi le Dim 20 Jan 2013 - 16:54, édité 1 fois (Raison : correction)
Revenir en haut Aller en bas
Contenu sponsorisé





Quelques SUBs, en vrac - Page 2 Empty
MessageSujet: Re: Quelques SUBs, en vrac   Quelques SUBs, en vrac - Page 2 Empty

Revenir en haut Aller en bas
 
Quelques SUBs, en vrac
Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» Des SUBs en VBS
» Un petit calendrier avec quelques Subs
» Nouvelles fonctions... en vrac
» Ajout de ON_MOUSE_OVER et autres idées en vrac
» deux petites subs

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: