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.
Petit défi avec un objet memo. - Page 2 Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Petit défi avec un objet memo. - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Petit défi avec un objet memo. - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Petit défi avec un objet memo. - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Petit défi avec un objet memo. - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Petit défi avec un objet memo. - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Petit défi avec un objet memo. - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Petit défi avec un objet memo. - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Petit défi avec un objet memo. - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Petit défi avec un objet memo. - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Petit défi avec un objet memo. - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Petit défi avec un objet memo. - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Petit défi avec un objet memo. - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Petit défi avec un objet memo. - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Petit défi avec un objet memo. - 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
Le deal à ne pas rater :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G Double SIM à 599€
599 €
Voir le deal

 

 Petit défi avec un objet memo.

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

papydall


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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 11:10

Klaus est en forme  :  le Forum se porte bien ! bounce 
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
pan59

pan59


Nombre de messages : 367
Age : 67
Localisation : Wattignies
Date d'inscription : 16/10/2011

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 11:40

Bonjour.

Pour répondre à Jicehel, j'avais un peu décortiqué son code afin de l'adapter à mes besoins.

Mais par contre, je n'avais pas trouvé la solution permettant d'ajouter la position des flèches de direction.

Bon dimanche à tous.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 11:44

ok Pan59, si tu n'as pas trouvé, je m'excuse pour mon commentaire. Je suis un peu râleur des fois...
Revenir en haut Aller en bas
Yannick




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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: re   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 12:48

Super le paramètre s% !

On peut même aller jusqu'à 4 pour faire les 4 coins...Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 12:55

Heu... Est-ce vraiment utile ?

Par contre, j'ai ajouté la possibilité de s%=0 pour "aucune flèche", ce qui revient à faire un rectangle aux coins arrondis:
Code:
' couleur de fond de la form
dim fond_r% : fond_r% = 255
dim fond_g% : fond_g% = 255
dim fond_b% : fond_b% = 255

color 0,fond_r%, fond_g%, fond_b%

dessiner_objet(1,0,100,100,300,200,400,"Traduire")

end

' n%: numero de l'objet de base (n%, n%+1 et n%+2 utilisés)
' s%! sens de la flèche  0 = aucune flèche
'    1=en bas à gauche  2=en bas à droite
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la zone de dessin
' wm%: largeur du mémo
' t$: texte (caption) du bouton
sub dessiner_objet(n%,s%,x%,y%,w%,h%,wm%,t$)
  ' dessiner la bulle
  picture n%
    top n%,y% : left n%,x% : width n%,w%+10 : height n%,h%
    color n%,fond_r%, fond_g%, fond_b%
  2d_target_is n% : 2d_pen_width 2 : 2d_pen_color 195,195,196
  2d_circle 20,10,10 : 2d_circle w%-10,10,10
  if s%=0
    2d_circle w%-10,h%-20,10
    2d_circle 20,h%-20,10
  end_if
  if s%=1 then 2d_circle w%-10,h%-20,10
  if s%=2 then 2d_circle 20,h%-20,10
  2d_rectangle 20,0,w%-10,h%-10
  2d_rectangle 10,10,w%,h%-20
  if s%=1
    2d_line 10,h%-20,0,h%
    2d_line 20,h%-10,0,h%
  end_if
  if s%=2
    2d_line w%,h%-20,w%+10,h%
    2d_line w%-10,h%-10,w%+10,h%
  end_if
  2d_pen_color fond_r%, fond_g%, fond_b%
  2d_line 11,10,w%-2,10
  2d_line 11,h%-1,w%-2,h%-1
  2d_line 20,2,20,10 : 2d_line w%-11,2,w%-11,10
  2d_line 10,h%-21,w%-2,h%-21
  2d_line 20,h%-20,20,h%-12 : 2d_line w%-11,h%-20,w%-11,h%-12
  2d_pen_color 0,0,0
  2d_pen_width 1
  2d_flood 100,150,255,255,0

  ' placer le mémo
  memo n%+1 : top n%+1,top(1)+10 : left n%+1,left(1)+20
    height n%+1,height(1)-30 : width n%+1,wm%

  ' placer le bouton
  button n%+2 : width n%+2,100 : caption n%+2,t$
    top n%+2,top(n%+1)+height(n%+1) : left n%+2,left(n%+1)+(width(n%+1)-width(n%+2))/2
    height n%+2,20
end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Mumu




Nombre de messages : 176
Localisation : 45
Date d'inscription : 20/12/2012

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 13:09

Mais jusque où s’arrêtera t il ?? Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 14:01

Où ? Je ne sais pas. Voici en tout ras, une nouvelle version. Elle ajoute un nouveau paramètre r% (3ème paramètre), qui donne le rayon du cercle utilisé pour les arrondis (ici, réglé à 15 pixels):
Code:
' couleur de fond de la form
dim fond_r% : fond_r% = 255
dim fond_g% : fond_g% = 255
dim fond_b% : fond_b% = 255

color 0,fond_r%, fond_g%, fond_b%

dessiner_objet(1,2,15,100,100,300,200,400,"Traduire")

end

' n%: numero de l'objet de base (n%, n%+1 et n%+2 utilisés)
' s%! sens de la flèche  0 = aucune flèche
'    1=en bas à gauche  2=en bas à droite
' r%: rayon du cercle des coins arrondis
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la zone de dessin
' wm%: largeur du mémo
' t$: texte (caption) du bouton
sub dessiner_objet(n%,s%,r%,x%,y%,w%,h%,wm%,t$)
  ' dessiner la bulle
  picture n%
    top n%,y% : left n%,x% : width n%,w%+r% : height n%,h%
    color n%,fond_r%, fond_g%, fond_b%
  2d_target_is n% : 2d_pen_width 2 : 2d_pen_color 195,195,196
  2d_circle r%*2,r%,r% : 2d_circle w%-r%,r%,r%
  if s%=0
    2d_circle w%-r%,h%-r%*2,r%
    2d_circle r%*2,h%-r%*2,r%
  end_if
  if s%=1 then 2d_circle w%-r%,h%-r%*2,r%
  if s%=2 then 2d_circle r%*2,h%-r%*2,r%
  2d_rectangle r%*2,0,w%-r%,h%-r%
  2d_rectangle r%,r%,w%,h%-r%*2
  if s%=1
    2d_line r%,h%-r%*2,0,h%
    2d_line r%*2,h%-r%,0,h%
  end_if
  if s%=2
    2d_line w%,h%-r%*2,w%+r%,h%
    2d_line w%-r%,h%-r%,w%+r%,h%
  end_if
  2d_pen_color fond_r%, fond_g%, fond_b%
  2d_line r%+1,r%,w%-2,r%
  2d_line r%+1,h%-1,w%-2,h%-1
  2d_line r%*2,2,r%*2,r% : 2d_line w%-r%-1,2,w%-r%-1,r%
  2d_line r%,h%-r%*2-1,w%-2,h%-r%*2-1
  2d_line r%*2,h%-r%*2,r%*2,h%-r%-2
  2d_line w%-r%-1,h%-r%*2,w%-r%-1,h%-r%-2
  2d_pen_color 0,0,0
  2d_pen_width 1
  2d_flood x%+r%+5,y%+5,255,255,0

  ' placer le mémo
  memo n%+1 : top n%+1,top(1)+r% : left n%+1,left(1)+r%*2
    height n%+1,height(1)-r%*3 : width n%+1,wm%

  ' placer le bouton
  button n%+2 : width n%+2,100 : caption n%+2,t$
    top n%+2,top(n%+1)+height(n%+1) : left n%+2,left(n%+1)+(width(n%+1)-width(n%+2))/2
    height n%+2,20
end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 14:27

Petites erreurs dans la fin de ton code (références absolues à l'objet 1 et non au numéro de l'objet passé en paramètre) et petit problème d'affichage de l'objet qui dépasse de la bulle et du bouton qui dépasse aussi:
Code:
' couleur de fond de la form
dim fond_r% : fond_r% = 255
dim fond_g% : fond_g% = 255
dim fond_b% : fond_b% = 255

color 0,fond_r%, fond_g%, fond_b%

dessiner_objet(1,2,15,100,100,300,200,400,"Traduire")

end

' n%: numero de l'objet de base (n%, n%+1 et n%+2 utilisés)
' s%! sens de la flèche  0 = aucune flèche
'    1=en bas à gauche  2=en bas à droite
' r%: rayon du cercle des coins arrondis
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la zone de dessin
' wm%: largeur du mémo
' t$: texte (caption) du bouton
sub dessiner_objet(n%,s%,r%,x%,y%,w%,h%,wm%,t$)
  ' dessiner la bulle
  picture n%
    top n%,y% : left n%,x% : width n%,w%+r% : height n%,h%
    color n%,fond_r%, fond_g%, fond_b%
  2d_target_is n% : 2d_pen_width 2 : 2d_pen_color 195,195,196
  2d_circle r%*2,r%,r% : 2d_circle w%-r%,r%,r%
  if s%=0
    2d_circle w%-r%,h%-r%*2,r%
    2d_circle r%*2,h%-r%*2,r%
  end_if
  if s%=1 then 2d_circle w%-r%,h%-r%*2,r%
  if s%=2 then 2d_circle r%*2,h%-r%*2,r%
  2d_rectangle r%*2,0,w%-r%,h%-r%
  2d_rectangle r%,r%,w%,h%-r%*2
  if s%=1
    2d_line r%,h%-r%*2,0,h%
    2d_line r%*2,h%-r%,0,h%
  end_if
  if s%=2
    2d_line w%,h%-r%*2,w%+r%,h%
    2d_line w%-r%,h%-r%,w%+r%,h%
  end_if
  2d_pen_color fond_r%, fond_g%, fond_b%
  2d_line r%+1,r%,w%-2,r%
  2d_line r%+1,h%-1,w%-2,h%-1
  2d_line r%*2,2,r%*2,r% : 2d_line w%-r%-1,2,w%-r%-1,r%
  2d_line r%,h%-r%*2-1,w%-2,h%-r%*2-1
  2d_line r%*2,h%-r%*2,r%*2,h%-r%-2
  2d_line w%-r%-1,h%-r%*2,w%-r%-1,h%-r%-2
  2d_pen_color 0,0,0
  2d_pen_width 1
  2d_flood x%+r%+5,y%+5,255,255,0

  ' placer le mémo
  memo n%+1 : top n%+1,top(n%)+r% : left n%+1,left(n%)+r%*2
    height n%+1,height(n%)-r%*2 - 30 : width n%+1,width(n%)-r%*4

  ' placer le bouton
  button n%+2 : width n%+2,100 : caption n%+2,t$
    top n%+2,top(n%+1)+height(n%+1)+5 : left n%+2,left(n%+1)+(width(n%+1)-width(n%+2))/2
    height n%+2,20
end_sub
Revenir en haut Aller en bas
Klaus

Klaus


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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 14:43

Problème de référence à l'objet 1 corrigé:
Code:
' couleur de fond de la form
dim fond_r% : fond_r% = 255
dim fond_g% : fond_g% = 255
dim fond_b% : fond_b% = 255

color 0,fond_r%, fond_g%, fond_b%

dessiner_objet(11,1,15,100,100,300,200,400,"Traduire")

end

' n%: numero de l'objet de base (n%, n%+1 et n%+2 utilisés)
' s%! sens de la flèche  0 = aucune flèche
'    1=en bas à gauche  2=en bas à droite
' r%: rayon du cercle des coins arrondis
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la zone de dessin
' wm%: largeur du mémo
' t$: texte (caption) du bouton
sub dessiner_objet(n%,s%,r%,x%,y%,w%,h%,wm%,t$)
  ' dessiner la bulle
  picture n%
    top n%,y% : left n%,x% : width n%,w%+r% : height n%,h%
    color n%,fond_r%, fond_g%, fond_b%
  2d_target_is n% : 2d_pen_width 2 : 2d_pen_color 195,195,196
  2d_circle r%*2,r%,r% : 2d_circle w%-r%,r%,r%
  if s%=0
    2d_circle w%-r%,h%-r%*2,r%
    2d_circle r%*2,h%-r%*2,r%
  end_if
  if s%=1 then 2d_circle w%-r%,h%-r%*2,r%
  if s%=2 then 2d_circle r%*2,h%-r%*2,r%
  2d_rectangle r%*2,0,w%-r%,h%-r%
  2d_rectangle r%,r%,w%,h%-r%*2
  if s%=1
    2d_line r%,h%-r%*2,0,h%
    2d_line r%*2,h%-r%,0,h%
  end_if
  if s%=2
    2d_line w%,h%-r%*2,w%+r%,h%
    2d_line w%-r%,h%-r%,w%+r%,h%
  end_if
  2d_pen_color fond_r%, fond_g%, fond_b%
  2d_line r%+1,r%,w%-2,r%
  2d_line r%+1,h%-1,w%-2,h%-1
  2d_line r%*2,2,r%*2,r% : 2d_line w%-r%-1,2,w%-r%-1,r%
  2d_line r%,h%-r%*2-1,w%-2,h%-r%*2-1
  2d_line r%*2,h%-r%*2,r%*2,h%-r%-2
  2d_line w%-r%-1,h%-r%*2,w%-r%-1,h%-r%-2
  2d_pen_color 0,0,0
  2d_pen_width 1
  2d_flood x%+r%+5,y%+5,255,255,0

  ' placer le mémo
  memo n%+1 : top n%+1,top(n%)+r% : left n%+1,left(n%)+r%*2
    height n%+1,height(n%)-r%*3 : width n%+1,wm%

  ' placer le bouton
  button n%+2 : width n%+2,80 : caption n%+2,t$
    top n%+2,top(n%+1)+height(n%+1) : left n%+2,left(n%+1)+(width(n%+1)-width(n%+2))/2
    height n%+2,20
end_sub
Mais le mémo dépasse "par construction": le modèle proposé par Pan59 était justement cela. Ceci dit, la largeur de ce mémo est géré par le paramètre wm%, et est donc adaptable à loisir. Le bouton est placé en principe au milieu du mémo... J'ai réduit un peu sa largeur.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 19:53

Il m’arrive parfois de me souvenir soudainement d’une formule ou d’une équation mathématique que j’ai vue il y a trente ans.
Mais comme il y a plus de trente ans que je n’ai plus trente ans, cette faculté de me souvenir devient de plus en plus rare.
Bref, je me souviens de l’équation de la super-ellipse dite aussi hyper-ellipse d’équation cartésienne :

 power(abs(x/a),n) + power(abs(y/b),n) = 1

Cette même équation peut être mise sous forme paramétrique plus facile à tracer :

X(t) = power(abs(cos(t)),2/n) * a * sgn(cos(t))
Y(t) = power(abs(sin(t)),2/n) * b * sgn(sin(t))

Avec cette équation on peut obtenir des courbes de différentes formes et notamment des rectangles à coins arrondis.
Le code suivant contient 2 SUBs :
Le 1ère SUB  Super_ellipse(a,b,n)
permet de tracer entre autres un rectangle à coins arrondis.
La 2ème  Tracer_Memo(numero,a,b,n)
permet de tracer un fond pour un MEMO

c'est ici:

C’est à vous d’imaginer d’autres applications utilisant un rectangle, ou un carré à coins arrondis.
NB : L’équation permet suivant les valeurs des paramètres a,b,n d’obtenir plusieurs formes de figures (étoile, losange, cercle, ellipse …)
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 21:54

Papydall
Formidable ta formule. J'avais envie de faire pour mon programme un rectangle avec des coins arrondis. J'ai même pas essayé de le faire, car de toute façon j'aurai perdu beaucoup de temps pour le peu d’intérêt que cela aurait eu en plus. Mais comme tu as fait le code, j'essayerai de m'en servir. Mais pour l'instant je suis sur d'autres outils.
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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 22:43

Voici une SUB pour dessiner un rectangle/carré aux coins arrondis.
L’appel se fait par :
Rectangle_Coins_Arrondis(xc,yc,a,b,n)
avec :
xc,yc : centre du rectangle
a et b : respectivement demi-côté horizontal et demi-côté vertical
n : plus n est grand plus la figure tend vers un rectangle
a,b,n doivent être positives

Code:
rem ============================================================================
rem Rectangle aux coins arrondis
rem   par Papydall
rem ============================================================================
 Rectangle_Coins_Arrondis(300,220,200,100,10)
' Rectangle_Coins_Arrondis(300,220,100,200,10)
' Rectangle_Coins_Arrondis(300,220,100,100,10)
end
rem ============================================================================
' Paramètres  :
' xc,yc : coordonnées du centre du rectangle
' a et b : respectivement demi-côté horizontal et demi-côté vertical
' n : plus n est grand plus la figure tend vers un rectangle
' a,b,n doivent être positives
SUB Rectangle_Coins_Arrondis(xc,yc,a,b,n)
    dim_local pi,p,t,x,y
    pi = acos(-1): p = pi/180
    if a <= 0 or b <= 0 or n <= 0 then message "a,b,et n doivent être posives" : exit_sub
    2d_poly_from xc + a,yc
    for t = 0 to 2*pi+p step p
        x = power(abs(cos(t)),2/n) * a * sgn(cos(t))
        y = power(abs(sin(t)),2/n) * b * sgn(sin(t))
        2d_poly_to xc+x,yc+y
    next t
END_SUB
rem ============================================================================


Dernière édition par papydall le Lun 21 Oct 2013 - 1:04, édité 2 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 22:43

Tiens cosmos, un rectangle à coins arrondis, moins sophistiqué que la formule de papydall (mais où va t'il chercher tout ça ?), mais le résultat est le même:
Code:

PICTURE 1: FULL_SPACE 1
Rectar(1,30,50,500,320,30,16776960)
END

SUB Rectar(obj%,x%,y%,w%,h%,r%,coul%)
' Tracé d'un rectangle à coins arrondis dans l'objet obj%
' en x%, y%, de largeur w%, hauteur h%, rayon de l'arrondi r%
' couleur de remplissage coul% (= R*256*256 + G*256 + B)
DIM_LOCAL a,cr%,cg%,cb%,xc%,yc%,ps,pi: pi = 4*ATN(1)
2D_TARGET_IS obj%
cr% = INT(coul%/65536): cg% = BIN_AND(coul%,65280)/256: cb% = BIN_AND(coul%,255)
IF r% = 0
    2D_FILL_COLOR cr%,cg%,cb%: 2D_RECTANGLE x%,y%,x%+w%,y%+h%
ELSE
    ps = pi/r%
    xc% = x%+r%: yc% = y%+r%
    2D_LINE x%+w%-r%,y%,xc%,y%
    FOR a = pi/2 TO pi STEP ps
        2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a)
    NEXT a
    yc% = y%+h%-r%
    2D_POLY_TO x%,yc%
    FOR a = pi TO 3*pi/2 STEP ps
        2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a)
    NEXT a
    xc% = x%+w%-r%
    2D_POLY_TO xc%,y%+h%
    FOR a = 3*pi/2 TO 2*pi STEP ps
        2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a)
    NEXT a
    yc% = y%+r%
    2D_POLY_TO x%+w%,yc%
    FOR a = 0 TO pi/2+ps STEP ps
        2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a)
    NEXT a
    2D_FLOOD xc%,yc%,cr%,cg%,cb%
END_IF
END_SUB
Revenir en haut Aller en bas
JL35




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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 22:43

On s'est croisés papydall !
Ton rectangle est très joli, mais c'est un pseudo-rectangle... Smile 
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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 23:04

C’est tout à fait bien JL35  (un bon exercice de réflexion !)
Tu as osé et tu as réussi : tu as donc droit à deux mérites.Very Happy 
Mais l’équation du mathématicien  Gabriel Lamé est plus simple surtout sous sa forme polaire.

JL35 a écrit:
Ton rectangle est très joli, mais c'est un pseudo-rectangle...  
En réalité ça s’appelle une  super-ellipse ou une hyper-ellipse
Son équation est due au mathématicien français Gabriel Lamé.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 23:14

Je reconnais que c'est quand même un exploit de tracer cette figure avec une seule formule, c'est bien plus compact que mon essai, et je te tire volontiers mon (hyper-)chapeau pour cette hyper-ellipse dont je ne savais même pas qu'elle existait (j'étais un peu matheux, mais pas trop...) et Gabriel Lamé non plus, comme quoi on en apprend tous les jours !
Revenir en haut Aller en bas
Invité
Invité




Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 23:24

La méthode de Papydall est séduisante. Si je l'avais codé, cela eu été dans une méthode proche de JL35. Maintenant en y réfléchissant, le but est d'avoir des memo avec différents onglets mais en plus avec des onglets de couleurs différentes, mais le cadre prend la couleur de l'onglet. Là ça ce complique! Si quelqu'un a un code propre pour faire cela, ça serait bien.
Je ne suis pas chez moi, et j'écris avec une lampe de poche à la main. Maintenant  Sleep Sleep
Revenir en haut Aller en bas
Klaus

Klaus


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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyDim 20 Oct 2013 - 23:55

Merci, Papydall, pour cette belle formule.

Pour mon cas précis, ce sera moins utile, car elle ne dessine que la forme de base, sans la flèche pointant dans une des directions. Je continue donc à pousser mon exemple plus loin.

Et voici la dernière mouture. J'ai fait plusieurs améliorations:
1. J'ai placé le dessin de la bulle de notification dans une procédure separée. Ainsi, on peur dessiner une bulle de son choix, sans avoir automatiquement le mémo et le bouton.
2. J'ai ajouté un paramètre p% qui donne la longueur horizontale et verticale de la flèche sortant de la bulle (auparavant, c'était identique au rayon de la courbure...)
3 j'ai ajouté des possibilités au paramètre s% qui donne la position de la flèche:
0 = aucune flèche (rectangle arrondi
1 = flèche en bas à gauche
2 = flèche en vas à droite
3 = flèche en haut à gauche
4 = flèche en haut à droite

Voici le code:
Code:
' couleur de fond de la form
dim fond_r% : fond_r% = 255
dim fond_g% : fond_g% = 255
dim fond_b% : fond_b% = 255

color 0,fond_r%, fond_g%, fond_b%

dessiner_objet(11,1,10,100,100,300,200,20,400,"Traduire")

end

' n%: numero de l'objet de base (n%, n%+1 et n%+2 utilisés)
' s%! sens de la flèche  0=aucune flèche
'    1=en bas à gauche   2=en bas à droite
'    3=en haut à gauche  4=en haut à droite
' r%: rayon du cercle des coins arrondis
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la bulle
' p%: longueur horizontale et verticale de la pointe
' wm%: largeur du mémo
' t$: texte (caption) du bouton
sub dessiner_objet(n%,s%,r%,x%,y%,w%,h%,p%,wm%,t$)
  ' dessiner la bulle
  dessiner_fond(n%,s%,r%,x%,y%,w%,h%,p%)
  ' placer le mémo
  memo n%+1 : top n%+1,top(n%)+p%+r% : left n%+1,left(n%)+p%+r%
    height n%+1,height(n%)-r%*2-p%*2 : width n%+1,wm%
  ' placer le bouton
  button n%+2 : width n%+2,80 : caption n%+2,t$
    top n%+2,top(n%+1)+height(n%+1) : left n%+2,left(n%+1)+(width(n%+1)-width(n%+2))/2
    height n%+2,20
end_sub

' n%: numero de l'objet
' s%! sens de la flèche  0=aucune flèche
'    1=en bas à gauche   2=en bas à droite
'    3=en haut à gauche  4=en haut à droite
' r%: rayon du cercle des coins arrondis
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la bulle
' p%: longueur horizontale et verticale de la pointe
sub dessiner_fond(n%,s%,r%,x%,y%,w%,h%,p%)
  picture n%
    top n%,y% : left n%,x% : width n%,w%+p%*2 : height n%,h%+p%*2
    color n%,fond_r%, fond_g%, fond_b%
  2d_target_is n% : 2d_pen_width 2 : 2d_pen_color 195,195,196
  if s%=3 : ' coin en haut à gauche
    2d_line 0,0,p%,p%+r%
    2d_line 0,0,p%+r%,p%
  else
    2d_circle r%+p%,r%+p%,r%
  end_if
  if s%=4 : ' coin en haut à droite
    2d_line w%+p%*2,0,w%+p%-r%,p%
    2d_line w%+p%*2,0,w%+p%,p%+r%
  else
    2d_circle w%-r%+p%,r%+p%,r%
  end_if
  if s%=1 : ' coin en bas à gauche
    2d_line 0,h%+p%*2,p%,h%+p%-r%
    2d_line 0,h%+p%*2,p%+r%,h%+p%
  else
    2d_circle r%+p%,h%+p%-r%,r%
  end_if
  if s%=2 : ' coin en bas à droite
    2d_line w%+p%*2,h%+p%*2,w%+p%-r%,h%+p%
    2d_line w%+p%*2,h%+p%*2,w%+p%,h%+p%-r%
  else
    2d_circle w%-r%+p%,h%+p%-r%,r%
  end_if
  ' parties horizontales de la bulle
  2d_rectangle p%+r%,p%,w%+p%-r%,h%+p%
  2d_rectangle p%,p%+r%,w%+p%,h%+p%-r%
  ' effacer les lignes inutiles
  2d_pen_color fond_r%, fond_g%, fond_b%
  2d_line p%+1,p%+r%,w%+p%-2,p%+r%
  2d_line p%+1,h%+p%-r%-1,w%+p%-2,h%+p%-r%-1
  2d_line p%+r%,p%+1,p%+r%,p%+r%
  2d_line w%+p%-r%-1,p%+1,w%+p%-r%-1,p%+r%
  2d_line p%+r%,h%+p%-2,p%+r%,h%+p%-r%
  2d_line w%+p%-r%-1,h%+p%-2,w%+p%-r%-1,h%+p%-r%
  2d_pen_color 0,0,0
  2d_pen_width 1
  2d_flood x%+r%+5,y%+5,255,255,0
end_sub
Jouez avec le deuxième paramètre de la ligne 8 (actuellement 1 pour flèche en bas à gauche).
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Mumu




Nombre de messages : 176
Localisation : 45
Date d'inscription : 20/12/2012

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyLun 21 Oct 2013 - 1:13

Et vous voulez avec ça que le monde extérieur ne nous prenne pas pour un ramassis d'allumés du bulbe ?

Je lance un jeu de paris. Quelle amélioration / fonctionnalité Klaus va - t - il bien pouvoir imaginer ?
Revenir en haut Aller en bas
Klaus

Klaus


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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyLun 21 Oct 2013 - 1:16

Oserais-je suggérer une amélioration moi-même ? Et si l'on envisageait d'autres formes, comme les cadres 3D que j'ai déjà mentionnés ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Mumu




Nombre de messages : 176
Localisation : 45
Date d'inscription : 20/12/2012

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyLun 21 Oct 2013 - 1:17

Ben ça a pas tardé !
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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyLun 21 Oct 2013 - 1:18

Pour observer les déformations de la figure en fonction du paramètre n.
Il s’agit ici du super-cercle (a=b).

Code:
rem ============================================================================
rem              Super-ellipse   par Papydall
rem ============================================================================
dim n
for n = 0.1 to 10.1 step 0.1
    caption 0,"<CLICK> pour arrêter ... Voyez comment la courbe change avec N = " +str$(int(n*10)/10)
    Super_Ellipse(300,220,200,200,n)
    wait 200 : cls
    if scancode <> 0 then end
next n
Super_Ellipse(300,220,200,200,50)
caption 0," N = 50"
end
rem ============================================================================
' Paramètres  :
' xc,yc : coordonnées du centre de la super-ellipse
' a et b : respectivement demi-diamètre horizontal et demi-diamètre vertical
' Si a = b : la courbe est un super-cercle
' n : plus n est grand plus la figure tend vers un rectangle(ou carré)
' a,b,n doivent être positives
SUB Super_Ellipse(xc,yc,a,b,n)
    dim_local pi,p,t,x,y
    pi = acos(-1): p = pi/180
    if a <= 0 or b <= 0 or n <= 0 then message "a,b,et n doivent être posives" : exit_sub
    2d_poly_from xc + a,yc
    for t = 0 to 2*pi+p step p
        x = power(abs(cos(t)),2/n) * a * sgn(cos(t))
        y = power(abs(sin(t)),2/n) * b * sgn(sin(t))
        2d_poly_to xc+x,yc+y
    next t
END_SUB
rem ============================================================================
EDIT :
Quand Klaus va bien, le Forum va bien !
Voilà où nous en sommes, après un défi lancé par pan59 Exclamation  
lol! 
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyLun 21 Oct 2013 - 3:15

Voilà un code permettant des info-bulles et/ou des cadres 3d:
Code:
' couleur de fond de la form
dim fond_r% : fond_r% = 255
dim fond_g% : fond_g% = 255
dim fond_b% : fond_b% = 250

color 0,fond_r%, fond_g%, fond_b%
width 0,1000

 dessiner_objet_infobulle(11,2,10,100,100,300,200,20,400,"Traduire")
 dessiner_objet_cadre_3d(21,600,100,300,200,"Traduire")

end

' n%: numero de l'objet de base (n%, n%+1 et n%+2 utilisés)
' s%! sens de la flèche  0=aucune flèche
'    1=en bas à gauche  2=en bas à droite
'    3=en haut à gauche  4=en haut à droite
' r%: rayon du cercle des coins arrondis
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la bulle
' p%: longueur horizontale et verticale de la pointe
' wm%: largeur du mémo
' t$: texte (caption) du bouton
sub dessiner_objet_infobulle(n%,s%,r%,x%,y%,w%,h%,p%,wm%,t$)
  ' dessiner la bulle
  dessiner_fond(n%,s%,r%,x%,y%,w%,h%,p%)
  ' placer le mémo
  memo n%+1 : top n%+1,top(n%)+p%+r% : left n%+1,left(n%)+p%+r%
    height n%+1,height(n%)-r%*2-p%*2 : width n%+1,wm%
  ' placer le bouton
  button n%+2 : width n%+2,80 : caption n%+2,t$
    top n%+2,top(n%+1)+height(n%+1) : left n%+2,left(n%+1)+(width(n%+1)-width(n%+2))/2
    height n%+2,20
end_sub

' n%: numero de l'objet de base (n%, n%+1 et n%+2 utilisés)
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la bulle
' t$: texte (caption) du bouton
sub dessiner_objet_cadre_3d(n%,x%,y%,w%,h%,t$)
  ' dessiner la bulle
  dessiner_bord_3d(n%,x%,y%,w%,h%)
  ' placer le mémo
  memo n%+1 : top n%+1,top(n%)+2 : left n%+1,left(n%)+2
    height n%+1,h% : width n%+1,w%
  ' placer le bouton
  button n%+2 : width n%+2,80 : caption n%+2,t$
    top n%+2,top(n%+1)+height(n%+1) : left n%+2,left(n%+1)+(width(n%+1)-width(n%+2))/2
    height n%+2,20
end_sub

' n%: numero de l'objet
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la bulle
sub dessiner_bord_3d(n%,x%,y%,w%,h%)
  picture n%
    top n%,y% : left n%,x% : width n%,w%+4 : height n%,h%+4
    color n%,fond_r%, fond_g%, fond_b%
    color n%,242,230,234
  2d_target_is n% : 2d_pen_width 1
  2d_pen_color 255,254,245
  2d_line 0,0,w%+3,0
  2d_line 0,0,0,h%+3
  2d_pen_color 107,111,97
  2d_line w%+3,0,w%+3,h%+4
  2d_line 0,h%+3,w%+3,h%+3
  2d_pen_color 240,238,225
  2d_line 1,1,w%+2,1
  2d_line 1,1,1,h%+2
  2d_pen_color 169,173,148
  2d_line w%+2,1,w%+2,h%+3
  2d_line 1,h%+2,w%+2,h%+2
  2d_pen_color 0,0,0 : 2d_pen_width 1
end_sub

' n%: numero de l'objet
' s%! sens de la flèche  0=aucune flèche
'    1=en bas à gauche  2=en bas à droite
'    3=en haut à gauche  4=en haut à droite
' r%: rayon du cercle des coins arrondis
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la bulle
' p%: longueur horizontale et verticale de la pointe
sub dessiner_fond(n%,s%,r%,x%,y%,w%,h%,p%)
  picture n%
    top n%,y% : left n%,x% : width n%,w%+p%*2 : height n%,h%+p%*2
    color n%,fond_r%, fond_g%, fond_b%
  2d_target_is n% : 2d_fill_color 255,255,0
  2d_pen_width 2 : 2d_pen_color 195,195,196
  if s%=3 : ' coin en haut à gauche
    2d_line 0,0,p%,p%+r%
    2d_line 0,0,p%+r%,p%
  else
    2d_circle r%+p%,r%+p%,r%
  end_if
  if s%=4 : ' coin en haut à droite
    2d_line w%+p%*2,0,w%+p%-r%,p%
    2d_line w%+p%*2,0,w%+p%,p%+r%
  else
    2d_circle w%-r%+p%,r%+p%,r%
  end_if
  if s%=1 : ' coin en bas à gauche
    2d_line 0,h%+p%*2,p%,h%+p%-r%
    2d_line 0,h%+p%*2,p%+r%,h%+p%
  else
    2d_circle r%+p%,h%+p%-r%,r%
  end_if
  if s%=2 : ' coin en bas à droite
    2d_line w%+p%*2,h%+p%*2,w%+p%-r%,h%+p%
    2d_line w%+p%*2,h%+p%*2,w%+p%,h%+p%-r%
  else
    2d_circle w%-r%+p%,h%+p%-r%,r%
  end_if
  ' parties horizontales de la bulle
  2d_rectangle p%+r%,p%,w%+p%-r%,h%+p%
  2d_rectangle p%,p%+r%,w%+p%,h%+p%-r%
  ' effacer les lignes inutiles
  2d_pen_color fond_r%, fond_g%, fond_b%
  2d_fill_color fond_r%, fond_g%, fond_b%
  2d_rectangle p%+r%-1,p%+2,w%+p%-r%+1,h%+p%-2
  2d_rectangle p%+2,p%+r%-1,w%+p%-2,h%+p%-r%+1
  2d_pen_color 0,0,0
  2d_pen_width 1
  2d_flood x%+p%+r%,y%+p%+5,255,255,0
end_sub
Le cadre 3d est pratiquement identique au cadre 3d des boutons de l'éditeur de Panoramic (version XP...)
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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyLun 21 Oct 2013 - 7:41

Bravo Klaus,
Vraiment simple à utiliser ce MEMO_BULLE, on va pouvoir écrire des bandes dessinées.

Je suggère d'ajouter "if t$="" then exit_sub" juste avant la création du bouton, ainsi on peut déclarer dans l'appel de le SUB que t$="" et du coup il n'y a pas de bouton.

A+
Revenir en haut Aller en bas
Klaus

Klaus


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

Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 EmptyLun 21 Oct 2013 - 10:11

Bonne idée, Jean-Claude ! Voilà qui est fait. En même temps, j'ai légèrement amélioré la présentation du cadre 3D, et j'ai placé chaque fond avec et sans les mémos, dans le programme de démo, et j'ai complètement changé la technique de remplissage de la bulle, en la simplifiant grandement:
Code:
' couleur de fond de la form
dim fond_r% : fond_r% = 255
dim fond_g% : fond_g% = 255
dim fond_b% : fond_b% = 250

color 0,fond_r%, fond_g%, fond_b%
width 0,1000 : height 0,700

 dessiner_objet_infobulle(11,2,10,100,100,300,200,20,400,"Traduire")
 dessiner_objet_cadre_3d(21,600,100,300,200,"Traduire")
 dessiner_fond(31,3,10,100,350,300,200,20)
 dessiner_bord_3d(41,600,350,300,200)

end

' n%: numero de l'objet de base (n%, n%+1 et n%+2 utilisés)
' s%! sens de la flèche  0=aucune flèche
'    1=en bas à gauche   2=en bas à droite
'    3=en haut à gauche  4=en haut à droite
' r%: rayon du cercle des coins arrondis
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la bulle
' p%: longueur horizontale et verticale de la pointe
' wm%: largeur du mémo
' t$: texte (caption) du bouton
sub dessiner_objet_infobulle(n%,s%,r%,x%,y%,w%,h%,p%,wm%,t$)
  ' dessiner la bulle
  dessiner_fond(n%,s%,r%,x%,y%,w%,h%,p%)
  ' placer le mémo
  memo n%+1 : top n%+1,top(n%)+p%+r% : left n%+1,left(n%)+p%+r%
    height n%+1,height(n%)-r%*2-p%*2 : width n%+1,wm%
  ' placer le bouton
  if t$="" then exit_sub
  button n%+2 : width n%+2,80 : caption n%+2,t$
    top n%+2,top(n%+1)+height(n%+1) : left n%+2,left(n%+1)+(width(n%+1)-width(n%+2))/2
    height n%+2,20
end_sub

' n%: numero de l'objet de base (n%, n%+1 et n%+2 utilisés)
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la bulle
' t$: texte (caption) du bouton
sub dessiner_objet_cadre_3d(n%,x%,y%,w%,h%,t$)
  ' dessiner la bulle
  dessiner_bord_3d(n%,x%,y%,w%,h%)
  ' placer le mémo
  memo n%+1 : top n%+1,top(n%)+7 : left n%+1,left(n%)+7
    height n%+1,h%-10 : width n%+1,w%-10
  ' placer le bouton
  if t$="" then exit_sub
  button n%+2 : width n%+2,80 : caption n%+2,t$
    top n%+2,top(n%+1)+height(n%+1) : left n%+2,left(n%+1)+(width(n%+1)-width(n%+2))/2
    height n%+2,20
end_sub

' n%: numero de l'objet
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la bulle
sub dessiner_bord_3d(n%,x%,y%,w%,h%)
  picture n%
    top n%,y% : left n%,x% : width n%,w%+4 : height n%,h%+4
    color n%,fond_r%, fond_g%, fond_b%
    color n%,242,230,234
  2d_target_is n% : 2d_pen_width 1
  2d_pen_color 255,254,245
  2d_line 0,0,w%+3,0
  2d_line 0,0,0,h%+3
  2d_pen_color 107,111,97
  2d_line w%+3,0,w%+3,h%+4
  2d_line 0,h%+3,w%+3,h%+3
  2d_pen_color 240,238,225
  2d_line 1,1,w%+2,1
  2d_line 1,1,1,h%+2
  2d_pen_color 169,173,148
  2d_line w%+2,1,w%+2,h%+3
  2d_line 1,h%+2,w%+2,h%+2
  2d_pen_color 0,0,0 : 2d_pen_width 1
end_sub

' n%: numero de l'objet
' s%! sens de la flèche  0=aucune flèche
'    1=en bas à gauche   2=en bas à droite
'    3=en haut à gauche  4=en haut à droite
' r%: rayon du cercle des coins arrondis
' x%,y%: coin en haut à gauche de la zone de dessin
' w%,h%: dimensions de la bulle
' p%: longueur horizontale et verticale de la pointe
sub dessiner_fond(n%,s%,r%,x%,y%,w%,h%,p%)
  picture n%
    top n%,y% : left n%,x% : width n%,w%+p%*2 : height n%,h%+p%*2
    color n%,fond_r%, fond_g%, fond_b%
  2d_target_is n% : 2d_fill_color 255,255,0
  2d_pen_width 2 : 2d_pen_color 195,195,196
  if s%=3 : ' coin en haut à gauche
    2d_line 0,0,p%,p%+r%
    2d_line 0,0,p%+r%,p%
  else
    2d_circle r%+p%,r%+p%,r%
  end_if
  if s%=4 : ' coin en haut à droite
    2d_line w%+p%*2,0,w%+p%-r%,p%
    2d_line w%+p%*2,0,w%+p%,p%+r%
  else
    2d_circle w%-r%+p%,r%+p%,r%
  end_if
  if s%=1 : ' coin en bas à gauche
    2d_line 0,h%+p%*2,p%,h%+p%-r%
    2d_line 0,h%+p%*2,p%+r%,h%+p%
  else
    2d_circle r%+p%,h%+p%-r%,r%
  end_if
  if s%=2 : ' coin en bas à droite
    2d_line w%+p%*2,h%+p%*2,w%+p%-r%,h%+p%
    2d_line w%+p%*2,h%+p%*2,w%+p%,h%+p%-r%
  else
    2d_circle w%-r%+p%,h%+p%-r%,r%
  end_if
  ' parties horizontales de la bulle
  2d_rectangle p%+r%,p%,w%+p%-r%,h%+p%
  2d_rectangle p%,p%+r%,w%+p%,h%+p%-r%
  ' effacer les lignes inutiles
  2d_pen_color 255,255,0
  2d_rectangle p%+r%-1,p%+2,w%+p%-r%+1,h%+p%-2
  2d_rectangle p%+2,p%+r%-1,w%+p%-2,h%+p%-r%+1
  ' remplir la pointe
  select s%
    case 1
      2d_flood p%+r%-5,p%+h%-r%+5,255,255,0
    case 2
      2d_flood p%+w%-r%+5,p%+h%-r%+5,255,255,0
    case 3
      2d_flood p%+r%-5,p%+r%-5,255,255,0
    case 4
      2d_flood p%+w%-r%+5,p%+r%-5,255,255,0
  end_select
  2d_pen_color 0,0,0
  2d_pen_width 1
end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Petit défi avec un objet memo. - Page 2 Empty
MessageSujet: Re: Petit défi avec un objet memo.   Petit défi avec un objet memo. - Page 2 Empty

Revenir en haut Aller en bas
 
Petit défi avec un objet memo.
Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» Problème avec un objet MEMO.
» Problème avec l'objet Memo.
» Petit défi de programmation.
» Objet Memo.
» Défi avec panoramic.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: