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
» PANORAMIC V 1
Feux de signalisation Emptypar papydall Aujourd'hui à 2:21

» Gestion d'un système client-serveur.
Feux de signalisation Emptypar Klaus Hier à 23:59

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Feux de signalisation Emptypar Marc Hier à 12:14

» @Jack
Feux de signalisation Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Feux de signalisation Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Feux de signalisation Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Feux de signalisation Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Feux de signalisation Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Feux de signalisation Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Feux de signalisation Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Feux de signalisation Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Feux de signalisation Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Feux de signalisation Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Feux de signalisation Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Feux de signalisation Emptypar leclode Mer 17 Avr 2024 - 11:07

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-40%
Le deal à ne pas rater :
Tefal Ingenio Emotion – Batterie de cuisine 10 pièces (induction, ...
59.99 € 99.99 €
Voir le deal

 

 Feux de signalisation

Aller en bas 
3 participants
AuteurMessage
JL35




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

Feux de signalisation Empty
MessageSujet: Feux de signalisation   Feux de signalisation EmptyLun 21 Avr 2014 - 15:57

Tout d'abord, je vous présente mes meilleurs oeufs.

Dans un programme, j'ai un execute_wait qui est très long (plusieurs minutes: il s'agit de la capture d'une page web), et l'utilisateur, moi-même en l'occurence, est bien embêté de ne pas savoir ce qui se pase, si c'est planté, etc.
J'ai essayé de mettre un timer pour faire clignoter un truc pendant ce temps, histoire de faire patienter, mais le remède est pire que le mal: en effet le timer ne passe pas pendant l'execute_wait, les appels s'accumulent, et ça finit par un beau plantage !

Alors j'ai fait une petite sub qui permet d'afficher un feu tricolore: vert, orange ou rouge, dans mon esprit c'est rouge: opération interdite, vert: opération autorisée ou terminée, orange: travail en cours, mais on peut interpréter différemment.
Feux de signalisation Img12
Avec un petit exemple:
Code:
DIM fct%,x%,y%,h%
x%=50: y%=100: h%=150

fct% = 0
Feux(fct%,x%,y%,h%): ' init
wait 1000
Feux(1,0,0,0): ' vert
wait 2000
Feux(2,0,0,0): ' orange
wait 2000
Feux(3,0,0,0): ' rouge
wait 2000
Feux(4,0,0,0): ' suppression après usage
wait 2000
TERMINATE
' ==============================================================================
SUB Feux(fct%,x%,y%,h%)
' Feux de signalisation en x%,y%, hauteur h% (largeur automatique = 2*h%/5)
' ini% = 0: initialisation, ini% = 1: feu vert, ini% = 2: feu orange
' ini% = 3 feu rouge, ini% = 4: suppression de l'objet feux
IF fct%>0
    IF OBJECT_EXISTS(p_f%)=0 THEN EXIT_SUB: ' non initialisé !
    n2d_f% = NUMBER_2D_TARGET: 2D_TARGET_IS p_f%
END_IF
SELECT fct%
    CASE 0: ' initialisation
        IF VARIABLE("p_f%") = 0 THEN DIM p_f%
        IF VARIABLE("h_f%") = 0 THEN DIM h_f%
        IF VARIABLE("w_f%") = 0 THEN DIM w_f%
        IF VARIABLE("r_f%") = 0 THEN DIM r_f%
        IF VARIABLE("n2d_f%") = 0 THEN DIM n2d_f%
        h_f%=h%: w_f%=2*h%/5: r_f%=w_f%/3
        p_f%=8500: WHILE OBJECT_EXISTS(p_f%)=1: p_f%=p_f%+1: END_WHILE
        PICTURE p_f%: TOP p_f%,y%: LEFT p_f%,x%: WIDTH p_f%,w_f%: HEIGHT p_f%,h%
        COLOR p_f%,64,64,64
        n2d_f% = NUMBER_2D_TARGET
        2D_TARGET_IS p_f%: 2D_PEN_WIDTH 2: 2D_PEN_COLOR 128,128,128
        2D_LINE 4,4,w_f%-4,4: 2D_POLY_TO w_f%-4,h_f%-4: 2D_POLY_TO 4,h_f%-4
        2D_POLY_TO 4,4: 2D_FILL_COLOR 128,128,128: 2D_PEN_WIDTH 1
        2D_CIRCLE w_f%/2,h_f%/5,r_f%: 2D_CIRCLE w_f%/2,h_f%/2,r_f%
        2D_CIRCLE w_f%/2,4*h_f%/5,r_f%
    CASE 1: ' Feu vert
        2D_FILL_COLOR 0,255,0: 2D_CIRCLE w_f%/2,4*h_f%/5,r_f%: ' feu vert
        2D_FLOOD w_f%/2,h_f%/5,128,128,128: 2D_FLOOD w_f%/2,h_f%/2,128,128,128
    CASE 2: ' Feu orange
        2D_FILL_COLOR 255,153,0: 2D_CIRCLE w_f%/2,h_f%/2,r_f%: ' feu orange
        2D_FLOOD w_f%/2,h_f%/5,128,128,128: 2D_FLOOD w_f%/2,4*h_f%/5,128,128,128
    CASE 3: ' Feu rouge
        2D_FILL_COLOR 255,0,0: 2D_CIRCLE w_f%/2,h_f%/5,r_f%: ' feu rouge
        2D_FLOOD w_f%/2,h_f%/2,128,128,128: 2D_FLOOD w_f%/2,4*h_f%/5,128,128,128
    CASE 4: ' Suppression de l'objet
        2D_TARGET_IS n2d_f%: DELETE p_f%
END_SELECT
2D_TARGET_IS n2d_f%
END_SUB
' ==============================================================================
Revenir en haut Aller en bas
papydall

papydall


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

Feux de signalisation Empty
MessageSujet: Re: Feux de signalisation   Feux de signalisation EmptyLun 21 Avr 2014 - 20:02

Mine de rien, c’est une bonne illustration des commandes 2D_ ….
Merci JL35.

A propos :  Faut-il inverser les couleurs sur la planète Mars ?
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


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

Feux de signalisation Empty
MessageSujet: Re: Feux de signalisation   Feux de signalisation EmptyLun 21 Avr 2014 - 20:09

Sous forme de SUB, facile à utiliser.

C'est pas mal, ça me fait penser au jeu "milles bornes".

Alors t'as plus de vacances, JL35, c'est pour ça que tu bosses... Very Happy 

A+
Revenir en haut Aller en bas
JL35




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

Feux de signalisation Empty
MessageSujet: Re: Feux de signalisation   Feux de signalisation EmptyLun 21 Avr 2014 - 20:13

A priori je dirais que c'est fort probable, du fait qu'ils marchent sur la tête et que les autos glissent sur le toit.

Une petite remarque concernant la sub ci-dessus: il vaut mieux implanter le picture correspondant (x%,y%) dans un emplacement vierge, s'il y a déjà des objets le picture se glisse par-dessous contrairement à ce que je croyais (je me disais que le dernier objet créé se mettait par-dessus les autres, mais non, il se met dessous...), et le to_foreground ne s'applique pas à un picture.
Une idée qui vient: finalement il vaudrait mieux créer un Form spécial, sans bordures, et ça on peut le mettre en avant.

PS salut Jean Claude, on s'est croisés, eh oui j'ai du boulot en retard ! tu vas voir quand tu y seras toi aussi (bientôt), c'est pas drôle !

PS2: ça marche très bien avec un Form sans bordure au lieu d'un Picture, il se met devant, mais l'inconvénient est que sa largeur minimum est de 132 pixels, quoi qu'on fasse (alors qu'on peut réduire la hauteur comme on veut), et c'est bien embêtant. Donc, fausse bonne idée.
Revenir en haut Aller en bas
Contenu sponsorisé





Feux de signalisation Empty
MessageSujet: Re: Feux de signalisation   Feux de signalisation Empty

Revenir en haut Aller en bas
 
Feux de signalisation
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Animation: Feux de signalisation
» Feux d'artifice

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: